import { Message } from 'eris'; import { ComponentOperation } from '../components/ComponentOperation'; import { AnyComponentContext } from '../components/contexts/AnyComponentContext'; import type { AnyContext } from '../contexts/AnyContext'; import type { PossiblyTranslatable } from '../interfaces/Translatable'; import type { PromptManager } from './PromptManager'; export declare type PromptValidator = (response: string) => Promise<[boolean, T]>; export interface PromptOptions { showCloseError?: boolean; closeErrorFollowup?: boolean; } export declare const TEXT_CLOSE: string[]; export declare class Prompt extends ComponentOperation { protected readonly pm: PromptManager; protected validator: PromptValidator; protected options: PromptOptions; protected hasHandler: boolean; protected selfMessages: Array; protected attempts: number; constructor(ctx: AnyContext, validator?: PromptValidator, options?: PromptOptions); render(): Promise; protected handleInteraction(ctx: AnyComponentContext): Promise; handleResponse(response: string, message?: Message): Promise; protected handleTimeout(): Promise; start(): Promise; close(reason?: PossiblyTranslatable): Promise; cleanup(): Promise; }