# 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 .batch_audio_source import BatchAudioSource
    from .batch_file_content_type import BatchFileContentType
    from .batch_file_detail import BatchFileDetail
    from .batch_file_metadata import BatchFileMetadata
    from .batch_file_status import BatchFileStatus
    from .batch_file_summary import BatchFileSummary
    from .batch_file_upload_request import BatchFileUploadRequest
    from .batch_file_upload_response import BatchFileUploadResponse
    from .batch_status import BatchStatus
    from .batch_status_response import BatchStatusResponse
    from .batch_transcription_request import BatchTranscriptionRequest
    from .batch_transcription_response import BatchTranscriptionResponse
    from .language import Language
    from .letters_language import LettersLanguage
    from .list_batch_files_response import ListBatchFilesResponse
    from .processing_mode import ProcessingMode
    from .status import Status
    from .timestamp import Timestamp
    from .transcription import Transcription
    from .transcription_id import TranscriptionId
    from .transcription_info import TranscriptionInfo
    from .transcription_request import TranscriptionRequest
    from .transcription_request_info import TranscriptionRequestInfo
    from .transcription_summary import TranscriptionSummary
_dynamic_imports: typing.Dict[str, str] = {
    "BatchAudioSource": ".batch_audio_source",
    "BatchFileContentType": ".batch_file_content_type",
    "BatchFileDetail": ".batch_file_detail",
    "BatchFileMetadata": ".batch_file_metadata",
    "BatchFileStatus": ".batch_file_status",
    "BatchFileSummary": ".batch_file_summary",
    "BatchFileUploadRequest": ".batch_file_upload_request",
    "BatchFileUploadResponse": ".batch_file_upload_response",
    "BatchStatus": ".batch_status",
    "BatchStatusResponse": ".batch_status_response",
    "BatchTranscriptionRequest": ".batch_transcription_request",
    "BatchTranscriptionResponse": ".batch_transcription_response",
    "Language": ".language",
    "LettersLanguage": ".letters_language",
    "ListBatchFilesResponse": ".list_batch_files_response",
    "ProcessingMode": ".processing_mode",
    "Status": ".status",
    "Timestamp": ".timestamp",
    "Transcription": ".transcription",
    "TranscriptionId": ".transcription_id",
    "TranscriptionInfo": ".transcription_info",
    "TranscriptionRequest": ".transcription_request",
    "TranscriptionRequestInfo": ".transcription_request_info",
    "TranscriptionSummary": ".transcription_summary",
}


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__ = [
    "BatchAudioSource",
    "BatchFileContentType",
    "BatchFileDetail",
    "BatchFileMetadata",
    "BatchFileStatus",
    "BatchFileSummary",
    "BatchFileUploadRequest",
    "BatchFileUploadResponse",
    "BatchStatus",
    "BatchStatusResponse",
    "BatchTranscriptionRequest",
    "BatchTranscriptionResponse",
    "Language",
    "LettersLanguage",
    "ListBatchFilesResponse",
    "ProcessingMode",
    "Status",
    "Timestamp",
    "Transcription",
    "TranscriptionId",
    "TranscriptionInfo",
    "TranscriptionRequest",
    "TranscriptionRequestInfo",
    "TranscriptionSummary",
]
