"""Python client library for the Chatto Connect API (async + sync)."""

from chattolib._sync import (
    SyncChattoClient,
    SyncRealtimeConnection,
    stream_events_sync,
)
from chattolib.client import ChattoClient
from chattolib.exceptions import ChattoAuthError, ChattoConnectError, ChattoError
from chattolib.realtime import (
    ChattoRealtimeCloseError,
    ChattoRealtimeError,
    RealtimeConnection,
    RealtimeEvent,
    ServerHello,
    stream_events,
)
from chattolib.realtime_types import (
    AssetDeletedPayload,
    AssetProcessingPayload,
    CallEventPayload,
    MentionNotificationPayload,
    MessageEditedPayload,
    MessagePostedPayload,
    MessageRetractedPayload,
    NewDirectMessageNotificationPayload,
    NotificationCreatedPayload,
    NotificationDismissedPayload,
    NotificationLevelChangedPayload,
    PresenceChangedPayload,
    ReactionPayload,
    RealtimePayload,
    RoomEventPayload,
    RoomGroupsUpdatedPayload,
    RoomMarkedAsReadPayload,
    RoomUniversalChangedPayload,
    ServerMemberDeletedPayload,
    ServerUpdatedPayload,
    ServerUserPreferencesUpdatedPayload,
    SessionTerminatedPayload,
    ThreadCreatedPayload,
    ThreadFollowChangedPayload,
    TypingPayload,
    UserCustomStatusClearedPayload,
    UserCustomStatusSetPayload,
    UserProfileUpdatedPayload,
)
from chattolib.types import (
    ActiveCall,
    AdminAccountInfo,
    AdminConnectionInfo,
    AdminEventLogEntry,
    AdminEventLogPage,
    AdminMember,
    AdminMemberDetail,
    AdminNatsConsumerInfo,
    AdminNatsStats,
    AdminNatsStreamInfo,
    AdminProjectionMetric,
    AdminProjectionState,
    AdminRole,
    AdminRoleDetail,
    AdminRoomLayoutGroup,
    AdminRoomLayoutItemKind,
    AdminServerStats,
    AdminSystemInfo,
    AdminSystemInfoSnapshot,
    Asset,
    AssetUpload,
    AssetUploadStatus,
    AssetUrl,
    CallEventSource,
    CapabilityGrant,
    CustomUserStatus,
    DirectoryMember,
    ExternalIdentityAccount,
    ExternalIdentityFlowKind,
    ExternalIdentityProvider,
    FollowedThread,
    FollowedThreadsPage,
    ImageFitMode,
    ImageTransformOptions,
    LinkedExternalIdentity,
    LinkPreview,
    Message,
    MessageAttachment,
    MessageReaction,
    Notification,
    NotificationLevel,
    NotificationPreference,
    NotificationsPage,
    Page,
    PendingExternalIdentity,
    PermissionDecision,
    PermissionGrant,
    PermissionMatrixCell,
    PermissionMatrixScope,
    PermissionScope,
    PermissionScopeKind,
    PresenceStatus,
    ProviderMetadata,
    Role,
    RolePermissionDecisions,
    RolePermissionMatrix,
    Room,
    RoomBan,
    RoomDirectoryScope,
    RoomGroup,
    RoomKind,
    RoomNotificationPreference,
    RoomSummary,
    RoomViewerState,
    RoomWithViewerState,
    ScopedPermissionDecision,
    ServerConfig,
    ServerLogin,
    ServerProfile,
    ServerRuntimeConfig,
    SidebarLink,
    ThreadSummary,
    TimeFormat,
    TimelineEvent,
    TimelinePage,
    User,
    UserPermissionDecisions,
    UserPermissionMatrix,
    UserSettings,
    VideoProcessing,
    VideoProcessingStatus,
    VideoVariant,
    ViewerCapabilities,
    ViewerSnapshot,
    ViewerState,
    ViewerUser,
)

