export declare const ALPHANUMERIC_REGEX: import("magic-regexp").MagicRegExp<"/(?:[a-zA-Z]|\\d)/", never, any[], never>; export type EnabledItem = { ref: { value: HTMLElement | undefined; }; index: number; }; export type FocusTargetResult = { type: "item"; ref: { value: HTMLElement | undefined; }; index: number; } | { type: "first"; ref: { value: HTMLElement | undefined; }; index: number; } | { type: "none"; }; export declare function getInitialHighlightIndex(key: "ArrowUp" | "ArrowDown" | "Enter" | " ", navigation: { getFirstEnabledIndex: () => number | null; getLastEnabledIndex: () => number | null; }, highlightedIndex: number | null, currentIndex: number | null): number | null; export declare class SelectNavigation { private itemRefs; private disabledItems; private itemValues; private itemLabelText; private enabledIndices; private valueToIndex; private labelToIndex; private lowerCaseValues; private lowerCaseLabels; constructor(itemRefs: Array<{ value: HTMLElement | undefined; }>, disabledItems: boolean[], itemValues: string[], itemLabelText: string[]); private isItemEnabled; private getItemRef; private getEnabledIndices; private getValueToIndexMap; private getLabelToIndexMap; private getLowerCaseValues; private getLowerCaseLabels; private findIndexByValueOrLabel; buildEnabledItems(): EnabledItem[]; determineFocusTarget(options: { highlightedIndex: number | null; currentIndex: number | null; selectedValue: string | null; }): FocusTargetResult; determineHighlightIndex(options: { currentIndex: number | null; selectedValue: string | null; }): number | null; getSelectedLabels(options: { selectedValues: string | string[]; isMultiple: boolean; }): string[]; getFirstEnabledIndex(): number | null; getLastEnabledIndex(): number | null; findMatchingItem(searchStr: string, startIndex?: number | null): EnabledItem | undefined; getItemValue(index: number): string; } interface TypeaheadConfig { timeoutMs: number; } export declare class SelectTypeahead { private config; private searchStr; private timeout; constructor(config?: Partial); addKey(key: string): { search: string; }; clear(): void; private clearTimeout; private startTimeout; get currentSearch(): string; } export {};