import { InteractionEditReplyOptions, Message, MessageEditOptions, MessagePayload, User } from 'discord.js'; import { Approve, ApproveConstructorOptions } from './Approve'; import { BaseConstructorOptions, ButtonStyle, DeepRequired, MessageType } from './Base'; export interface RockPaperScisdorsConstructorOptions extends BaseConstructorOptions { opponent: User; embed?: { title?: string; color?: string; description?: string; }; buttons: { rock?: string; paper?: string; scissors?: string; }; emojis?: { rock?: string; paper?: string; scissors?: string; }; timeoutTime?: number; buttonStyle?: ButtonStyle; pickMessage?: string; winMessage?: string; tieMessage?: string; timeoutMessage?: string; requestMessage?: string; rejectMessage?: string; } export class RockPaperScissors extends Approve { options: DeepRequired>; message: MessageType; opponent: User; playerPick: string | null; opponentPick: string | null; on( eventName: 'gameOver', listener: (result: { result: 'win' | 'tie' | 'timeout'; player: User; opponent: User; playerPick: string | null; opponentPick: string | null; }) => void ): this; once(...args: Parameters): this; constructor(options: ApproveConstructorOptions & RockPaperScisdorsConstructorOptions); sendMessage( content: string | MessagePayload | (IsSlashGame extends true ? InteractionEditReplyOptions : MessageEditOptions) ): Promise; startGame(): Promise; RPSGame(msg: Message): Promise; getResult(): 'win' | 'tie' | 'timeout'; player1Won(): boolean; gameOver(msg: Message, result: 'win' | 'tie' | 'timeout'): Promise; }