"""Credo AI SDK"""

# This package provides type-safe, validated client interactions with structured Pydantic models
# for all request and response data.

from .client import AsyncCredoAI, AuthenticatedClient, Client, CredoAI
from .errors import (
    ApiError,
    AuthenticationError,
    ClientValidationError,
    ConnectionError,
    CredoAIError,
    RateLimitError,
    ServerError,
    TimeoutError,
    ValidationError,
    create_error_from_response,
)
from .models import (
    # Base classes
    ClientRequest,
    ClientResponse,
    # Core models
    HTTPValidationError,
    HealthResponse,
    JsonApiResourceBase,
    JsonApiResponse,
    ModelCreate,
    ModelResponse,
    ModelUpdate,
    PaginatedResponse_ModelResponse_,
    PaginatedResponse_QuestionnaireAttachmentResponse_,
    PaginatedResponse_QuestionnaireResponse_,
    PaginatedResponse_UseCaseResponse_,
    PaginatedResponse_VendorResponse_,
    # Enums
    PingResponse,
    QuestionEvidenceCreate,
    QuestionEvidenceUpdate,
    QuestionnaireAttachment,
    QuestionnaireAttachmentResponse,
    QuestionnaireAttachmentUpdate,
    QuestionnaireBaseResponse,
    QuestionnaireCreate,
    QuestionnaireDuplicate,
    QuestionnaireInfo,
    QuestionnaireResponse,
    QuestionnaireUpdate,
    RelationshipAdd,
    TokenResponse,
    UseCaseCreate,
    UseCaseCustomField,
    UseCaseResponse,
    UseCaseUpdate,
    VendorCreate,
    VendorResponse,
    VendorUpdate,
)

__all__ = (
    # Client classes
    "AuthenticatedClient",
    "Client",
    "CredoAI",
    "AsyncCredoAI",
    # Base model classes
    "ClientRequest",
    "ClientResponse",
    "JsonApiResponse",
    "JsonApiResourceBase",
    # Generated models
    "HTTPValidationError",
    "HealthResponse",
    "ModelCreate",
    "ModelResponse",
    "ModelUpdate",
    "PingResponse",
    "QuestionEvidenceCreate",
    "QuestionEvidenceUpdate",
    "QuestionnaireAttachment",
    "QuestionnaireAttachmentResponse",
    "QuestionnaireAttachmentUpdate",
    "QuestionnaireBaseResponse",
    "QuestionnaireCreate",
    "QuestionnaireDuplicate",
    "QuestionnaireInfo",
    "QuestionnaireResponse",
    "QuestionnaireUpdate",
    "RelationshipAdd",
    "TokenResponse",
    "UseCaseCreate",
    "UseCaseCustomField",
    "UseCaseResponse",
    "UseCaseUpdate",
    "VendorCreate",
    "VendorResponse",
    "VendorUpdate",
    "PaginatedResponse_ModelResponse_",
    "PaginatedResponse_QuestionnaireAttachmentResponse_",
    "PaginatedResponse_QuestionnaireResponse_",
    "PaginatedResponse_UseCaseResponse_",
    "PaginatedResponse_VendorResponse_",
    # Enums
    # Error classes
    "CredoAIError",
    "ApiError",
    "ValidationError",
    "ClientValidationError",
    "AuthenticationError",
    "RateLimitError",
    "ServerError",
    "TimeoutError",
    "ConnectionError",
    "create_error_from_response",
)
