mod auth_http;
mod client;
mod commands;
mod events;
mod fingerprint;
mod gateway;
pub mod ids;
pub mod password_auth;
pub mod qr_auth;
mod rest;
mod state;

pub use client::DiscordClient;
pub(crate) use client::validate_token_header;
pub use commands::{AppCommand, ForumPostArchiveState, MuteDuration};
pub use commands::{
    MAX_UPLOAD_ATTACHMENT_COUNT, MAX_UPLOAD_FILE_BYTES, MAX_UPLOAD_TOTAL_BYTES,
    MessageAttachmentUpload, ReactionEmoji,
};
pub use events::{
    ActivityEmoji, ActivityInfo, ActivityKind, AppEvent, AttachmentInfo, AttachmentUpdate,
    ChannelInfo, ChannelNotificationOverrideInfo, ChannelRecipientInfo, CustomEmojiInfo,
    EmbedFieldInfo, EmbedInfo, FriendStatus, GuildFolder, GuildNotificationSettingsInfo,
    InlinePreviewInfo, MemberInfo, MentionInfo, MessageInfo, MessageKind, MessageReferenceInfo,
    MessageSnapshotInfo, MutualGuildInfo, NotificationLevel, PermissionOverwriteInfo,
    PermissionOverwriteKind, PollAnswerInfo, PollInfo, PresenceStatus, ReactionInfo,
    ReactionUserInfo, ReactionUsersInfo, ReadStateInfo, ReplyInfo, RoleInfo, SequencedAppEvent,
    UserProfileInfo,
};
pub use ids::{Id, marker};
pub use rest::ForumPostPage;
pub use state::{
    ChannelRecipientState, ChannelState, ChannelUnreadState, ChannelVisibilityStats,
    DiscordSnapshot, DiscordState, DiscordStateCache, GuildMemberState, GuildState,
    MessageCapabilities, MessageState, RoleState, SnapshotRevision,
};
