import { ReactiveController, ReactiveControllerHost } from 'lit'; import type { ListItem } from '../list-item.js'; export interface ListControllerConfig { isItem: (item: HTMLElement) => item is Item; getPossibleItems: () => HTMLElement[]; blurItem: (item: Item) => void; focusItem: (item: Item) => void; isActivatable?: (item: Item) => boolean; wrapNavigation?: () => boolean; } export declare class ListController implements ReactiveController { host: ReactiveControllerHost; isItem: (item: HTMLElement) => item is Item; private readonly getPossibleItems; private readonly blurItem; private readonly focusItem; private readonly wrapNavigation; constructor(host: ReactiveControllerHost, config: ListControllerConfig); hostConnected(): void; hostDisconnected(): void; get items(): Item[]; get currentIndex(): number; _focusedItem: Item | null; private searchString; private searchTimeout; handleType(char: string): boolean; private getSearchString; clearSearch(): void; _focusItem(item: Item): void; _blurItem(item: Item): void; focusFirstItem(): void; focusLastItem(): void; focusNextItem(): void; focusPreviousItem(): void; handleSlotChange(): void; } export declare function getIndexByLetter(options: string[], filter: string, startIndex?: number): number;