/** * Interactive cursor-based selection menus. * * Provides arrow-key navigation for option selection in the terminal. * Pure functions live in select-menu.ts (rendering, input) and * select-viewport.ts (viewport scrolling). */ import { type SelectOptionItem } from './select-menu.js'; export { type SelectOptionItem, type KeyInputResult, renderMenu, countRenderedLines, handleKeyInput, firstSelectableIndex, } from './select-menu.js'; export interface InteractiveSelectCallbacks { /** * Custom key handler called before default key handling. * Return updated options to handle the key and re-render. * Return null to delegate to default handler. */ onKeyPress?: (key: string, value: T, index: number) => SelectOptionItem[] | null; /** Custom label for cancel option (default: "Cancel") */ cancelLabel?: string; instructions?: string; showConfirmation?: boolean; } /** * Prompt user to select from a list of options using cursor navigation. * @returns Selected option or null if cancelled */ export declare function selectOption(message: string, options: SelectOptionItem[], callbacks?: InteractiveSelectCallbacks): Promise; /** * Prompt user to select from a list of options with a default value. * @returns Selected option value, or null if cancelled (ESC pressed) */ export declare function selectOptionWithDefault(message: string, options: SelectOptionItem[], defaultValue: T): Promise; //# sourceMappingURL=select.d.ts.map