"""Optropic Python SDK -- official client for the Optropic Trust API."""

from importlib.metadata import version as _pkg_version

__version__ = _pkg_version("optropic")

from .client import Optropic
from .errors import (
    AuthenticationError,
    BatchNotFoundError,
    CodeNotFoundError,
    ForbiddenError,
    InvalidCodeError,
    InvalidGTINError,
    InvalidSerialError,
    NetworkError,
    NotFoundError,
    OptropicError,
    QuotaExceededError,
    RateLimitError,
    RevokedCodeError,
    ServiceUnavailableError,
    TimeoutError,
    ValidationError,
    create_error_from_response,
)
from .types import (
    ApiKeyMeta,
    Asset,
    AssetDetail,
    AssetSeal,
    AuditEvent,
    BatchCreateParams,
    BatchCreateResult,
    ChainVerifyResult,
    ComplianceConfig,
    CreateAssetParams,
    CreateKeyParams,
    CreateSchemaParams,
    CreateWebhookParams,
    ExportParams,
    ExportResult,
    FilterSyncResult,
    ListAssetsParams,
    ListAuditParams,
    ListSchemasParams,
    MerkleProof,
    MerkleRoot,
    RevokeAssetParams,
    SchemaValidationResult,
    UpdateAssetParams,
    UpdateSchemaParams,
    VerificationResult,
    VerticalSchema,
    WebhookDelivery,
    WebhookEndpoint,
)
from .webhook_verify import verify_webhook_signature, WebhookVerifyResult

__all__ = [
    "__version__",
    # Client
    "Optropic",
    # Errors
    "OptropicError",
    "AuthenticationError",
    "ForbiddenError",
    "NotFoundError",
    "ValidationError",
    "RateLimitError",
    "InvalidSerialError",
    "InvalidGTINError",
    "InvalidCodeError",
    "CodeNotFoundError",
    "BatchNotFoundError",
    "RevokedCodeError",
    "QuotaExceededError",
    "NetworkError",
    "TimeoutError",
    "ServiceUnavailableError",
    "create_error_from_response",
    # Types -- params
    "CreateAssetParams",
    "UpdateAssetParams",
    "RevokeAssetParams",
    "ListAssetsParams",
    "ListAuditParams",
    "ExportParams",
    "CreateWebhookParams",
    "CreateKeyParams",
    "CreateSchemaParams",
    "UpdateSchemaParams",
    "ListSchemasParams",
    "BatchCreateParams",
    # Types -- responses
    "AssetSeal",
    "Asset",
    "AssetDetail",
    "AuditEvent",
    "ChainVerifyResult",
    "MerkleRoot",
    "MerkleProof",
    "ExportResult",
    "ComplianceConfig",
    "VerificationResult",
    "FilterSyncResult",
    "WebhookEndpoint",
    "WebhookDelivery",
    "ApiKeyMeta",
    "VerticalSchema",
    "SchemaValidationResult",
    "BatchCreateResult",
    # Webhook verification
    "verify_webhook_signature",
    "WebhookVerifyResult",
]
