import { Container, type Focusable, getKeybindings, Input, type SelectItem, SelectList, type SelectListLayoutOptions, Text } from "@caupulican/pi-tui"; export declare const COMPACT_SELECTOR_LIST_LAYOUT: SelectListLayoutOptions; export interface SelectorVisibleRange { startIndex: number; endIndex: number; } type SelectorKeybindings = ReturnType; export declare function getCenteredVisibleRange(selectedIndex: number, itemCount: number, maxVisible: number): SelectorVisibleRange; export declare function advanceSelectorIndex(selectedIndex: number, itemCount: number, direction: -1 | 1, mode: "wrap" | "clamp"): number; export declare function clampSelectorIndex(selectedIndex: number, itemCount: number): number; export declare function filterSelectorItems(items: T[], query: string, getText: (item: T) => string): T[]; export declare function getSelectorScrollText(selectedIndex: number, itemCount: number, range: SelectorVisibleRange): string | undefined; export declare function clearSelectorSearchOrCancel(input: Input, onClear: () => void, onCancel: () => void): void; export declare class SelectorListState { items: T[]; selectedIndex: number; private readonly onNavigation; constructor(onNavigation?: () => void); refresh(items: T[], query: string, getText: (item: T) => string): void; navigateInput(data: string, mode: "wrap" | "clamp", keybindings?: SelectorKeybindings): boolean | undefined; handleNavigation(data: string, mode: "wrap" | "clamp", keybindings?: SelectorKeybindings): boolean; visitVisible(maxVisible: number, visit: (item: T, index: number, selected: boolean) => void): SelectorVisibleRange; getScrollText(range: SelectorVisibleRange): string | undefined; appendScrollInfo(container: Container, range: SelectorVisibleRange): void; } export declare function formatDirtySelectorFooter(parts: string[], dirty: boolean): string; export declare class SearchableListSurface extends Container implements Focusable { readonly searchInput: Input; readonly listContainer: Container; private _focused; get focused(): boolean; set focused(value: boolean); static mount(parent: Container, initialValue?: string): SearchableListSurface; constructor(initialValue?: string); } export interface BorderedSelectListOptions { items: SelectItem[]; maxVisible: number; currentValue?: string; initialSelectedIndex?: number; layout?: SelectListLayoutOptions; onSelect: (value: string) => void; onCancel: () => void; onSelectionChange?: (value: string) => void; } export declare class BorderedSelectListComponent extends Container { private readonly selectList; constructor(options: BorderedSelectListOptions); handleInput(data: string): void; getSelectList(): SelectList; } export declare class SelectorHeading extends Container { constructor(title: string, description: string); } export declare class SelectorNavigationFooter extends Container { constructor(confirmLabel: string); } export declare class SelectorStatusFooter extends Container { readonly footerText: Text; constructor(initialText: string, descriptionText?: Text); } export {}; //# sourceMappingURL=selector-list.d.ts.map