import { InteractionEditReplyOptions, Message, MessageEditOptions, MessagePayload, User } from 'discord.js'; import { EventEmitter } from 'node:events'; import { BaseConstructorOptions, ButtonStyle, DeepRequired, MessageType } from './Base'; export interface FloodConstructorOptions extends BaseConstructorOptions { embed?: { title?: string; color?: string; }; difficulty?: number; timeoutTime?: number; buttonStyle?: ButtonStyle; winMessage?: string; loseMessage?: string; emojis?: string[]; } export class Flood extends EventEmitter { options: DeepRequired>; message: MessageType; length: number; gameBoard: string[]; maxTurns: number; turns: number; on( eventName: 'gameOver', listener: (result: { result: 'win' | 'lose'; player: User; turns: number; maxTurns: number; boardColor: string; }) => void ): this; once(...args: Parameters): this; constructor(options: FloodConstructorOptions); getBoardContent(): string; sendMessage( content: string | MessagePayload | (IsSlashGame extends true ? InteractionEditReplyOptions : MessageEditOptions) ): Promise; startGame(): Promise; gameOver(msg: Message, result: boolean): Promise; updateGame(selected: string, msg: Message): Promise; }