import inquirer = require('inquirer');
import { IUserInputProvider, EntryValue, choice, FileSelectionOptions, FolderSelectionOptions, IEntryValidator } from "../ops";
/** Uses cli-ux and inquirer libraries to retrieve values from the user.
 * Requires a TTY console.
 * @see https://www.npmjs.com/package/inquirer
 */
export declare class BuiltInCliUserInput implements IUserInputProvider {
    constructor();
    userMessage(message: string): void;
    prompt<T extends EntryValue>(id: string, prompt: string, required?: boolean, defaultValue?: T | undefined, validator?: IEntryValidator<T>): Promise<T | undefined>;
    promptPassword(id: string, prompt: string, defaultValue?: string, validator?: IEntryValidator<string>): Promise<string>;
    promptConfirm(id: string, prompt: string, defaultValue?: boolean): Promise<boolean>;
    promptSelect<T extends EntryValue>(id: string, prompt: string, choices: choice<T>[], multiSelect?: boolean | undefined, loop?: boolean | undefined, validator?: (input: T, answers?: inquirer.Answers | undefined) => boolean | string): Promise<T | undefined>;
    promptSelectFile(id: string, prompt: string, fileOptions: FileSelectionOptions): Promise<string>;
    promptSelectFolder(id: string, prompt: string, folderOptions: FolderSelectionOptions): Promise<string>;
    openUrl(url: string): Promise<void>;
    startSpinner(userMessage: string): void;
    stopSpinner(userMessage: string): void;
}
