# 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 . import (
        balance,
        categories,
        health,
        link,
        live_transcription_ws,
        maishiv,
        ocr,
        timestamps,
        transcribe,
        transformations,
        utils,
    )
    from .balance import Balance, UserNotFound
    from .categories import (
        AddTranscriptionToCategoryRequest,
        AddTranscriptionToCategoryResponse,
        Category,
        CategoryAlreadyExists,
        CategoryNotFound,
        CategoryTranscription,
        CreateCategoryRequest,
        DeleteCategoryResponse,
        RemoveTranscriptionFromCategoryResponse,
        UpdateCategoryRequest,
    )
    from .client import AsyncSoferAI, SoferAI
    from .environment import SoferAIEnvironment
    from .health import HealthResponse
    from .link import LinkError, LinkNotFound, LinkNotSupported, LinkRequest, LinkResponse, Site
    from .live_transcription_ws import AudioChunk, TranscriptChunk
    from .maishiv import (
        AddKnowledgeBaseDocumentRequest,
        AddKnowledgeBaseDocumentResponse,
        RemoveKnowledgeBaseDocumentResponse,
    )
    from .ocr import OcrJobCreateRequest, OcrJobNotFound, OcrJobResponse, OcrJobStatus, OcrPage
    from .timestamps import Confidence, OutlineRequest, OutlineTopic, UpdateTimestampsRequest
    from .transcribe import (
        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,
    )
    from .transformations import GenerateTranscriptSummaryRequest, TranscriptSummaryResponse
    from .utils import DurationRequest, DurationResponse
    from .version import __version__