__all__ = [
    "ChattoClient",
    "SyncChattoClient",
    "SyncRealtimeConnection",
    "stream_events_sync",
    "ChattoError",
    "ChattoConnectError",
    "ChattoAuthError",
    "ChattoRealtimeCloseError",
    "ChattoRealtimeError",
    "RealtimeConnection",
    "RealtimeEvent",
    "RealtimePayload",
    "ServerHello",
    "stream_events",
    "ActiveCall",
    "AdminAccountInfo",
    "AdminConnectionInfo",
    "AdminEventLogEntry",
    "AdminEventLogPage",
    "AdminMember",
    "AdminMemberDetail",
    "AdminNatsConsumerInfo",
    "AdminNatsStats",
    "AdminNatsStreamInfo",
    "AdminProjectionMetric",
    "AdminProjectionState",
    "AdminRole",
    "AdminRoleDetail",
    "AdminRoomLayoutGroup",
    "AdminRoomLayoutItemKind",
    "AdminServerStats",
    "AdminSystemInfo",
    "AdminSystemInfoSnapshot",
    "Asset",
    "AssetDeletedPayload",
    "AssetProcessingPayload",
    "AssetUpload",
    "AssetUploadStatus",
    "AssetUrl",
    "CallEventPayload",
    "CallEventSource",
    "CapabilityGrant",
    "CustomUserStatus",
    "DirectoryMember",
    "ExternalIdentityAccount",
    "ExternalIdentityFlowKind",
    "ExternalIdentityProvider",
    "FollowedThread",
    "FollowedThreadsPage",
    "ImageFitMode",
    "ImageTransformOptions",
    "LinkedExternalIdentity",
    "LinkPreview",
    "MentionNotificationPayload",
    "Message",
    "MessageAttachment",
    "MessageEditedPayload",
    "MessagePostedPayload",
    "MessageReaction",
    "MessageRetractedPayload",
    "NewDirectMessageNotificationPayload",
    "Notification",
    "NotificationCreatedPayload",
    "NotificationDismissedPayload",
    "NotificationLevel",
    "NotificationLevelChangedPayload",
    "NotificationPreference",
    "NotificationsPage",
    "Page",
    "PendingExternalIdentity",
    "PermissionDecision",
    "PermissionGrant",
    "PermissionMatrixCell",
    "PermissionMatrixScope",
    "PermissionScope",
    "PermissionScopeKind",
    "PresenceChangedPayload",
    "PresenceStatus",
    "ProviderMetadata",
    "ReactionPayload",
    "Role",
    "RolePermissionDecisions",
    "RolePermissionMatrix",
    "Room",
    "RoomBan",
    "RoomDirectoryScope",
    "RoomEventPayload",
    "RoomGroup",
    "RoomGroupsUpdatedPayload",
    "RoomKind",
    "RoomMarkedAsReadPayload",
    "RoomNotificationPreference",
    "RoomSummary",
    "RoomUniversalChangedPayload",
    "RoomViewerState",
    "RoomWithViewerState",
    "ScopedPermissionDecision",
    "ServerConfig",
    "ServerLogin",
    "ServerMemberDeletedPayload",
    "ServerProfile",
    "ServerRuntimeConfig",
    "ServerUpdatedPayload",
    "ServerUserPreferencesUpdatedPayload",
    "SessionTerminatedPayload",
    "SidebarLink",
    "ThreadCreatedPayload",
    "ThreadFollowChangedPayload",
    "ThreadSummary",
    "TimeFormat",
    "TimelineEvent",
    "TimelinePage",
    "TypingPayload",
    "User",
    "UserCustomStatusClearedPayload",
    "UserCustomStatusSetPayload",
    "UserPermissionDecisions",
    "UserPermissionMatrix",
    "UserProfileUpdatedPayload",
    "UserSettings",
    "VideoProcessing",
    "VideoProcessingStatus",
    "VideoVariant",
    "ViewerCapabilities",
    "ViewerSnapshot",
    "ViewerState",
    "ViewerUser",
]
