# This file was auto-generated by Fern from our API Definition.

# isort: skip_file

import typing
from importlib import import_module

if typing.TYPE_CHECKING:
    from .types import (
        BatchAudioSource,
        BatchFileContentType,
        BatchFileDetail,
        BatchFileMetadata,
        BatchFileStatus,
        BatchFileSummary,
        BatchFileUploadRequest,
        BatchFileUploadResponse,
        BatchStatus,
        BatchStatusResponse,
        BatchTranscriptionRequest,
        BatchTranscriptionResponse,
        Language,
        LettersLanguage,
        ListBatchFilesResponse,
        ProcessingMode,
        Status,
        Timestamp,
        Transcription,
        TranscriptionId,
        TranscriptionInfo,
        TranscriptionRequest,
        TranscriptionRequestInfo,
        TranscriptionSummary,
    )
    from .errors import AuthenticationError, BatchNotFound, RateLimitError, TranscriptionFailed, TranscriptionNotFound
_dynamic_imports: typing.Dict[str, str] = {
    "AuthenticationError": ".errors",
    "BatchAudioSource": ".types",
    "BatchFileContentType": ".types",
    "BatchFileDetail": ".types",
    "BatchFileMetadata": ".types",
    "BatchFileStatus": ".types",
    "BatchFileSummary": ".types",
    "BatchFileUploadRequest": ".types",
    "BatchFileUploadResponse": ".types",
    "BatchNotFound": ".errors",
    "BatchStatus": ".types",
    "BatchStatusResponse": ".types",
    "BatchTranscriptionRequest": ".types",
    "BatchTranscriptionResponse": ".types",
    "Language": ".types",
    "LettersLanguage": ".types",
    "ListBatchFilesResponse": ".types",
    "ProcessingMode": ".types",
    "RateLimitError": ".errors",
    "Status": ".types",
    "Timestamp": ".types",
    "Transcription": ".types",
    "TranscriptionFailed": ".errors",
    "TranscriptionId": ".types",
    "TranscriptionInfo": ".types",
    "TranscriptionNotFound": ".errors",
    "TranscriptionRequest": ".types",
    "TranscriptionRequestInfo": ".types",
    "TranscriptionSummary": ".types",
}


def __getattr__(attr_name: str) -> typing.Any:
    module_name = _dynamic_imports.get(attr_name)
    if module_name is None:
        raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
    try:
        module = import_module(module_name, __package__)
        if module_name == f".{attr_name}":
            return module
        else:
            return getattr(module, attr_name)
    except ImportError as e:
        raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
    except AttributeError as e:
        raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e


def __dir__():
    lazy_attrs = list(_dynamic_imports.keys())
    return sorted(lazy_attrs)


__all__ = [
    "AuthenticationError",
    "BatchAudioSource",
    "BatchFileContentType",
    "BatchFileDetail",
    "BatchFileMetadata",
    "BatchFileStatus",
    "BatchFileSummary",
    "BatchFileUploadRequest",
    "BatchFileUploadResponse",
    "BatchNotFound",
    "BatchStatus",
    "BatchStatusResponse",
    "BatchTranscriptionRequest",
    "BatchTranscriptionResponse",
    "Language",
    "LettersLanguage",
    "ListBatchFilesResponse",
    "ProcessingMode",
    "RateLimitError",
    "Status",
    "Timestamp",
    "Transcription",
    "TranscriptionFailed",
    "TranscriptionId",
    "TranscriptionInfo",
    "TranscriptionNotFound",
    "TranscriptionRequest",
    "TranscriptionRequestInfo",
    "TranscriptionSummary",
]
