"""GunSpec.io Python SDK."""

from __future__ import annotations

from gunspec._client import AsyncGunSpec, GunSpec
from gunspec._core._errors import (
    APIError,
    AuthenticationError,
    BadRequestError,
    ConnectError,
    GunSpecError,
    InternalServerError,
    NotFoundError,
    PermissionDeniedError,
    RateLimitError,
    RequestTimeoutError,
)
from gunspec._core._http_client import (
    APIResponse,
    HttpClientConfig,
    PaginatedResponse,
    PaginationMeta,
    RateLimitInfo,
)
from gunspec._core._pagination import AsyncPage, SyncPage
from gunspec._core._retry import RetryConfig
from gunspec._version import __version__

__all__ = [
    # Client
    "GunSpec",
    "AsyncGunSpec",
    # Version
    "__version__",
    # Config
    "HttpClientConfig",
    "RetryConfig",
    # Response types
    "APIResponse",
    "PaginatedResponse",
    "PaginationMeta",
    "RateLimitInfo",
    # Pagination
    "SyncPage",
    "AsyncPage",
    # Errors
    "GunSpecError",
    "APIError",
    "AuthenticationError",
    "PermissionDeniedError",
    "NotFoundError",
    "BadRequestError",
    "RateLimitError",
    "InternalServerError",
    "ConnectError",
    "RequestTimeoutError",
]
