import { ActionRowBuilder, ButtonBuilder, InteractionEditReplyOptions, Message, MessageEditOptions, MessagePayload, User, } from 'discord.js'; import { EventEmitter } from 'node:events'; import { BaseConstructorOptions, DeepRequired, MessageType } from './Base'; export interface MinesweeperConstructorOptions extends BaseConstructorOptions { embed?: { title?: string; color?: string; description?: string; }; emojis?: { flag?: string; mine?: string; }; mines?: number; timeoutTime?: number; winMessage?: string; loseMessage?: string; } export class Minesweeper extends EventEmitter { options: DeepRequired>; message: MessageType; emojis: { flag: string; mine: string }; gameBoard: (number | boolean)[]; length: number; on( eventName: 'gameOver', listener: (result: { result: 'win' | 'lose'; player: User; blocksTurned: number }) => void ): this; once(...args: Parameters): this; constructor(options: MinesweeperConstructorOptions); sendMessage( content: string | MessagePayload | (IsSlashGame extends true ? InteractionEditReplyOptions : MessageEditOptions) ): Promise; startGame(): Promise; handleButtons(msg: Message): void; gameOver(msg: Message, result: boolean): Promise; plantMines(): void; getMinesAround(x: number, y: number): number; showFirstBlock(): void; foundAllMines(): boolean; getComponents(showMines: boolean, found: boolean): ActionRowBuilder[]; }