import { PromptMessages, PromptName } from "@commitlint/types";
import { Answers, ChoiceCollection, DistinctQuestion } from "inquirer";
import { CaseFn } from "./utils/case-fn.js";
import { FullStopFn } from "./utils/full-stop-fn.js";
export type QuestionConfig = {
    title: string;
    messages: PromptMessages;
    maxLength?: number;
    minLength?: number;
    defaultValue?: string;
    when?: DistinctQuestion["when"];
    skip?: boolean;
    enumList?: ChoiceCollection<{
        name: string;
        value: string;
    }> | null;
    multipleValueDelimiters?: RegExp;
    multipleSelectDefaultDelimiter?: string;
    fullStopFn?: FullStopFn;
    caseFn?: CaseFn;
};
export default class Question {
    private _question;
    private messages;
    private skip;
    private _maxLength;
    private _minLength;
    private title;
    private caseFn;
    private fullStopFn;
    private multipleValueDelimiters?;
    private multipleSelectDefaultDelimiter?;
    constructor(name: PromptName, { title, enumList, messages, defaultValue, when, skip, fullStopFn, caseFn, maxLength, minLength, multipleValueDelimiters, multipleSelectDefaultDelimiter, }: QuestionConfig);
    getMessage(key: string): string;
    get question(): Readonly<DistinctQuestion>;
    get maxLength(): number;
    set maxLength(maxLength: number);
    get minLength(): number;
    set minLength(minLength: number);
    protected beforeQuestionStart(_answers: Answers): void;
    protected validate(input: string): boolean | string;
    protected filter(input: string | string[]): string;
    protected transformer(input: string, _answers: Answers): string;
    protected decorateMessage(_answers: Answers): string;
}
//# sourceMappingURL=Question.d.ts.map