"""UniFi Access API library."""

from .client import UnifiAccessApiClient
from .exceptions import (
    ApiAuthError,
    ApiConnectionError,
    ApiError,
    ApiForbiddenError,
    ApiNotFoundError,
    ApiRateLimitError,
    ApiSSLError,
    UnifiAccessError,
)
from .models.door import (
    Door,
    DoorLockRelayStatus,
    DoorLockRule,
    DoorLockRuleStatus,
    DoorLockRuleType,
    DoorPositionStatus,
    EmergencyStatus,
)
from .models.websocket import (
    BaseInfo,
    BaseInfoData,
    DeviceUpdate,
    DeviceUpdateData,
    DeviceUpdateDoor,
    EmergencyState,
    EventMeta,
    HwDoorbell,
    HwDoorbellData,
    InsightsAdd,
    InsightsAddData,
    InsightsMetadata,
    InsightsMetadataEntry,
    LocationUpdateData,
    LocationUpdateLegacy,
    LocationUpdateLegacyData,
    LocationUpdateState,
    LocationUpdateV2,
    LogActor,
    LogAdd,
    LogAddData,
    LogAuthentication,
    LogEvent,
    LogSource,
    LogTarget,
    RemoteUnlock,
    RemoteUnlockData,
    RemoteView,
    RemoteViewChange,
    RemoteViewChangeData,
    RemoteViewData,
    SettingUpdate,
    SettingUpdateData,
    ThumbnailInfo,
    V2DeviceLocationState,
    V2DeviceUpdate,
    V2DeviceUpdateData,
    V2LocationState,
    V2LocationUpdate,
    V2LocationUpdateData,
    WebsocketMessage,
    WsDoorLockRuleStatus,
    create_from_unifi_dict,
)
from .websocket import UnifiAccessWebsocket, WsMessageHandler

__all__ = [
    "ApiAuthError",
    "ApiConnectionError",
    "ApiError",
    "ApiForbiddenError",
    "ApiNotFoundError",
    "ApiRateLimitError",
    "ApiSSLError",
    "BaseInfo",
    "BaseInfoData",
    "DeviceUpdate",
    "DeviceUpdateData",
    "DeviceUpdateDoor",
    "Door",
    "DoorLockRelayStatus",
    "DoorLockRule",
    "DoorLockRuleStatus",
    "DoorLockRuleType",
    "DoorPositionStatus",
    "EmergencyState",
    "EmergencyStatus",
    "EventMeta",
    "HwDoorbell",
    "HwDoorbellData",
    "InsightsAdd",
    "InsightsAddData",
    "InsightsMetadata",
    "InsightsMetadataEntry",
    "LocationUpdateData",
    "LocationUpdateLegacy",
    "LocationUpdateLegacyData",
    "LocationUpdateState",
    "LocationUpdateV2",
    "LogActor",
    "LogAdd",
    "LogAddData",
    "LogAuthentication",
    "LogEvent",
    "LogSource",
    "LogTarget",
    "RemoteUnlock",
    "RemoteUnlockData",
    "RemoteView",
    "RemoteViewChange",
    "RemoteViewChangeData",
    "RemoteViewData",
    "SettingUpdate",
    "SettingUpdateData",
    "ThumbnailInfo",
    "UnifiAccessApiClient",
    "UnifiAccessError",
    "UnifiAccessWebsocket",
    "V2DeviceLocationState",
    "V2DeviceUpdate",
    "V2DeviceUpdateData",
    "V2LocationState",
    "V2LocationUpdate",
    "V2LocationUpdateData",
    "WebsocketMessage",
    "WsDoorLockRuleStatus",
    "WsMessageHandler",
    "create_from_unifi_dict",
]
