import type { GatewayEventHandler } from '../mod.ts'import type { GatewayEvents, MessageDeletePayload, TypingStartGuildData} from '../../types/gateway.ts'import { channelCreate } from './channelCreate.ts'import { channelDelete } from './channelDelete.ts'import { channelUpdate } from './channelUpdate.ts'import { channelPinsUpdate } from './channelPinsUpdate.ts'import { guildCreate } from './guildCreate.ts'import { guildDelete } from './guildDelete.ts'import { guildUpdate } from './guildUpdate.ts'import { guildBanAdd } from './guildBanAdd.ts'import { ready } from './ready.ts'import { guildBanRemove } from './guildBanRemove.ts'import { messageCreate } from './messageCreate.ts'import { resume } from './resume.ts'import { reconnect } from './reconnect.ts'import { messageDelete } from './messageDelete.ts'import { messageUpdate } from './messageUpdate.ts'import { guildEmojiUpdate } from './guildEmojiUpdate.ts'import { guildMemberAdd } from './guildMemberAdd.ts'import { guildMemberRemove } from './guildMemberRemove.ts'import { guildMemberUpdate } from './guildMemberUpdate.ts'import { guildRoleCreate } from './guildRoleCreate.ts'import { guildRoleDelete } from './guildRoleDelete.ts'import { guildRoleUpdate } from './guildRoleUpdate.ts'import { guildIntegrationsUpdate } from './guildIntegrationsUpdate.ts'import { webhooksUpdate } from './webhooksUpdate.ts'import { messageDeleteBulk } from './messageDeleteBulk.ts'import { userUpdate } from './userUpdate.ts'import { typingStart } from './typingStart.ts'import type { TextChannel } from '../../structures/textChannel.ts'import { GuildTextBasedChannel } from '../../structures/guildTextChannel.ts'import type { Guild } from '../../structures/guild.ts'import type { User } from '../../structures/user.ts'import type { Emoji } from '../../structures/emoji.ts'import type { Member } from '../../structures/member.ts'import type { Role } from '../../structures/role.ts'import type { Message } from '../../structures/message.ts'import type { Collection } from '../../utils/collection.ts'import { voiceServerUpdate } from './voiceServerUpdate.ts'import { voiceStateUpdate } from './voiceStateUpdate.ts'import type { VoiceState } from '../../structures/voiceState.ts'import { messageReactionAdd } from './messageReactionAdd.ts'import { messageReactionRemove } from './messageReactionRemove.ts'import { messageReactionRemoveAll } from './messageReactionRemoveAll.ts'import { messageReactionRemoveEmoji } from './messageReactionRemoveEmoji.ts'import { guildMembersChunk } from './guildMembersChunk.ts'import { presenceUpdate } from './presenceUpdate.ts'import { inviteCreate } from './inviteCreate.ts'import { inviteDelete } from './inviteDelete.ts'import type { MessageReaction } from '../../structures/messageReaction.ts'import type { Invite } from '../../structures/invite.ts'import type { Presence } from '../../structures/presence.ts'import type { EveryChannelTypes, EveryTextChannelTypes} from '../../utils/channel.ts'import { interactionCreate } from './interactionCreate.ts'import type { Interaction } from '../../structures/interactions.ts'import type { CommandContext, ParsedCommand } from '../../commands/command.ts'import type { RequestMethods } from '../../rest/types.ts'import type { PartialInvitePayload } from '../../types/invite.ts'import type { AuditLogEntry, GuildChannels } from '../../types/guild.ts'import type { ThreadChannel, ThreadMember} from '../../structures/threadChannel.ts'import { threadCreate } from './threadCreate.ts'import { threadDelete } from './threadDelete.ts'import { threadUpdate } from './threadUpdate.ts'import { threadMembersUpdate } from './threadMembersUpdate.ts'import { threadMemberUpdate } from './threadMemberUpdate.ts'import { threadListSync } from './threadListSync.ts'import { guildStickersUpdate } from './guildStickersUpdate.ts'import { MessageSticker } from '../../structures/messageSticker.ts'import { guildAuditLogEntryCreate } from './guildAuditLogEntryCreate.ts'import { CommandCooldownType } from '../../commands/client.ts'
export const gatewayHandlers: { [eventCode in GatewayEvents]: GatewayEventHandler | undefined} = { READY: ready, RECONNECT: reconnect, RESUMED: resume, CHANNEL_CREATE: channelCreate, CHANNEL_DELETE: channelDelete, CHANNEL_UPDATE: channelUpdate, CHANNEL_PINS_UPDATE: channelPinsUpdate, GUILD_CREATE: guildCreate, GUILD_DELETE: guildDelete, GUILD_UPDATE: guildUpdate, GUILD_BAN_ADD: guildBanAdd, GUILD_BAN_REMOVE: guildBanRemove, GUILD_EMOJIS_UPDATE: guildEmojiUpdate, GUILD_INTEGRATIONS_UPDATE: guildIntegrationsUpdate, GUILD_MEMBER_ADD: guildMemberAdd, GUILD_MEMBER_REMOVE: guildMemberRemove, GUILD_MEMBER_UPDATE: guildMemberUpdate, GUILD_MEMBERS_CHUNK: guildMembersChunk, GUILD_ROLE_CREATE: guildRoleCreate, GUILD_ROLE_UPDATE: guildRoleUpdate, GUILD_ROLE_DELETE: guildRoleDelete, INVITE_CREATE: inviteCreate, INVITE_DELETE: inviteDelete, MESSAGE_CREATE: messageCreate, MESSAGE_UPDATE: messageUpdate, MESSAGE_DELETE: messageDelete, MESSAGE_DELETE_BULK: messageDeleteBulk, MESSAGE_REACTION_ADD: messageReactionAdd, MESSAGE_REACTION_REMOVE: messageReactionRemove, MESSAGE_REACTION_REMOVE_ALL: messageReactionRemoveAll, MESSAGE_REACTION_REMOVE_EMOJI: messageReactionRemoveEmoji, PRESENCE_UPDATE: presenceUpdate, TYPING_START: typingStart, USER_UPDATE: userUpdate, VOICE_STATE_UPDATE: voiceStateUpdate, VOICE_SERVER_UPDATE: voiceServerUpdate, WEBHOOKS_UPDATE: webhooksUpdate, INTERACTION_CREATE: interactionCreate, THREAD_CREATE: threadCreate, THREAD_DELETE: threadDelete, THREAD_UPDATE: threadUpdate, THREAD_LIST_SYNC: threadListSync, THREAD_MEMBERS_UPDATE: threadMembersUpdate, THREAD_MEMBER_UPDATE: threadMemberUpdate, GUILD_STICKERS_UPDATE: guildStickersUpdate, GUILD_AUDIT_LOG_ENTRY_CREATE: guildAuditLogEntryCreate}
export interface VoiceServerUpdateData { token: string endpoint: string guild: Guild}
export type ClientEvents = { ready: [shards: number] shardReady: [shard: number] guildsLoaded: [shard: number] reconnect: [shard: number] resumed: [shard: number] channelCreate: [channel: EveryChannelTypes] channelDelete: [channel: EveryChannelTypes] channelPinsUpdate: [ before: EveryTextChannelTypes, after: EveryTextChannelTypes ] channelUpdate: [before: EveryChannelTypes, after: EveryChannelTypes] guildBanAdd: [guild: Guild, user: User] guildAuditLogEntryCreate: [guild: Guild, entry: AuditLogEntry] guildBanRemove: [guild: Guild, user: User] guildCreate: [guild: Guild] guildLoaded: [guild: Guild] guildDelete: [guild: Guild] guildEmojiAdd: [emoji: Emoji] guildEmojiDelete: [emoji: Emoji] guildEmojiUpdate: [before: Emoji, after: Emoji] guildStickerAdd: [sticker: MessageSticker] guildStickerDelete: [sticker: MessageSticker] guildStickerUpdate: [before: MessageSticker, after: MessageSticker] guildIntegrationsUpdate: [guild: Guild] guildEmojisUpdate: [guild: Guild] guildStickersUpdate: [guild: Guild, allStickers: MessageSticker[]] guildMemberAdd: [member: Member] guildMemberRemove: [member: Member] guildMemberUpdate: [before: Member, after: Member] guildRoleCreate: [role: Role] guildRoleDelete: [role: Role] guildRoleUpdate: [before: Role, after: Role] guildUpdate: [before: Guild, after: Guild] guildUnavailable: [guild: Guild] messageCreate: [message: Message] messageDelete: [message: Message] messageDeleteBulk: [ channel: GuildTextBasedChannel, messages: Collection<string, Message>, uncached: Set<string> ] messageUpdate: [before: Message, after: Message] messageReactionAdd: [reaction: MessageReaction, user: User] messageReactionRemove: [reaction: MessageReaction, user: User] messageReactionRemoveAll: [message: Message] messageReactionRemoveEmoji: [message: Message, emoji: Emoji] typingStart: [ user: User, channel: TextChannel, at: Date, guild: TypingStartGuildData | undefined ] inviteCreate: [invite: Invite] inviteDelete: [invite: Invite] userUpdate: [before: User, after: User] voiceServerUpdate: [data: VoiceServerUpdateData] voiceStateAdd: [state: VoiceState] voiceStateRemove: [state: VoiceState] voiceStateUpdate: [before: VoiceState, after: VoiceState] presenceUpdate: [presence: Presence] webhooksUpdate: [guild: Guild, channel: GuildTextBasedChannel]
interactionCreate: [interaction: Interaction]
debug: [message: string]
raw: [evt: string, payload: any, shard: number]
messageDeleteUncached: [payload: MessageDeletePayload]
guildMembersChunk: [ guild: Guild, info: { chunkIndex: number chunkCount: number members: string[] presences: string[] | undefined } ] guildMembersChunked: [guild: Guild, chunks: number] rateLimit: [ data: { method: RequestMethods path: string global: boolean timeout: number limit: number } ] inviteDeleteUncached: [invite: PartialInvitePayload] voiceStateRemoveUncached: [data: { guild: Guild; member: Member }] userUpdateUncached: [user: User] webhooksUpdateUncached: [guild: Guild, channelID: string] guildRoleUpdateUncached: [role: Role] guildMemberUpdateUncached: [member: Member] guildMemberRemoveUncached: [member: Member] channelUpdateUncached: [channel: GuildChannels] commandOwnerOnly: [ctx: CommandContext] commandGuildOnly: [ctx: CommandContext] commandDmOnly: [ctx: CommandContext] commandNSFW: [ctx: CommandContext] commandBotMissingPermissions: [ctx: CommandContext, missing: string[]] commandUserMissingPermissions: [ctx: CommandContext, missing: string[]] commandMissingArgs: [ctx: CommandContext] commandUsed: [ctx: CommandContext] commandError: [ctx: CommandContext, err: Error] commandNotFound: [msg: Message, parsedCmd: ParsedCommand] commandBlockedUser: [ctx: CommandContext] commandBlockedChannel: [ctx: CommandContext] commandBlockedGuild: [ctx: CommandContext] commandOnCooldown: [ ctx: CommandContext, remaining: number, type: CommandCooldownType ] gatewayError: [err: ErrorEvent, shards: [number, number]] error: [error: Error]
threadCreate: [thread: ThreadChannel] threadDelete: [thread: ThreadChannel] threadDeleteUncached: [thread: string] threadUpdate: [old: ThreadChannel, new: ThreadChannel] threadUpdateUncached: [thread: ThreadChannel] threadListSync: [ guild: Guild, threads: Collection<string, ThreadChannel>, members: Collection<string, ThreadMember>, channels: Collection<string, GuildTextBasedChannel> ] threadMemberUpdate: [me: ThreadMember] threadMembersUpdate: [ guild: Guild, added: Collection<string, ThreadMember>, removed: Collection<string, ThreadMember>, memberCount: number ] threadMemberAdd: [member: ThreadMember, guild: Guild] threadMemberRemove: [member: ThreadMember, guild: Guild]}