UNPKG

detritus-client

Version:

A Typescript NodeJS library to interact with Discord's API, both Rest and Gateway.

1,010 lines (1,009 loc) 27.1 kB
import { InteractionTypes, Snowflake } from '../constants'; export declare namespace GatewayRawEvents { interface GatewayPacket { d: any; op: number; s: number; t: string; } interface ActivityJoinInvite { secret: string; user_id: string; } interface ActivityJoinRequest { user: RawUser; } interface ActivityStart { activity: any; user_id: string; } interface ApplicationCommandCreate { application_id: string; default_permission?: boolean; description: string; guild_id?: string; id: string; name: string; options?: Array<ApplicationCommandOption>; } interface ApplicationCommandOption { choices?: Array<ApplicationCommandOptionChoice>; description: string; name: string; options?: Array<ApplicationCommandOption>; required?: boolean; type: number; } interface ApplicationCommandOptionChoice { name: string; value: string | number; } interface ApplicationCommandDelete extends ApplicationCommandCreate { } interface ApplicationCommandUpdate extends ApplicationCommandCreate { } interface BraintreePopupBridgeCallback { path: string; query: any; state: string; } interface CallCreate { channel_id: string; message_id: string; region: string; ringing: Array<string>; voice_states?: Array<RawVoiceState>; } interface CallDelete { channel_id: string; unavailable: boolean; } interface CallUpdate { channel_id: string; message_id: string; region: string; ringing: Array<string>; } interface ChannelCreate extends RawChannel { } interface ChannelDelete extends RawChannel { } interface ChannelPinsAck { channel_id: string; timestamp: string; } interface ChannelPinsUpdate { channel_id: string; guild_id?: string; last_pin_timestamp: string; } interface ChannelUnreadUpdate { channel_unread_updates: Array<{ id: string; last_message_id: string; }>; guild_id: string; } interface ChannelUpdate extends RawChannel { } interface ChannelRecipientAdd { channel_id: string; nick?: string; user: RawUser; } interface ChannelRecipientRemove extends ChannelRecipientAdd { } interface EntitlementCreate extends RawEntitlement { } interface EntitlementDelete extends RawEntitlement { } interface EntitlementUpdate extends RawEntitlement { } interface FriendSuggestionCreate extends RawFriendSuggestion { } interface FriendSuggestionDelete { suggested_user_id: string; } interface GiftCodeUpdate { code: string; uses: number; } interface GuildBanAdd { guild_id: string; user: RawUser; } interface GuildBanRemove { guild_id: string; user: RawUser; } interface GuildCreate extends RawGuild { } interface GuildDelete { id: string; unavailable?: boolean; } interface GuildEmojisUpdate { guild_id: string; emojis: Array<RawEmoji>; } interface GuildIntegrationsUpdate { guild_id: string; } interface GuildMemberAdd { guild_id: string; user: RawUser; } interface GuildMemberListUpdate { groups: Array<{ count: number; id: string; }>; guild_id: string; id: string; member_count: number; online_count: number; ops: Array<{ op: 'DELETE' | 'INSERT' | 'SYNC' | 'UPDATE'; index?: number; items?: Array<RawGuildMemberListUpdateItem>; item?: RawGuildMemberListUpdateItem; range?: Array<[number, number]>; }>; } interface GuildMemberRemove { guild_id: string; user: RawUser; } interface GuildMemberUpdate { guild_id: string; nick: null | string; premium_since: null | string; roles: Array<string>; user: RawUser; } interface GuildMembersChunk { chunk_count: number; chunk_index: number; guild_id: string; members: Array<RawMember>; presences?: Array<RawPresence>; nonce?: string; not_found?: Array<Snowflake>; } interface GuildRoleCreate { guild_id: string; role: RawRole; } interface GuildRoleDelete { guild_id: string; role_id: string; } interface GuildRoleUpdate { guild_id: string; role: RawRole; } interface GuildStickersUpdate { guild_id: string; stickers: Array<RawSticker>; } interface GuildUpdate extends RawGuild { } interface InteractionCreate { application_id: string; channel_id?: string; data: RawApplicationCommandInteractionData; guild_id?: string; id: string; member?: RawMember; message?: MessageCreate; token: string; type: InteractionTypes; user?: RawUser; version: number; } interface InviteCreate { channel_id: string; code: string; created_at: string; guild_id: string; inviter: RawUserPartial; max_age: number; max_uses: number; temporary: boolean; uses: number; } interface InviteDelete { channel_id: string; guild_id: string; code: string; } interface LibraryApplicationUpdate { application: RawApplication; branch?: { id: string; name: string; }; branch_id: string; created_at: string; entitlements?: Array<RawEntitlement>; flags: number; sku: { id: string; premium: boolean; preorder_approximate_release_date: null | string; preorder_release_at: null | string; type: number; }; sku_id: string; } interface LobbyCreate { id: string; voice_states: Array<RawVoiceState>; } interface LobbyDelete { id: string; reason: string; } interface LobbyUpdate extends LobbyCreate { } interface LobbyMemberConnect { lobby_id: string; member: { metdata: any; user: RawUser; }; } interface LobbyMemberDisconnect { lobby_id: string; member: { metdata: any; user: RawUser; }; } interface LobbyMemberUpdate { lobby_id: string; member: { metdata: any; user: RawUser; }; } interface LobbyMessage { data: string; lobby_id: string; sender_id: string; } interface LobbyVoiceServerUpdate { endpoint: string; lobby_id: string; token: string; } interface LobbyVoiceStateUpdate extends RawVoiceState { lobby_id: string; } interface MessageAck { channel_id: string; message_id: string; } interface MessageCreate { activity?: { cover_image?: string; name?: string; party_id: string; type: number; }; application?: { cover_image: null | string; description: string; icon: null | string; id: string; name: string; primary_sku_id: string; }; attachments?: Array<RawMessageAttachment>; author: RawUser; call?: { ended_timestamp: null | string; participiants: Array<string>; }; channel_id: string; components?: Array<RawMessageComponent>; content: string; edited_timestamp?: string; embeds?: Array<RawMessageEmbed>; guild_id?: string; id: string; member?: RawMemberWithoutUser; mention_channels?: Array<RawChannel>; mention_everyone: boolean; mention_roles: Array<string>; mentions: Array<{ bot: boolean; discriminator: string; id: string; member?: RawMemberWithoutUser; username: string; }>; message_reference?: { channel_id: string; guild_id?: string; message_id: string; }; nonce: null | string; pinned: boolean; stickers?: Array<RawSticker>; timestamp: string; tts: boolean; type: number; webhook_id?: string; } interface MessageDelete { channel_id: string; guild_id?: string; id: string; } interface MessageDeleteBulk { channel_id: string; guild_id?: string; ids: Array<string>; } interface MessageReactionAdd { channel_id: string; emoji: RawEmojiPartial; guild_id?: string; message_id: string; member?: RawMember; user_id: string; } interface MessageReactionRemove extends MessageReactionAdd { channel_id: string; emoji: RawEmojiPartial; guild_id?: string; message_id: string; user_id: string; } interface MessageReactionRemoveAll { channel_id: string; guild_id?: string; message_id: string; } interface MessageReactionRemoveEmoji { channel_id: string; guild_id?: string; message_id: string; emoji: RawEmojiPartial; } interface MessageUpdate extends Partial<MessageCreate> { channel_id: string; id: string; } interface Oauth2TokenRemove { access_token: string; } interface PresenceUpdate extends RawPresence { nick?: string; premium_since?: null | string; roles?: Array<string>; } interface PresencesReplace { presences?: Array<RawPresence>; } interface Ready { _trace: Array<string>; analytics_token?: string; application?: { flags: number; id: string; }; connected_accounts?: Array<RawConnectedAccount>; consents?: { personalization?: { consented: boolean; }; usage_statistics?: { consented: boolean; }; }; experiments?: Array<[ number, number, number ]>; expiring_subscription_id?: string; friend_suggestion_count?: number; guild_experiments?: Array<[ number, null, number, Array<number>, Array<number>, Array<number> ]>; guilds: Array<RawGuild>; notes?: { [key: string]: string; }; presences?: Array<RawPresence>; private_channels: Array<RawChannel>; read_state?: Array<{ id: string; last_message_id: string; last_pin_timestamp: string; mention_count: number; }>; relationships?: Array<RawRelationship>; required_action?: string; session_id: string; sessions?: Array<RawSession>; shard?: Array<[number, number]>; tutorial?: { indicators_confirmed: Array<any>; indicators_suppressed: boolean; }; user: RawUserMe; user_feed_settings?: RawUserFeedSettings; user_guild_settings?: Array<RawUserGuildSettings>; user_settings?: RawUserSettings; v: number; } interface RecentMentionDelete { message_id: string; } interface RelationshipAdd extends RawRelationship { } interface RelationshipRemove { id: string; type: number; } interface Resumed { _trace: Array<string>; } interface SessionsReplace extends Array<RawSession> { } interface StageInstanceCreate extends RawStageInstance { } interface StageInstanceDelete extends RawStageInstance { } interface StageInstanceUpdate extends RawStageInstance { } interface StreamCreate { paused: boolean; region: string; rtc_server_id: string; stream_key: string; viewer_ids: Array<string>; } interface StreamDelete { reason: string; stream_key: string; unavailable: boolean; } interface StreamServerUpdate { endpoint: string; stream_key: string; token: string; } interface StreamUpdate { paused: boolean; region: string; stream_key: string; viewer_ids: Array<string>; } interface ThreadCreate extends RawChannel { } interface ThreadDelete { guild_id: string; id: string; parent_id: string; type: number; } interface ThreadListSync { channel_ids?: Array<string>; guild_id: string; members: Array<RawThreadMember>; threads: Array<RawChannel>; } interface ThreadMemberUpdate extends RawThreadMember { } interface ThreadMembersUpdate { added_members?: Array<RawThreadMember>; guild_id: string; id: string; member_count: number; removed_member_ids?: Array<string>; } interface ThreadUpdate extends RawChannel { } interface TypingStart { channel_id: string; guild_id?: string; member?: RawMember; timestamp: number; user_id: string; } interface UserAchievementUpdate { application_id: string; achievement: { description: string; name: string; }; percent_complete: number; } interface UserConnectionsUpdate { } interface UserFeedSettingsUpdate extends RawUserFeedSettings { } interface UserGuildSettingsUpdate extends RawUserGuildSettings { } interface UserNoteUpdate { id: string; note: string; } interface UserPaymentSourcesUpdate { } interface UserPaymentsUpdate { } interface UserRequiredActionUpdate { required_action: null | string; } interface UserSettingsUpdate extends RawUserSettings { } interface UserSubscriptionsUpdate { } interface UserUpdate extends RawUserMe { } interface VoiceServerUpdate { channel_id: string; endpoint: string; guild_id: string; token: string; } interface VoiceStateUpdate extends RawVoiceState { member?: RawMember; } interface WebhooksUpdate { channel_id: string; guild_id: string; } interface RawApplication { bot_public: boolean; bot_require_code_grant: boolean; description: null | string; developers: Array<{ id: string; name: string; }>; guild_id: null | string; icon: null | string; id: string; name: string; primary_sku_id: string; publishers: Array<{ id: string; name: string; }>; slug: string; summary: string; verify_key: string; } interface RawApplicationCommandInteractionData { component_type?: number; custom_id?: string; id: string; name: string; options?: Array<RawApplicationCommandInteractionDataOption>; resolved?: { channels?: Record<string, RawChannel>; members?: Record<string, RawMember>; roles?: Record<string, RawRole>; users?: Record<string, RawUser>; }; } interface RawApplicationCommandInteractionDataOption { name: string; options?: Array<RawApplicationCommandInteractionDataOption>; value?: any; } interface RawChannelPartial { id: string; name: string; type: number; } interface RawChannel extends RawChannelPartial { bitrate?: number; guild_id?: string; last_message_id?: null | string; last_pin_timestamp?: null | string; member_count?: number; message_count?: number; nicks?: { [id: string]: string; }; nsfw?: boolean; owner_id?: string; parent_id?: string; permission_overwrites?: Array<RawChannelOverwrite>; position?: number; rate_limit_per_user?: number; recipients?: Array<RawUser>; rtc_region?: null | string; thread_member?: RawThreadMember; thread_metadata?: { archive_timestamp: string; archived: boolean; archiver_id?: string; auto_archive_duration: number; locked?: boolean; }; topic?: string; user_limit?: number; video_quality_mode?: number; } interface RawChannelOverwrite { allow: number; deny: number; id: string; type: 'member' | 'role'; } interface RawConnectedAccount { friend_sync: boolean; id: string; integrations?: Array<any>; name: string; revoked: boolean; show_activity: boolean; type: string; verified: boolean; visibility: number; } interface RawEmojiPartial { animated: boolean; id: null | string; name: string; } interface RawEmoji extends RawEmojiPartial { available: boolean; managed: boolean; require_colons: boolean; roles: Array<string>; } interface RawEntitlement { application_id: string; branches: Array<string>; id: string; sku_id: string; type: number; user_id: string; } interface RawFriendSuggestion { reasons: Array<{ name: string; platform_type: string; }>; suggested_user: RawUser; } interface RawGuild { afk_channel_id: null | string; afk_timeout: number; application_id: null | string; banner: null | string; channels: Array<RawChannel>; default_message_notifications: number; embed_channel_id: null | string; embed_enabled: boolean; emojis: Array<RawEmoji>; explicit_content_filter: number; features: Array<string>; guild_id: string; icon: null | string; id: string; max_members: number; max_presences: number; members: Array<RawMember>; member_count: number; mfa_level: number; name: string; owner_id: string; preferred_locale: null | string; premium_subscription_count: number; premium_tier: number; presences: Array<RawPresence>; region: string; roles: Array<RawRole>; splash: null | string; system_channel_flags: number; system_channel_id: null | string; unavailable: boolean; vanity_url_code: null | string; verification_level: number; voice_states?: Array<RawVoiceState>; widget_channel_id: null | number; widget_enabled: boolean; } interface RawGuildMemberListUpdateItem { group?: { count: number; id: string; }; member?: RawMember; } interface RawMemberWithoutUser { deaf: boolean; joined_at: string; mute: boolean; nick: null | string; premium_since: null | string; presence?: RawPresence; roles: Array<string>; } interface RawMember extends RawMemberWithoutUser { user: RawUser; } interface RawMessageAttachment { filename: string; height: number; id: string; proxy_url: string; size: number; url: string; width: number; } interface RawMessageComponent { components?: Array<RawMessageComponent>; custom_id?: string; disabled?: boolean; emoji?: RawEmojiPartial; label?: string; max_values?: number; min_values?: number; options?: Array<RawMessageComponentSelectMenuOption>; placeholder?: string; style?: number; type: number; url?: string; } interface RawMessageComponentSelectMenuOption { default?: boolean; description?: string; emoji?: RawEmojiPartial; label: string; value: string; } interface RawMessageEmbed { author?: { icon_url?: string; name?: string; proxy_icon_url?: string; url?: string; }; color?: number; description?: string; fields?: Array<{ inline?: boolean; name: string; value: string; }>; footer?: { icon_url?: string; proxy_icon_url?: string; text: string; }; image?: { height?: number; proxy_url?: string; url?: string; width?: number; }; provider?: { name?: string; url?: string; }; reference_id?: string; thumbnail?: { height?: number; proxy_url?: string; url?: string; width?: number; }; timestamp?: string; title?: string; type?: string; url?: string; video?: { height?: number; url?: string; width?: number; }; } interface RawPresence { activities: Array<RawPresenceActivity>; client_status: { desktop?: string; mobile?: string; web?: string; }; game: RawPresenceActivity; guild_id?: string; last_modified?: number; status: string; user: RawUserPartial; } interface RawPresenceActivity { application_id?: string; assets?: { large_image?: string; large_text?: string; small_image?: string; small_text?: string; }; created_at?: number; details?: string; emoji?: { animated: boolean; id: null | string; name: string; }; flags?: number; id?: string; instance?: boolean; metadata?: { [key: string]: any; }; name: string; party?: { id?: string; size?: Array<[number, number]>; }; secrets?: { join?: string; match?: string; spectate?: string; }; session_id?: string; state?: string; sync_id?: string; timestamps?: { end?: number; start?: number; }; type: number; url?: string; } interface RawRelationship { id: string; type: number; user: RawUser; } interface RawRole { color: number; guild_id?: string; hoist: boolean; id: string; managed: boolean; mentionable: boolean; name: string; permissions: number; position: number; } interface RawSession { active?: boolean; activities: Array<RawPresenceActivity>; client_info: { client: string; os: string; version: number; }; game: null | RawPresenceActivity; last_modified?: string; session_id: string; status: string; } interface RawStageInstance { channel_id: string; discoverable_disabled: boolean; guild_id: string; id: string; privacy_level: number; topic: string; } interface RawSticker { asset: string; available?: boolean; description: string; guild_id?: string; id: string; name: string; pack_id?: string; preview_asset: null | string; tags: string; } interface RawThreadMember { flags: number; id: string; join_timestamp: string; user_id: string; } interface RawUserPartial { bot?: boolean; discriminator?: string; id: string; username?: string; } interface RawUser { avatar: null | string; bot: boolean; discriminator: string; id: string; username: string; } interface RawUserMe extends RawUser { email: null | string; flags: number; locale: null | string; mfa_enabled: boolean; phone: null | string; premium_type: number; verified: boolean; } interface RawUserFeedSettings { autosubscribed_users: Array<string>; subscribed_games: Array<string>; subscribed_users: Array<string>; unsubscribed_games: Array<string>; unsubscribed_users: Array<string>; } interface RawUserGuildSettings { channel_overrides?: { [key: string]: { channel_id: string; message_notifications: number; muted: boolean; }; }; guild_id: string; message_notifications: number; mobile_push: boolean; muted: boolean; suppress_everyone: boolean; } interface RawUserSettings { afk_timeout: number; animate_emojis: boolean; convert_emoticons: boolean; default_guilds_restricted: boolean; detect_platform_accounts: boolean; developer_mode: boolean; disable_games_tab: boolean; enable_tts_command: boolean; explicit_content_filter: number; friend_source_flags: { all: boolean; }; gif_auto_play: boolean; guild_folders: Array<string>; guild_positions: Array<string>; inline_attachment_media: boolean; inline_embed_media: boolean; locale: string; message_display_compact: boolean; render_embeds: boolean; render_reactions: boolean; restricted_guilds: Array<string>; show_current_game: boolean; status: string; theme: string; timezone_offset: number; } interface RawVoiceState { channel_id: string; deaf: boolean; guild_id?: string; mute: boolean; self_deaf: boolean; self_mute: boolean; self_stream: boolean; self_video: boolean; session_id: string; suppress: boolean; user_id: string; } }