UNPKG

@stacksjs/clapp

Version:

A toolkit for building CLI prompts in TypeScript.

40 lines 1.62 kB
import { Writable } from 'node:stream'; import type { Key, ReadLine } from 'node:readline'; import type { PromptEvents, PromptState } from '../types'; import type { Readable } from 'node:stream'; export declare interface PromptOptions<Self extends Prompt> { render: (this: Omit<Self, 'prompt'>) => string | undefined placeholder?: string initialValue?: any validate?: ((value: any) => string | Error | undefined) | undefined input?: Readable output?: Writable debug?: boolean signal?: AbortSignal } export declare class Prompt { protected input: Readable; protected output: Writable; private _abortSignal?: AbortSignal; private rl: ReadLine | undefined; private opts: Omit<PromptOptions<Prompt>, 'render' | 'input' | 'output'>; private _render: (context: Omit<Prompt, 'prompt'>) => string | undefined; private _track: any; private _prevFrame: any; private _subscribers: any; protected _cursor: any; state: PromptState; error: any; value: any; constructor(options: PromptOptions<Prompt>, trackValue?: any); protected unsubscribe(): void; private setSubscriber<T extends keyof PromptEvents>(event: T, opts: { cb: PromptEvents[T], once?: boolean }): void; on<T extends keyof PromptEvents>(event: T, cb: PromptEvents[T]): void; once<T extends keyof PromptEvents>(event: T, cb: PromptEvents[T]): void; emit<T extends keyof PromptEvents>(event: T, data: Parameters<PromptEvents[T]>): void; prompt(): Promise<string | symbol>; private onKeypress(char: string, key?: Key): void; protected close(): void; private restoreCursor(): void; private render(): void; }