import type { ReactiveController } from 'lit'; import type { ComboHost, ComboValue, Item, Keys } from '../types.js'; import type { DataController } from './data.js'; export declare class SelectionController implements ReactiveController { protected host: ComboHost; protected state: DataController; private _selected; /** Whether the current selection is empty */ get isEmpty(): boolean; /** Returns the current selection as an array */ get asArray(): T[]; /** Whether the current selection has the given item */ has(item?: T): boolean; /** Clears the current selection */ clear(): void; getSelectedValuesByKey(key?: Keys): (T | NonNullable)[]; getValue(items: T[], key: Keys): ComboValue[]; private handleChange; private getItemsByValueKey; private selectValueKeys; private deselectValueKeys; private selectObjects; private deselectObjects; private selectAll; private deselectAll; select(items?: Item | Item[], emit?: boolean): Promise; deselect(items?: Item | Item[], emit?: boolean): Promise; changeSelection(index: number): void; selectByIndex(index: number): void; constructor(host: ComboHost, state: DataController); hostConnected(): void; hostDisconnected(): void; }