import { ApplicationCommandPermissionsUpdateData, ClientEvents, CloseEvent, Collection, DMChannel, Guild, GuildBan, GuildEmoji, GuildMember, Interaction, Invite, Message, MessageReaction, NonThreadGuildBasedChannel, PartialGuildMember, PartialMessage, PartialUser, Presence, Role, Snowflake, StageInstance, Sticker, TextBasedChannel, TextChannel, ThreadMember, User, VoiceState, AnyThreadChannel, PartialThreadMember, Typing, NewsChannel, VoiceChannel, PartialMessageReaction, GuildScheduledEvent, ForumChannel } from "discord.js"; import { GuildMessage } from "../types"; export type ExtendedClientEvents = ClientEvents & { raw: any[]; }; /** * Each property is a function that converts DJS event listener arguments to Knub's event argument object. * @see https://github.com/discordjs/discord.js/blob/669c3cd/packages/discord.js/typings/index.d.ts#L4192 */ export declare const fromDjsArgs: { applicationCommandPermissionsUpdate: (data: ApplicationCommandPermissionsUpdateData) => { data: ApplicationCommandPermissionsUpdateData; }; cacheSweep: (message: string) => { message: string; }; channelCreate: (channel: NonThreadGuildBasedChannel) => { channel: NonThreadGuildBasedChannel; }; channelDelete: (channel: DMChannel | NonThreadGuildBasedChannel) => { channel: DMChannel | NonThreadGuildBasedChannel; }; channelPinsUpdate: (channel: TextBasedChannel, date: Date) => { channel: TextBasedChannel; date: Date; }; channelUpdate: (oldChannel: DMChannel | NonThreadGuildBasedChannel, newChannel: DMChannel | NonThreadGuildBasedChannel) => { oldChannel: DMChannel | NonThreadGuildBasedChannel; newChannel: DMChannel | NonThreadGuildBasedChannel; }; debug: (message: string) => { message: string; }; emojiCreate: (emoji: GuildEmoji) => { emoji: GuildEmoji; }; emojiDelete: (emoji: GuildEmoji) => { emoji: GuildEmoji; }; emojiUpdate: (oldEmoji: GuildEmoji, newEmoji: GuildEmoji) => { oldEmoji: GuildEmoji; newEmoji: GuildEmoji; }; error: (error: Error) => { error: Error; }; guildBanAdd: (ban: GuildBan) => { ban: GuildBan; }; guildBanRemove: (ban: GuildBan) => { ban: GuildBan; }; guildCreate: (guild: Guild) => { guild: Guild; }; guildDelete: (guild: Guild) => { guild: Guild; }; guildIntegrationsUpdate: (guild: Guild) => { guild: Guild; }; guildMemberAdd: (member: GuildMember) => { member: GuildMember; }; guildMemberAvailable: (member: GuildMember | PartialGuildMember) => { member: GuildMember | PartialGuildMember; }; guildMemberRemove: (member: GuildMember | PartialGuildMember) => { member: GuildMember | PartialGuildMember; }; guildMembersChunk: (members: Collection, guild: Guild, data: { count: number; index: number; nonce: string | undefined; }) => { members: Collection; guild: Guild; data: { count: number; index: number; nonce: string | undefined; }; }; guildMemberUpdate: (oldMember: GuildMember | PartialGuildMember, newMember: GuildMember) => { oldMember: GuildMember | PartialGuildMember; newMember: GuildMember; }; guildScheduledEventCreate: (guildScheduledEvent: GuildScheduledEvent) => { guildScheduledEvent: GuildScheduledEvent; }; guildScheduledEventUpdate: (oldGuildScheduledEvent: GuildScheduledEvent | null, newGuildScheduledEvent: GuildScheduledEvent) => { oldGuildScheduledEvent: GuildScheduledEvent | null; newGuildScheduledEvent: GuildScheduledEvent; }; guildScheduledEventDelete: (guildScheduledEvent: GuildScheduledEvent) => { guildScheduledEvent: GuildScheduledEvent; }; guildScheduledEventUserAdd: (guildScheduledEvent: GuildScheduledEvent, user: User) => { guildScheduledEvent: GuildScheduledEvent; user: User; }; guildScheduledEventUserRemove: (guildScheduledEvent: GuildScheduledEvent, user: User) => { guildScheduledEvent: GuildScheduledEvent; user: User; }; guildUnavailable: (guild: Guild) => { guild: Guild; }; guildUpdate: (oldGuild: Guild, newGuild: Guild) => { oldGuild: Guild; newGuild: Guild; }; interactionCreate: (interaction: Interaction) => { interaction: Interaction; }; invalidated: () => {}; inviteCreate: (invite: Invite) => { invite: Invite; }; inviteDelete: (invite: Invite) => { invite: Invite; }; messageCreate: (message: Message) => { message: Message; }; messageDelete: (message: Message | PartialMessage) => { message: Message | PartialMessage; }; messageDeleteBulk: (messages: Collection) => { messages: Collection | PartialMessage>; }; messageReactionAdd: (reaction: MessageReaction | PartialMessageReaction, user: User | PartialUser) => { reaction: MessageReaction | PartialMessageReaction; user: User | PartialUser; }; messageReactionRemove: (reaction: MessageReaction | PartialMessageReaction, user: User | PartialUser) => { reaction: MessageReaction | PartialMessageReaction; user: User | PartialUser; }; messageReactionRemoveAll: (message: Message | PartialMessage) => { message: Message | PartialMessage; }; messageReactionRemoveEmoji: (reaction: MessageReaction | PartialMessageReaction) => { reaction: MessageReaction | PartialMessageReaction; }; messageUpdate: (oldMessage: Message | PartialMessage, newMessage: Message | PartialMessage) => { oldMessage: Message | PartialMessage; newMessage: Message | PartialMessage; }; presenceUpdate: (oldPresence: Presence | null, newPresence: Presence) => { oldPresence: Presence | null; newPresence: Presence; }; ready: () => {}; roleCreate: (role: Role) => { role: Role; }; roleDelete: (role: Role) => { role: Role; }; roleUpdate: (oldRole: Role, newRole: Role) => { oldRole: Role; newRole: Role; }; shardDisconnect: (closeEvent: CloseEvent, shardID: number) => { closeEvent: CloseEvent; shardID: number; }; shardError: (error: Error, shardID: number) => { error: Error; shardID: number; }; shardReady: (shardID: number, unavailableGuilds: Set | undefined) => { shardID: number; unavailableGuilds: Set | undefined; }; shardReconnecting: (shardID: number) => { shardID: number; }; shardResume: (shardID: number, replayedEvents: number) => { shardID: number; replayedEvents: number; }; stageInstanceCreate: (stageInstance: StageInstance) => { stageInstance: StageInstance; }; stageInstanceDelete: (stageInstance: StageInstance) => { stageInstance: StageInstance; }; stageInstanceUpdate: (oldStageInstance: StageInstance | null, newStageInstance: StageInstance) => { oldStageInstance: StageInstance | null; newStageInstance: StageInstance; }; stickerCreate: (sticker: Sticker) => { sticker: Sticker; }; stickerDelete: (sticker: Sticker) => { sticker: Sticker; }; stickerUpdate: (oldSticker: Sticker, newSticker: Sticker) => { oldSticker: Sticker; newSticker: Sticker; }; threadCreate: (thread: AnyThreadChannel, newlyCreated: boolean) => { thread: AnyThreadChannel; newlyCreated: boolean; }; threadDelete: (thread: AnyThreadChannel) => { thread: AnyThreadChannel; }; threadListSync: (threads: Collection, guild: Guild) => { threads: Collection>; guild: Guild; }; threadMemberUpdate: (oldMember: ThreadMember, newMember: ThreadMember) => { oldMember: ThreadMember; newMember: ThreadMember; }; threadMembersUpdate: (addedMembers: Collection, removedMembers: Collection, thread: AnyThreadChannel) => { addedMembers: Collection; removedMembers: Collection; thread: AnyThreadChannel; }; threadUpdate: (oldThread: AnyThreadChannel, newThread: AnyThreadChannel) => { oldThread: AnyThreadChannel; newThread: AnyThreadChannel; }; typingStart: (typing: Typing) => { typing: Typing; }; userUpdate: (oldUser: User | PartialUser, newUser: User) => { oldUser: User | PartialUser; newUser: User; }; voiceStateUpdate: (oldState: VoiceState, newState: VoiceState) => { oldState: VoiceState; newState: VoiceState; }; warn: (message: string) => { message: string; }; webhookUpdate: (channel: TextChannel | NewsChannel | VoiceChannel | ForumChannel) => { channel: NewsChannel | TextChannel | VoiceChannel | ForumChannel; }; raw: (...rawArgs: any[]) => { rawArgs: any[]; }; }; export type KnownEvents = { [key in keyof typeof fromDjsArgs]: ReturnType; }; export interface KnownGuildEvents extends KnownEvents { channelUpdate: { oldChannel: NonThreadGuildBasedChannel; newChannel: NonThreadGuildBasedChannel; }; channelDelete: { channel: NonThreadGuildBasedChannel; }; messageCreate: { message: GuildMessage; }; typingStart: { typing: Typing & { channel: NonThreadGuildBasedChannel; }; }; } export type EventArguments = KnownEvents; export type GuildEventArguments = KnownGuildEvents; export declare const globalEvents: readonly ["debug", "shardDisconnect", "shardError", "shardReady", "shardReconnecting", "shardResume", "guildCreate", "guildUnavailable", "error", "ready", "invalidated", "userUpdate", "warn"]; export type ValidEvent = keyof KnownEvents; export type GlobalEvent = typeof globalEvents[number]; export type GuildEvent = Exclude; export declare function isGlobalEvent(ev: ValidEvent): ev is GlobalEvent; export declare function isGuildEvent(ev: ValidEvent): ev is GuildEvent;