/// <reference types="inquirer" />
/// <reference types="node" />
import inquirer from "inquirer";
import { Answers, Question } from "inquirer";
import Choice from "inquirer/lib/objects/choice";
import Choices from "inquirer/lib/objects/choices";
import Base from "inquirer/lib/prompts/base";
import { Interface as ReadLineInterface } from "readline";
type CheckboxPlusPromptOptions<T extends Answers = any> = Question<T> & {
    highlight?: boolean;
    searchable?: boolean;
    defaults?: string[];
    pageSize: number;
    source: (answersSoFar: Answers, input: string | undefined) => Promise<any[]>;
};
declare module "inquirer" {
    interface QuestionMap<T> {
        checkboxPlus: Omit<CheckboxPlusPromptOptions<T>, "type"> & {
            type: "checkbox-plus";
        };
    }
}
declare class CheckboxPlusPrompt<TAnswers extends Answers = Answers> extends Base<CheckboxPlusPromptOptions & {
    states: any;
}> {
    private pointer;
    private paginator;
    private firstSourceLoading;
    private choices;
    private checkedChoices;
    private searching;
    private selection;
    private lastQuery?;
    private default?;
    private value;
    private lastSourcePromise?;
    private done?;
    constructor(questions: Question & CheckboxPlusPromptOptions & {
        states: any;
    }, rl: ReadLineInterface, answers: Answers);
    _run(callback: CheckboxPlusPrompt<TAnswers>["done"]): this;
    getValue(choice: Choice<TAnswers> | inquirer.Separator): any;
    executeSource(): Promise<any[]> | Promise<undefined>;
    render(error?: Error): void;
    onEnd(state: inquirer.prompts.SuccessfulPromptStateData | inquirer.prompts.FailedPromptStateData): void;
    onError(state: any): void;
    getCurrentValue(): any[];
    onUpKey(): void;
    onDownKey(): void;
    onNumberKey(input: any): void;
    onSpaceKey(): void;
    onAllKey(): void;
    onInverseKey(): void;
    onKeypress(): void;
    toggleChoice(choice: Choice<Answers> | inquirer.Separator, nextChecked?: boolean): void;
    static getCheckboxFigure(checked?: boolean): string;
    renderChoices(choices: Choices<TAnswers>, pointer: number): string;
}
type CheckboxPlusPromptItem<T extends Answers = any> = Choice<T> | string;
export { CheckboxPlusPrompt };
export type { CheckboxPlusPromptItem, CheckboxPlusPromptOptions };
//# sourceMappingURL=index.d.ts.map