# 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 ReactMessageOptions
    from . import blast, mms, rcs, schedule, sms
    from .blast import (
        BlastMmsOptions,
        BlastMmsResponse,
        BlastRcsOptions,
        BlastRcsRequestOptionsStandaloneCard,
        BlastRcsRequestOptionsStandaloneCardImageAlignment,
        BlastRcsRequestOptionsStandaloneCardOrientation,
        BlastRcsResponse,
        BlastSmsOptions,
        BlastSmsResponse,
    )
    from .mms import MmsSendResponse, SendMmsOptions
    from .rcs import SendRichMessageResponse, SendTypingIndicatorSchemaOptions
    from .sms import SendSmsOptions, SmsSendResponse
_dynamic_imports: typing.Dict[str, str] = {
    "BlastMmsOptions": ".blast",
    "BlastMmsResponse": ".blast",
    "BlastRcsOptions": ".blast",
    "BlastRcsRequestOptionsStandaloneCard": ".blast",
    "BlastRcsRequestOptionsStandaloneCardImageAlignment": ".blast",
    "BlastRcsRequestOptionsStandaloneCardOrientation": ".blast",
    "BlastRcsResponse": ".blast",
    "BlastSmsOptions": ".blast",
    "BlastSmsResponse": ".blast",
    "MmsSendResponse": ".mms",
    "ReactMessageOptions": ".types",
    "SendMmsOptions": ".mms",
    "SendRichMessageResponse": ".rcs",
    "SendSmsOptions": ".sms",
    "SendTypingIndicatorSchemaOptions": ".rcs",
    "SmsSendResponse": ".sms",
    "blast": ".",
    "mms": ".",
    "rcs": ".",
    "schedule": ".",
    "sms": ".",
}


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__)
        result = getattr(module, attr_name)
        return result
    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__ = [
    "BlastMmsOptions",
    "BlastMmsResponse",
    "BlastRcsOptions",
    "BlastRcsRequestOptionsStandaloneCard",
    "BlastRcsRequestOptionsStandaloneCardImageAlignment",
    "BlastRcsRequestOptionsStandaloneCardOrientation",
    "BlastRcsResponse",
    "BlastSmsOptions",
    "BlastSmsResponse",
    "MmsSendResponse",
    "ReactMessageOptions",
    "SendMmsOptions",
    "SendRichMessageResponse",
    "SendSmsOptions",
    "SendTypingIndicatorSchemaOptions",
    "SmsSendResponse",
    "blast",
    "mms",
    "rcs",
    "schedule",
    "sms",
]
