# 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 (
        Action,
        Action_Click,
        Action_DoubleClick,
        Action_DragTo,
        Action_Hotkey,
        Action_KeyDown,
        Action_KeyUp,
        Action_MouseDown,
        Action_MouseUp,
        Action_MoveTo,
        Action_Press,
        Action_RightClick,
        Action_Scroll,
        Action_Typing,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "Action": ".types",
    "Action_Click": ".types",
    "Action_DoubleClick": ".types",
    "Action_DragTo": ".types",
    "Action_Hotkey": ".types",
    "Action_KeyDown": ".types",
    "Action_KeyUp": ".types",
    "Action_MouseDown": ".types",
    "Action_MouseUp": ".types",
    "Action_MoveTo": ".types",
    "Action_Press": ".types",
    "Action_RightClick": ".types",
    "Action_Scroll": ".types",
    "Action_Typing": ".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__)
        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__ = [
    "Action",
    "Action_Click",
    "Action_DoubleClick",
    "Action_DragTo",
    "Action_Hotkey",
    "Action_KeyDown",
    "Action_KeyUp",
    "Action_MouseDown",
    "Action_MouseUp",
    "Action_MoveTo",
    "Action_Press",
    "Action_RightClick",
    "Action_Scroll",
    "Action_Typing",
]
