import type { Readable, Writable } from "node:stream"; export declare function isTTY(): boolean; export interface CheckboxItem { label: string; description?: string; checked?: boolean; } export interface CheckboxOptions { title?: string; } export interface ChoiceItem { label: string; hint?: string; } export interface Prompter { promptCheckboxList(items: CheckboxItem[], options?: CheckboxOptions): Promise; promptChoice(question: string, choices: ChoiceItem[]): Promise; promptConfirm(question: string, defaultYes?: boolean): Promise; } /** * Returns true if the line consists entirely of ANSI escape sequences * (no real typed content). Used to detect stray arrow-key input. */ export declare function isEscapeSequence(line: string): boolean; /** * Parse a toggle input string into 0-based indices. * * Supported formats (1-based user input): * "3" → [2] * "1-3" → [0, 1, 2] * "1,3,5" → [0, 2, 4] * "1-3,5" → [0, 1, 2, 4] * * Invalid ranges (start > end) or out-of-bounds entries are silently ignored. * Returns a sorted, deduplicated array of 0-based indices. */ export declare function parseToggleInput(input: string, maxIndex: number): number[]; /** * Create a Prompter instance. * * - When called without arguments on a real TTY → interactive raw mode * (arrow keys, space toggle, proper cursor movement) * - When called with custom streams or on non-TTY → text-based fallback * (type numbers, compatible with piped input and tests) */ export declare function createPrompter(input?: Readable, output?: Writable): Prompter;