import { Component, Infraction } from '../src/client/interfaces/index.ts'; import { ClientEvents as CE, InvalidRequestWarningData, RateLimitData, ResponseLike } from 'discord.js'; import { ExtendedGuildBan, ExtendedMessage } from './Client.ts'; import { APIRequest } from '@discordjs/rest'; import { AutomodErrorProps, LinkFilterWarnProps, LogErrorProps, MissingPermsProps, UtilityErrorProps, WordWatcherErrorProps } from './Moderation.js'; type ComponentUpdate = { component: Component, type: 'ENABLE' | 'DISABLE' | 'LOAD' | 'UNLOAD' | 'RELOAD' } export type RejoinLogEntry = { userId: string; guildId: string; caseId: string; notify: string; } export interface ClientEvents extends CE { componentUpdate: [data: ComponentUpdate], rateLimit: [rateLimitInfo: RateLimitData]; invalidRequestWarning: [invalidRequestInfo: InvalidRequestWarningData]; built: []; messageCreate: [message: ExtendedMessage]; apiResponse: [APIRequest, ResponseLike]; guildBanAdd: [ExtendedGuildBan]; guildBanRemove: [ExtendedGuildBan]; automodError: [AutomodErrorProps]; wordWatcherError: [WordWatcherErrorProps]; logError: [LogErrorProps]; utilityError: [UtilityErrorProps]; linkFilterWarn: [LinkFilterWarnProps]; filterMissingPermissions: [MissingPermsProps]; infraction: [Infraction]; }