import type { ReactiveController } from 'lit';
import type { ComboHost, ComboValue, Item, Keys } from '../types.js';
export declare class SelectionController<T extends object> implements ReactiveController {
    protected host: ComboHost<T>;
    private _selected;
    get data(): T[];
    resetSearchTerm(): void;
    getValue(items: T[], key: Keys<T>): ComboValue<T>[];
    private handleChange;
    private getItemsByValueKey;
    private selectValueKeys;
    private deselectValueKeys;
    private selectObjects;
    private deselectObjects;
    private selectAll;
    private deselectAll;
    select(items?: Item<T>[], emit?: boolean): Promise<void>;
    deselect(items?: Item<T>[], emit?: boolean): Promise<void>;
    get selected(): Set<T>;
    changeSelection(index: number): void;
    selectByIndex(index: number): void;
    constructor(host: ComboHost<T>);
    hostConnected(): void;
    hostDisconnected(): void;
}
