/** * Interactive List Select Component * * Keyboard-navigable list with selection support. * Supports arrow keys, j/k vim bindings, and number shortcuts. */ export interface ListItem { /** Unique identifier */ id: string; /** Display label */ label: string; /** Optional description */ description?: string; /** Optional path or metadata */ meta?: string; /** Associated data */ data?: T; } export interface ListSelectOptions { /** Maximum width for the list */ maxWidth?: number; /** Number of visible items (for scrolling) */ visibleCount?: number; /** Show number shortcuts (1-9) */ showNumbers?: boolean; /** Offset for number shortcuts (e.g., 1 means start at [2]) */ numberOffset?: number; /** Empty state message */ emptyMessage?: string; /** Show selection cursor (default true). Set false for inactive sections */ showSelection?: boolean; } export interface ListSelectState { /** All items in the list */ items: ListItem[]; /** Currently selected index */ selectedIndex: number; /** Scroll offset for long lists */ scrollOffset: number; } /** * Create initial list state */ export declare function createListState(items: ListItem[]): ListSelectState; /** * Move selection up */ export declare function moveUp(state: ListSelectState): ListSelectState; /** * Move selection down */ export declare function moveDown(state: ListSelectState, visibleCount?: number): ListSelectState; /** * Select item by number (1-9) */ export declare function selectByNumber(state: ListSelectState, num: number): ListSelectState; /** * Render the list as a string */ export declare function renderList(state: ListSelectState, options?: ListSelectOptions): string; //# sourceMappingURL=list-select.d.ts.map