_dynamic_imports: typing.Dict[str, str] = {
    "AddKnowledgeBaseDocumentRequest": ".maishiv",
    "AddKnowledgeBaseDocumentResponse": ".maishiv",
    "AddTranscriptionToCategoryRequest": ".categories",
    "AddTranscriptionToCategoryResponse": ".categories",
    "AsyncSoferAI": ".client",
    "AudioChunk": ".live_transcription_ws",
    "AuthenticationError": ".transcribe",
    "Balance": ".balance",
    "BatchAudioSource": ".transcribe",
    "BatchFileContentType": ".transcribe",
    "BatchFileDetail": ".transcribe",
    "BatchFileMetadata": ".transcribe",
    "BatchFileStatus": ".transcribe",
    "BatchFileSummary": ".transcribe",
    "BatchFileUploadRequest": ".transcribe",
    "BatchFileUploadResponse": ".transcribe",
    "BatchNotFound": ".transcribe",
    "BatchStatus": ".transcribe",
    "BatchStatusResponse": ".transcribe",
    "BatchTranscriptionRequest": ".transcribe",
    "BatchTranscriptionResponse": ".transcribe",
    "Category": ".categories",
    "CategoryAlreadyExists": ".categories",
    "CategoryNotFound": ".categories",
    "CategoryTranscription": ".categories",
    "Confidence": ".timestamps",
    "CreateCategoryRequest": ".categories",
    "DeleteCategoryResponse": ".categories",
    "DurationRequest": ".utils",
    "DurationResponse": ".utils",
    "GenerateTranscriptSummaryRequest": ".transformations",
    "HealthResponse": ".health",
    "Language": ".transcribe",
    "LettersLanguage": ".transcribe",
    "LinkError": ".link",
    "LinkNotFound": ".link",
    "LinkNotSupported": ".link",
    "LinkRequest": ".link",
    "LinkResponse": ".link",
    "ListBatchFilesResponse": ".transcribe",
    "OcrJobCreateRequest": ".ocr",
    "OcrJobNotFound": ".ocr",
    "OcrJobResponse": ".ocr",
    "OcrJobStatus": ".ocr",
    "OcrPage": ".ocr",
    "OutlineRequest": ".timestamps",
    "OutlineTopic": ".timestamps",
    "ProcessingMode": ".transcribe",
    "RateLimitError": ".transcribe",
    "RemoveKnowledgeBaseDocumentResponse": ".maishiv",
    "RemoveTranscriptionFromCategoryResponse": ".categories",
    "Site": ".link",
    "SoferAI": ".client",
    "SoferAIEnvironment": ".environment",
    "Status": ".transcribe",
    "Timestamp": ".transcribe",
    "TranscriptChunk": ".live_transcription_ws",
    "TranscriptSummaryResponse": ".transformations",
    "Transcription": ".transcribe",
    "TranscriptionFailed": ".transcribe",
    "TranscriptionId": ".transcribe",
    "TranscriptionInfo": ".transcribe",
    "TranscriptionNotFound": ".transcribe",
    "TranscriptionRequest": ".transcribe",
    "TranscriptionRequestInfo": ".transcribe",
    "TranscriptionSummary": ".transcribe",
    "UpdateCategoryRequest": ".categories",
    "UpdateTimestampsRequest": ".timestamps",
    "UserNotFound": ".balance",
    "__version__": ".version",
    "balance": ".balance",
    "categories": ".categories",
    "health": ".health",
    "link": ".link",
    "live_transcription_ws": ".live_transcription_ws",
    "maishiv": ".maishiv",
    "ocr": ".ocr",
    "timestamps": ".timestamps",
    "transcribe": ".transcribe",
    "transformations": ".transformations",
    "utils": ".utils",
}


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__ = [
    "AddKnowledgeBaseDocumentRequest",
    "AddKnowledgeBaseDocumentResponse",
    "AddTranscriptionToCategoryRequest",
    "AddTranscriptionToCategoryResponse",
    "AsyncSoferAI",
    "AudioChunk",
    "AuthenticationError",
    "Balance",
    "BatchAudioSource",
    "BatchFileContentType",
    "BatchFileDetail",
    "BatchFileMetadata",
    "BatchFileStatus",
    "BatchFileSummary",
    "BatchFileUploadRequest",
    "BatchFileUploadResponse",
    "BatchNotFound",
    "BatchStatus",
    "BatchStatusResponse",
    "BatchTranscriptionRequest",
    "BatchTranscriptionResponse",
    "Category",
    "CategoryAlreadyExists",
    "CategoryNotFound",
    "CategoryTranscription",
    "Confidence",
    "CreateCategoryRequest",
    "DeleteCategoryResponse",
    "DurationRequest",
    "DurationResponse",
    "GenerateTranscriptSummaryRequest",
    "HealthResponse",
    "Language",
    "LettersLanguage",
    "LinkError",
    "LinkNotFound",
    "LinkNotSupported",
    "LinkRequest",
    "LinkResponse",
    "ListBatchFilesResponse",
    "OcrJobCreateRequest",
    "OcrJobNotFound",
    "OcrJobResponse",
    "OcrJobStatus",
    "OcrPage",
    "OutlineRequest",
    "OutlineTopic",
    "ProcessingMode",
    "RateLimitError",
    "RemoveKnowledgeBaseDocumentResponse",
    "RemoveTranscriptionFromCategoryResponse",
    "Site",
    "SoferAI",
    "SoferAIEnvironment",
    "Status",
    "Timestamp",
    "TranscriptChunk",
    "TranscriptSummaryResponse",
    "Transcription",
    "TranscriptionFailed",
    "TranscriptionId",
    "TranscriptionInfo",
    "TranscriptionNotFound",
    "TranscriptionRequest",
    "TranscriptionRequestInfo",
    "TranscriptionSummary",
    "UpdateCategoryRequest",
    "UpdateTimestampsRequest",
    "UserNotFound",
    "__version__",
    "balance",
    "categories",
    "health",
    "link",
    "live_transcription_ws",
    "maishiv",
    "ocr",
    "timestamps",
    "transcribe",
    "transformations",
    "utils",
]
