# 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 v1, v2
    from .v1 import (
        SpeakV1Clear,
        SpeakV1ClearParams,
        SpeakV1ClearType,
        SpeakV1Cleared,
        SpeakV1ClearedParams,
        SpeakV1ClearedType,
        SpeakV1Close,
        SpeakV1CloseParams,
        SpeakV1CloseType,
        SpeakV1Flush,
        SpeakV1FlushParams,
        SpeakV1FlushType,
        SpeakV1Flushed,
        SpeakV1FlushedParams,
        SpeakV1FlushedType,
        SpeakV1Metadata,
        SpeakV1MetadataParams,
        SpeakV1Text,
        SpeakV1TextParams,
        SpeakV1Warning,
        SpeakV1WarningParams,
    )
    from .v2 import (
        SpeakV2Close,
        SpeakV2CloseParams,
        SpeakV2Configure,
        SpeakV2ConfigureFailure,
        SpeakV2ConfigureFailureCode,
        SpeakV2ConfigureFailureParams,
        SpeakV2ConfigureParams,
        SpeakV2ConfigureSuccess,
        SpeakV2ConfigureSuccessApplied,
        SpeakV2ConfigureSuccessAppliedParams,
        SpeakV2ConfigureSuccessParams,
        SpeakV2Connected,
        SpeakV2ConnectedParams,
        SpeakV2Error,
        SpeakV2ErrorCode,
        SpeakV2ErrorParams,
        SpeakV2Flush,
        SpeakV2FlushParams,
        SpeakV2Flushed,
        SpeakV2FlushedParams,
        SpeakV2Interrupt,
        SpeakV2InterruptParams,
        SpeakV2InterruptPlaybackOffset,
        SpeakV2InterruptPlaybackOffsetParams,
        SpeakV2SessionMetadata,
        SpeakV2SessionMetadataParams,
        SpeakV2Speak,
        SpeakV2SpeakParams,
        SpeakV2SpeechInterrupted,
        SpeakV2SpeechInterruptedMetadata,
        SpeakV2SpeechInterruptedMetadataControlsApplied,
        SpeakV2SpeechInterruptedMetadataControlsAppliedParams,
        SpeakV2SpeechInterruptedMetadataParams,
        SpeakV2SpeechInterruptedParams,
        SpeakV2SpeechMetadata,
        SpeakV2SpeechMetadataControlsApplied,
        SpeakV2SpeechMetadataControlsAppliedParams,
        SpeakV2SpeechMetadataParams,
        SpeakV2SpeechStarted,
        SpeakV2SpeechStartedParams,
        SpeakV2Warning,
        SpeakV2WarningParams,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "SpeakV1Clear": ".v1",
    "SpeakV1ClearParams": ".v1",
    "SpeakV1ClearType": ".v1",
    "SpeakV1Cleared": ".v1",
    "SpeakV1ClearedParams": ".v1",
    "SpeakV1ClearedType": ".v1",
    "SpeakV1Close": ".v1",
    "SpeakV1CloseParams": ".v1",
    "SpeakV1CloseType": ".v1",
    "SpeakV1Flush": ".v1",
    "SpeakV1FlushParams": ".v1",
    "SpeakV1FlushType": ".v1",
    "SpeakV1Flushed": ".v1",
    "SpeakV1FlushedParams": ".v1",
    "SpeakV1FlushedType": ".v1",
    "SpeakV1Metadata": ".v1",
    "SpeakV1MetadataParams": ".v1",
    "SpeakV1Text": ".v1",
    "SpeakV1TextParams": ".v1",
    "SpeakV1Warning": ".v1",
    "SpeakV1WarningParams": ".v1",
    "SpeakV2Close": ".v2",
    "SpeakV2CloseParams": ".v2",
    "SpeakV2Configure": ".v2",
    "SpeakV2ConfigureFailure": ".v2",
    "SpeakV2ConfigureFailureCode": ".v2",
    "SpeakV2ConfigureFailureParams": ".v2",
    "SpeakV2ConfigureParams": ".v2",
    "SpeakV2ConfigureSuccess": ".v2",
    "SpeakV2ConfigureSuccessApplied": ".v2",
    "SpeakV2ConfigureSuccessAppliedParams": ".v2",
    "SpeakV2ConfigureSuccessParams": ".v2",
    "SpeakV2Connected": ".v2",
    "SpeakV2ConnectedParams": ".v2",
    "SpeakV2Error": ".v2",
    "SpeakV2ErrorCode": ".v2",
    "SpeakV2ErrorParams": ".v2",
    "SpeakV2Flush": ".v2",
    "SpeakV2FlushParams": ".v2",
    "SpeakV2Flushed": ".v2",
    "SpeakV2FlushedParams": ".v2",
    "SpeakV2Interrupt": ".v2",
    "SpeakV2InterruptParams": ".v2",
    "SpeakV2InterruptPlaybackOffset": ".v2",
    "SpeakV2InterruptPlaybackOffsetParams": ".v2",
    "SpeakV2SessionMetadata": ".v2",
    "SpeakV2SessionMetadataParams": ".v2",
    "SpeakV2Speak": ".v2",
    "SpeakV2SpeakParams": ".v2",
    "SpeakV2SpeechInterrupted": ".v2",
    "SpeakV2SpeechInterruptedMetadata": ".v2",
    "SpeakV2SpeechInterruptedMetadataControlsApplied": ".v2",
    "SpeakV2SpeechInterruptedMetadataControlsAppliedParams": ".v2",
    "SpeakV2SpeechInterruptedMetadataParams": ".v2",
    "SpeakV2SpeechInterruptedParams": ".v2",
    "SpeakV2SpeechMetadata": ".v2",
    "SpeakV2SpeechMetadataControlsApplied": ".v2",
    "SpeakV2SpeechMetadataControlsAppliedParams": ".v2",
    "SpeakV2SpeechMetadataParams": ".v2",
    "SpeakV2SpeechStarted": ".v2",
    "SpeakV2SpeechStartedParams": ".v2",
    "SpeakV2Warning": ".v2",
    "SpeakV2WarningParams": ".v2",
    "v1": ".v1",
    "v2": ".v2",
}


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__ = [
    "SpeakV1Clear",
    "SpeakV1ClearParams",
    "SpeakV1ClearType",
    "SpeakV1Cleared",
    "SpeakV1ClearedParams",
    "SpeakV1ClearedType",
    "SpeakV1Close",
    "SpeakV1CloseParams",
    "SpeakV1CloseType",
    "SpeakV1Flush",
    "SpeakV1FlushParams",
    "SpeakV1FlushType",
    "SpeakV1Flushed",
    "SpeakV1FlushedParams",
    "SpeakV1FlushedType",
    "SpeakV1Metadata",
    "SpeakV1MetadataParams",
    "SpeakV1Text",
    "SpeakV1TextParams",
    "SpeakV1Warning",
    "SpeakV1WarningParams",
    "SpeakV2Close",
    "SpeakV2CloseParams",
    "SpeakV2Configure",
    "SpeakV2ConfigureFailure",
    "SpeakV2ConfigureFailureCode",
    "SpeakV2ConfigureFailureParams",
    "SpeakV2ConfigureParams",
    "SpeakV2ConfigureSuccess",
    "SpeakV2ConfigureSuccessApplied",
    "SpeakV2ConfigureSuccessAppliedParams",
    "SpeakV2ConfigureSuccessParams",
    "SpeakV2Connected",
    "SpeakV2ConnectedParams",
    "SpeakV2Error",
    "SpeakV2ErrorCode",
    "SpeakV2ErrorParams",
    "SpeakV2Flush",
    "SpeakV2FlushParams",
    "SpeakV2Flushed",
    "SpeakV2FlushedParams",
    "SpeakV2Interrupt",
    "SpeakV2InterruptParams",
    "SpeakV2InterruptPlaybackOffset",
    "SpeakV2InterruptPlaybackOffsetParams",
    "SpeakV2SessionMetadata",
    "SpeakV2SessionMetadataParams",
    "SpeakV2Speak",
    "SpeakV2SpeakParams",
    "SpeakV2SpeechInterrupted",
    "SpeakV2SpeechInterruptedMetadata",
    "SpeakV2SpeechInterruptedMetadataControlsApplied",
    "SpeakV2SpeechInterruptedMetadataControlsAppliedParams",
    "SpeakV2SpeechInterruptedMetadataParams",
    "SpeakV2SpeechInterruptedParams",
    "SpeakV2SpeechMetadata",
    "SpeakV2SpeechMetadataControlsApplied",
    "SpeakV2SpeechMetadataControlsAppliedParams",
    "SpeakV2SpeechMetadataParams",
    "SpeakV2SpeechStarted",
    "SpeakV2SpeechStartedParams",
    "SpeakV2Warning",
    "SpeakV2WarningParams",
    "v1",
    "v2",
]
