UNPKG

seyfert

Version:

The most advanced framework for discord bots

151 lines (150 loc) 10.2 kB
import type { RestToKeys } from '../common'; import type { APIAuditLogEntry, APIAutoModerationRule, APIChannel, APIEntitlement, APIGuild, APIGuildMember, APIGuildScheduledEvent, APIStageInstance, APISubscription, APIUser, GatewayActivity, GatewayAutoModerationActionExecutionDispatchData, GatewayChannelPinsUpdateDispatchData, GatewayChannelUpdateDispatchData, GatewayEntitlementCreateDispatchData, GatewayGuildBanAddDispatchData, GatewayGuildBanRemoveDispatchData, GatewayGuildCreateDispatchData, GatewayGuildDeleteDispatchData, GatewayGuildEmojisUpdateDispatchData, GatewayGuildIntegrationsUpdateDispatchData, GatewayGuildMemberAddDispatchData, GatewayGuildMemberRemoveDispatchData, GatewayGuildMemberUpdateDispatchData, GatewayGuildMembersChunkDispatchData, GatewayGuildRoleCreateDispatchData, GatewayGuildRoleDeleteDispatchData, GatewayGuildRoleUpdateDispatchData, GatewayGuildScheduledEventUserRemoveDispatchData, GatewayGuildSoundboardSoundDeleteDispatchData, GatewayGuildSoundboardSoundsUpdateDispatchData, GatewayGuildStickersUpdateDispatchData, GatewayIntegrationCreateDispatchData, GatewayIntegrationDeleteDispatchData, GatewayInteractionCreateDispatchData, GatewayInviteCreateDispatchData, GatewayInviteDeleteDispatchData, GatewayMessageCreateDispatchData, GatewayMessageDeleteBulkDispatchData, GatewayMessageDeleteDispatchData, GatewayMessagePollVoteDispatchData, GatewayMessageReactionAddDispatchData, GatewayMessageReactionRemoveAllDispatchData, GatewayMessageReactionRemoveDispatchData, GatewayMessageReactionRemoveEmojiDispatchData, GatewayMessageUpdateDispatchData, GatewayPresenceUpdateData, GatewayPresenceUpdateDispatchData, GatewayReadyDispatchData, GatewayRequestGuildMembersDataWithQuery, GatewayRequestGuildMembersDataWithUserIds, GatewaySoundboardSoundsDispatchData, GatewayThreadCreateDispatchData, GatewayThreadDeleteDispatchData, GatewayThreadListSyncDispatchData, GatewayThreadMemberUpdateDispatchData, GatewayThreadMembersUpdateDispatchData, GatewayTypingStartDispatchData, GatewayUserUpdateDispatchData, GatewayVoiceChannelEffectSendDispachData, GatewayVoiceServerUpdateDispatchData, GatewayVoiceStateUpdateData, GatewayWebhooksUpdateDispatchData, PresenceUpdateStatus } from '../types'; import { GatewayDispatchEvents } from '../types'; import type { APISoundBoard } from '../types/payloads/soundboard'; /** https://discord.com/developers/docs/topics/gateway-events#update-presence */ export interface StatusUpdate { /** The user's activities */ activities?: Omit<GatewayActivity, 'created_at' | 'id'>[]; /** The user's new status */ status: PresenceUpdateStatus; } /** https://discord.com/developers/docs/topics/gateway#update-voice-state */ export interface UpdateVoiceState { /** id of the guild */ guild_id: string; /** id of the voice channel client wants to join (null if disconnecting) */ channel_id: string | null; /** Is the client muted */ self_mute: boolean; /** Is the client deafened */ self_deaf: boolean; } export type ShardStatusUpdate = Pick<GatewayPresenceUpdateData, 'activities' | 'status'>; export interface RequestGuildMembersOptions extends GatewayRequestGuildMembersDataWithQuery, GatewayRequestGuildMembersDataWithUserIds { } export interface GatewayMemberRequest { /** The unique nonce for this request. */ nonce: string; /** The resolver handler to run when all members arrive. */ resolve: (value: APIGuildMember[] | PromiseLike<APIGuildMember[]>) => void; /** The members that have already arrived for this request. */ members: APIGuildMember[]; } export type RawClientUser = { bot: true; } & APIUser; export interface Events { [GatewayDispatchEvents.Ready]: GatewayReadyDispatchData & { user: RawClientUser; }; [GatewayDispatchEvents.ChannelUpdate]: GatewayChannelUpdateDispatchData; [GatewayDispatchEvents.AutoModerationActionExecution]: GatewayAutoModerationActionExecutionDispatchData; [GatewayDispatchEvents.ThreadCreate]: GatewayThreadCreateDispatchData; [GatewayDispatchEvents.ThreadDelete]: GatewayThreadDeleteDispatchData; [GatewayDispatchEvents.ThreadUpdate]: GatewayThreadDeleteDispatchData; [GatewayDispatchEvents.ThreadListSync]: GatewayThreadListSyncDispatchData; [GatewayDispatchEvents.ThreadMemberUpdate]: GatewayThreadMemberUpdateDispatchData; [GatewayDispatchEvents.ThreadMembersUpdate]: GatewayThreadMembersUpdateDispatchData; [GatewayDispatchEvents.ChannelPinsUpdate]: GatewayChannelPinsUpdateDispatchData; [GatewayDispatchEvents.GuildCreate]: GatewayGuildCreateDispatchData; [GatewayDispatchEvents.GuildUpdate]: APIGuild; [GatewayDispatchEvents.GuildDelete]: GatewayGuildDeleteDispatchData; [GatewayDispatchEvents.GuildAuditLogEntryCreate]: APIAuditLogEntry; [GatewayDispatchEvents.GuildBanAdd]: GatewayGuildBanAddDispatchData; [GatewayDispatchEvents.GuildBanRemove]: GatewayGuildBanRemoveDispatchData; [GatewayDispatchEvents.GuildEmojisUpdate]: GatewayGuildEmojisUpdateDispatchData; [GatewayDispatchEvents.GuildStickersUpdate]: GatewayGuildStickersUpdateDispatchData; [GatewayDispatchEvents.GuildIntegrationsUpdate]: GatewayGuildIntegrationsUpdateDispatchData; [GatewayDispatchEvents.GuildSoundboardSoundsUpdate]: GatewayGuildSoundboardSoundsUpdateDispatchData; [GatewayDispatchEvents.GuildSoundboardSoundDelete]: GatewayGuildSoundboardSoundDeleteDispatchData; [GatewayDispatchEvents.SoundboardSounds]: GatewaySoundboardSoundsDispatchData; [GatewayDispatchEvents.GuildMemberAdd]: GatewayGuildMemberAddDispatchData; [GatewayDispatchEvents.GuildMemberRemove]: GatewayGuildMemberRemoveDispatchData; [GatewayDispatchEvents.GuildMemberUpdate]: GatewayGuildMemberUpdateDispatchData; [GatewayDispatchEvents.GuildMembersChunk]: GatewayGuildMembersChunkDispatchData; [GatewayDispatchEvents.GuildRoleCreate]: GatewayGuildRoleCreateDispatchData; [GatewayDispatchEvents.GuildRoleUpdate]: GatewayGuildRoleUpdateDispatchData; [GatewayDispatchEvents.GuildRoleDelete]: GatewayGuildRoleDeleteDispatchData; [GatewayDispatchEvents.IntegrationDelete]: GatewayIntegrationDeleteDispatchData; [GatewayDispatchEvents.InviteCreate]: GatewayInviteCreateDispatchData; [GatewayDispatchEvents.InviteDelete]: GatewayInviteDeleteDispatchData; [GatewayDispatchEvents.MessageCreate]: GatewayMessageCreateDispatchData; [GatewayDispatchEvents.MessageUpdate]: GatewayMessageUpdateDispatchData; [GatewayDispatchEvents.MessageDelete]: GatewayMessageDeleteDispatchData; [GatewayDispatchEvents.MessageDeleteBulk]: GatewayMessageDeleteBulkDispatchData; [GatewayDispatchEvents.MessageReactionAdd]: GatewayMessageReactionAddDispatchData; [GatewayDispatchEvents.MessageReactionRemove]: GatewayMessageReactionRemoveDispatchData; [GatewayDispatchEvents.MessageReactionRemoveAll]: GatewayMessageReactionRemoveAllDispatchData; [GatewayDispatchEvents.MessageReactionRemoveEmoji]: GatewayMessageReactionRemoveEmojiDispatchData; [GatewayDispatchEvents.PresenceUpdate]: GatewayPresenceUpdateDispatchData; [GatewayDispatchEvents.TypingStart]: GatewayTypingStartDispatchData; [GatewayDispatchEvents.UserUpdate]: GatewayUserUpdateDispatchData; [GatewayDispatchEvents.VoiceChannelEffectSend]: GatewayVoiceChannelEffectSendDispachData; [GatewayDispatchEvents.VoiceStateUpdate]: GatewayVoiceStateUpdateData; [GatewayDispatchEvents.VoiceServerUpdate]: GatewayVoiceServerUpdateDispatchData; [GatewayDispatchEvents.WebhooksUpdate]: GatewayWebhooksUpdateDispatchData; [GatewayDispatchEvents.InteractionCreate]: GatewayInteractionCreateDispatchData; [GatewayDispatchEvents.EntitlementCreate]: GatewayEntitlementCreateDispatchData; } export type StageSameEvents = RestToKeys<[ APIStageInstance, GatewayDispatchEvents.StageInstanceCreate, GatewayDispatchEvents.StageInstanceUpdate, GatewayDispatchEvents.StageInstanceDelete ]>; export type PollVoteSameEvents = RestToKeys<[ GatewayMessagePollVoteDispatchData, GatewayDispatchEvents.MessagePollVoteRemove, GatewayDispatchEvents.MessagePollVoteAdd ]>; export type IntegrationSameEvents = RestToKeys<[ GatewayIntegrationCreateDispatchData, GatewayDispatchEvents.IntegrationCreate, GatewayDispatchEvents.IntegrationUpdate ]>; export type GuildScheduledUserSameEvents = RestToKeys<[ GatewayGuildScheduledEventUserRemoveDispatchData, GatewayDispatchEvents.GuildScheduledEventUserRemove, GatewayDispatchEvents.GuildScheduledEventUserAdd ]>; export type GuildScheduledSameEvents = RestToKeys<[ APIGuildScheduledEvent, GatewayDispatchEvents.GuildScheduledEventCreate, GatewayDispatchEvents.GuildScheduledEventDelete, GatewayDispatchEvents.GuildScheduledEventUpdate ]>; export type ChannelSameEvents = RestToKeys<[ APIChannel, GatewayDispatchEvents.ChannelCreate, GatewayDispatchEvents.ChannelDelete, GatewayDispatchEvents.ChannelUpdate ]>; export type AutoModetaractionRuleEvents = RestToKeys<[ APIAutoModerationRule, GatewayDispatchEvents.AutoModerationRuleCreate, GatewayDispatchEvents.AutoModerationRuleDelete, GatewayDispatchEvents.AutoModerationRuleUpdate ]>; export type EntitlementEvents = RestToKeys<[ APIEntitlement, GatewayDispatchEvents.EntitlementDelete, GatewayDispatchEvents.EntitlementUpdate ]>; export type SubscriptionEvents = RestToKeys<[ APISubscription, GatewayDispatchEvents.SubscriptionCreate, GatewayDispatchEvents.SubscriptionDelete, GatewayDispatchEvents.SubscriptionUpdate ]>; export type SoundboardSoundsEvents = RestToKeys<[ APISoundBoard, GatewayDispatchEvents.GuildSoundboardSoundCreate, GatewayDispatchEvents.GuildSoundboardSoundUpdate ]>; export type NormalizeEvents = Events & AutoModetaractionRuleEvents & ChannelSameEvents & GuildScheduledSameEvents & GuildScheduledUserSameEvents & IntegrationSameEvents & EntitlementEvents & PollVoteSameEvents & StageSameEvents & SubscriptionEvents & SoundboardSoundsEvents & { RAW: GatewayDispatchEvents; }; export type GatewayEvents = { [x in keyof NormalizeEvents]: NormalizeEvents[x]; };