export type WizardSelectOption<T = string> = {
    value: T;
    label: string;
    hint?: string;
    disabled?: boolean;
};
export type WizardSelectParams<T = string> = {
    message: string;
    options: Array<WizardSelectOption<T>>;
    initialValue?: T;
};
export type WizardMultiSelectParams<T = string> = {
    message: string;
    options: Array<WizardSelectOption<T>>;
    initialValues?: T[];
    searchable?: boolean;
};
export type WizardTextParams = {
    message: string;
    initialValue?: string;
    placeholder?: string;
    validate?: (value: string) => string | undefined;
};
export type WizardConfirmParams = {
    message: string;
    initialValue?: boolean;
};
export type WizardProgress = {
    update: (message: string) => void;
    stop: (message?: string) => void;
};
export type WizardPrompter = {
    intro: (title: string) => Promise<void>;
    outro: (message: string) => Promise<void>;
    note: (message: string, title?: string) => Promise<void>;
    select: <T>(params: WizardSelectParams<T>) => Promise<T>;
    multiselect: <T>(params: WizardMultiSelectParams<T>) => Promise<T[]>;
    text: (params: WizardTextParams) => Promise<string>;
    secret?: (params: WizardTextParams) => Promise<string>;
    confirm: (params: WizardConfirmParams) => Promise<boolean>;
    progress: (label: string) => WizardProgress;
};
export declare class WizardCancelledError extends Error {
    constructor(message?: string);
}
