| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | import { EventEmitter } from "events";interface BasePromptOptions {  name: string | (() => string)  type: string | (() => string)  message: string | (() => string) | (() => Promise<string>)  initial?: any  required?: boolean  format?(value: string): string | Promise<string>  result?(value: string): string | Promise<string>  skip?: ((state: object) => boolean | Promise<boolean>) | boolean  validate?(value: string): boolean | Promise<boolean> | string | Promise<string>  onSubmit?(name: string, value: any, prompt: Enquirer.Prompt): boolean | Promise<boolean>  onCancel?(name: string, value: any, prompt: Enquirer.Prompt): boolean | Promise<boolean>  stdin?: NodeJS.ReadStream  stdout?: NodeJS.WriteStream}interface Choice {  name: string  message?: string  value?: string  hint?: string  disabled?: boolean | string}interface ArrayPromptOptions extends BasePromptOptions {  type:    | 'autocomplete'    | 'editable'    | 'form'    | 'multiselect'    | 'select'    | 'survey'    | 'list'    | 'scale'  choices: string[] | Choice[]  maxChoices?: number  muliple?: boolean  initial?: number  delay?: number  separator?: boolean  sort?: boolean  linebreak?: boolean  edgeLength?: number  align?: 'left' | 'right'  scroll?: boolean}interface BooleanPromptOptions extends BasePromptOptions {  type: 'confirm'  initial?: boolean}interface StringPromptOptions extends BasePromptOptions {  type: 'input' | 'invisible' | 'list' | 'password' | 'text'  initial?: string  multiline?: boolean}interface NumberPromptOptions extends BasePromptOptions {  type: 'numeral'  min?: number  max?: number  delay?: number  float?: boolean  round?: boolean  major?: number  minor?: number  initial?: number}interface SnippetPromptOptions extends BasePromptOptions {  type: 'snippet'  newline?: string  template?: string}interface SortPromptOptions extends BasePromptOptions {  type: 'sort'  hint?: string  drag?: boolean  numbered?: boolean}type PromptOptions =  | BasePromptOptions  | ArrayPromptOptions  | BooleanPromptOptions  | StringPromptOptions  | NumberPromptOptions  | SnippetPromptOptions  | SortPromptOptionsdeclare class BasePrompt extends EventEmitter {    constructor(options?: PromptOptions);    render(): void;    run(): Promise<any>;  }declare class Enquirer<T = object> extends EventEmitter {  constructor(options?: object, answers?: T);  /**   * Register a custom prompt type.   *   * @param type   * @param fn `Prompt` class, or a function that returns a `Prompt` class.   */  register(type: string, fn: typeof BasePrompt | (() => typeof BasePrompt)): this;  /**   * Register a custom prompt type.   */  register(type: { [key: string]: typeof BasePrompt | (() => typeof BasePrompt) }): this;  /**   * Prompt function that takes a "question" object or array of question objects,   * and returns an object with responses from the user.   *   * @param questions Options objects for one or more prompts to run.   */  prompt(    questions:      | PromptOptions      | ((this: Enquirer) => PromptOptions)      | (PromptOptions | ((this: Enquirer) => PromptOptions))[]  ): Promise<T>;  /**   * Use an enquirer plugin.   *   * @param plugin Plugin function that takes an instance of Enquirer.   */  use(plugin: (this: this, enquirer: this) => void): this;}declare namespace Enquirer {  function prompt<T = object>(    questions:      | PromptOptions      | ((this: Enquirer) => PromptOptions)      | (PromptOptions | ((this: Enquirer) => PromptOptions))[]  ): Promise<T>;  class Prompt extends BasePrompt {}}export = Enquirer;
 |