"""
Cakto API Python Client
========================

Cliente Python para integração com a API da Cakto.

Instalação:
    pip install requests httpx

Uso Síncrono:
    from cakto import CaktoClient

    client = CaktoClient(
        client_id='seu_client_id',
        client_secret='seu_client_secret'
    )
    products = client.products.list()

Uso Assíncrono:
    from cakto import AsyncCaktoClient

    async with AsyncCaktoClient(
        client_id='seu_client_id',
        client_secret='seu_client_secret'
    ) as client:
        products = await client.products.list()

Documentação: https://docs.cakto.com.br
"""

from .cakto import (
    # Sync Client
    CaktoClient,
    create_client,

    # Async Client
    AsyncCaktoClient,

    # Sync Resources
    ProductsResource,
    OffersResource,
    OrdersResource,
    WebhooksResource,

    # Async Resources
    AsyncProductsResource,
    AsyncOffersResource,
    AsyncOrdersResource,
    AsyncWebhooksResource,

    # Data classes
    PaginatedResponse,
    Token,

    # Exceptions
    CaktoError,
    CaktoAuthError,
    CaktoNotFoundError,
    CaktoValidationError,
    CaktoRateLimitError,

    # Utils
    HTTPX_AVAILABLE,
)

__version__ = '1.1.0'
__author__ = 'Claude Code'
__all__ = [
    # Clients
    'CaktoClient',
    'AsyncCaktoClient',
    'create_client',

    # Sync Resources
    'ProductsResource',
    'OffersResource',
    'OrdersResource',
    'WebhooksResource',

    # Async Resources
    'AsyncProductsResource',
    'AsyncOffersResource',
    'AsyncOrdersResource',
    'AsyncWebhooksResource',

    # Data classes
    'PaginatedResponse',
    'Token',

    # Exceptions
    'CaktoError',
    'CaktoAuthError',
    'CaktoNotFoundError',
    'CaktoValidationError',
    'CaktoRateLimitError',

    # Utils
    'HTTPX_AVAILABLE',
]
