"""ITS-AI Python SDK public API."""

from .client import ItsAIClient, AsyncItsAIClient, ItsAIAsyncClient
from .models import AnalyzeTextResult, AnalyzeBatchItemResult, AnalyzeBatchResult
from .errors import (
    ItsAIError,
    ApiError,
    KeyDoesNotExist,
    ApiKeyDoesNotExist,
    RichLimit,
    LowWords,
    ManyWords,
    RateLimitExceeded,
    BatchLimitExceeded,
    BatchLimit,
    OnlyEnglish,
    Blacklist,
    ValidationError,
    NotFound,
    PermissionDenied,
    NotAcceptable,
    AuthenticationFailed,
    ServerError,
    ServiceUnavailable,
    RequestTimeout,
    NoResultFound,
    AnalysisNotFound,
    PlagiarismCheckNotFound,
    AnalysisIdRequired,
    ExecutionLimitExceeded,
    InvalidSignature,
    EventNameRequired,
)

__all__ = [
    "ItsAIClient",
    "AsyncItsAIClient",
    "ItsAIAsyncClient",
    "AnalyzeTextResult",
    "AnalyzeBatchItemResult",
    "AnalyzeBatchResult",
    # Errors
    "ItsAIError",
    "ApiError",
    "KeyDoesNotExist",
    "ApiKeyDoesNotExist",
    "RichLimit",
    "LowWords",
    "ManyWords",
    "RateLimitExceeded",
    "BatchLimitExceeded",
    "BatchLimit",
    "OnlyEnglish",
    "Blacklist",
    "ValidationError",
    "NotFound",
    "PermissionDenied",
    "NotAcceptable",
    "AuthenticationFailed",
    "ServerError",
    "ServiceUnavailable",
    "RequestTimeout",
    "NoResultFound",
    "AnalysisNotFound",
    "PlagiarismCheckNotFound",
    "AnalysisIdRequired",
    "ExecutionLimitExceeded",
    "InvalidSignature",
    "EventNameRequired",
]

from ._version import __version__
