import { type Lang, type Key } from './i18n.js'; export declare const BACK: unique symbol; export type BackSentinel = typeof BACK; export declare class UserAbortError extends Error { constructor(); } export interface MenuChoice { /** Value returned when this choice is picked. */ value: T; /** Display name (already localized). */ name: string; /** Optional dim-text description shown to the right. */ description?: string; /** Optional separator before this item (renders a divider). */ separatorBefore?: boolean; /** When true, item is shown but cannot be selected. */ disabled?: boolean | string; } /** * Single-choice menu with arrow keys + Enter. If `back` is provided * (a key from i18n.ts pointing at a `← Back`-style string), an extra * back entry is appended; picking it returns the BACK sentinel. */ export declare function menu(opts: { lang: Lang; message: string; choices: MenuChoice[]; back?: Key; default?: T; }): Promise; /** * Multi-select with Space to toggle. Always returns an array (possibly * empty). No back option — typical usage is "pick which IMs to enable"; * cancel is via Ctrl-C → UserAbortError. */ export declare function multiSelect(opts: { lang: Lang; message: string; choices: Array<{ value: T; name: string; description?: string; checked?: boolean; }>; required?: boolean; }): Promise; /** Free-text input with optional default + validator. */ export declare function inputText(opts: { message: string; default?: string; validate?: (v: string) => true | string; required?: boolean; }): Promise; /** Hidden input for secrets (no echo). */ export declare function inputSecret(opts: { message: string; required?: boolean; validate?: (v: string) => true | string; }): Promise; /** Yes/no with arrow-key navigation. */ export declare function yesNo(opts: { message: string; default?: boolean; }): Promise; //# sourceMappingURL=prompts.d.ts.map