"""Dependency-light licensing contracts shared by desktop and server."""

from .catalog import LicensingCatalog, load_builtin_catalog
from .device_proof import DeviceActionProof, verify_device_action_proof
from .errors import LicenseErrorCode, LicensingError
from .models import (
    EntitlementSnapshot,
    LicenseState,
    ProductSurfacePolicy,
    SignedLicenseDocument,
    TrialPolicyClaim,
    VerifiedEntitlementSnapshot,
)
from .offline import (
    DeviceSignedOfflineRequest,
    OfflineRequestPayload,
    OfflineRequestType,
    device_public_key_thumbprint,
    parse_and_verify_offline_request,
)
from .policy import AuthorizationDecision, EntitlementRequirement, LicensePolicy
from .product_surfaces import (
    PRODUCT_SURFACE_INVENTORY_REVISION,
    PRODUCT_SURFACE_INVENTORY_SHA256,
    PRODUCT_SURFACE_KIND_ANALYSIS,
    PRODUCT_SURFACE_KIND_MAIN_TAB,
    ProductSurfaceDefinition,
    product_surface_definition,
    product_surface_definitions,
    product_surface_ids,
    product_surface_id_for_label,
    product_surface_inventory_mapping,
    validate_product_surface_ids,
)
from .verifier import LicenseVerifier, PublicKeyRecord, PublicKeyRing

__all__ = [
    "AuthorizationDecision",
    "DeviceSignedOfflineRequest",
    "DeviceActionProof",
    "EntitlementRequirement",
    "EntitlementSnapshot",
    "LicenseErrorCode",
    "LicensePolicy",
    "LicenseState",
    "LicenseVerifier",
    "LicensingCatalog",
    "LicensingError",
    "OfflineRequestPayload",
    "OfflineRequestType",
    "PublicKeyRecord",
    "PublicKeyRing",
    "PRODUCT_SURFACE_INVENTORY_REVISION",
    "PRODUCT_SURFACE_INVENTORY_SHA256",
    "PRODUCT_SURFACE_KIND_ANALYSIS",
    "PRODUCT_SURFACE_KIND_MAIN_TAB",
    "ProductSurfaceDefinition",
    "ProductSurfacePolicy",
    "SignedLicenseDocument",
    "TrialPolicyClaim",
    "VerifiedEntitlementSnapshot",
    "device_public_key_thumbprint",
    "load_builtin_catalog",
    "parse_and_verify_offline_request",
    "product_surface_definition",
    "product_surface_definitions",
    "product_surface_ids",
    "product_surface_id_for_label",
    "product_surface_inventory_mapping",
    "validate_product_surface_ids",
    "verify_device_action_proof",
]
