/**
 * @internal
 */
export interface ItemWithId {
    id: string;
    attributes?: Map<string, PropertyValue>;
}
export interface PropertyValue {
    value?: string | Date | number;
    displayValue?: string;
}
/**
 * @internal
 */
export interface ILfSelectable {
    value: ItemWithId;
    isSelectable: boolean;
    isSelected: boolean;
}
/**
 * @internal
 */
export declare class Selectable {
    multiSelectable: boolean;
    get selectedItems(): ILfSelectable[];
    callback?: () => Promise<ILfSelectable[] | undefined>;
    private lastSelectedIndex;
    private selectedItemsIndices;
    allSelected: Map<string, ILfSelectable>;
    clearSelectedValues(list: ILfSelectable[], clearCached?: boolean): void;
    setSelectedNodesAsync(selected: Map<string, ILfSelectable>, list: ILfSelectable[], maxFetchIterations: number, lastCheckedIdx?: number): Promise<void>;
    onItemClicked(event: MouseEvent | KeyboardEvent, item: ILfSelectable, list: ILfSelectable[], allowMultiple?: boolean, onlyAdd?: boolean): void;
    /** @internal */
    private unselectItem;
    /** @internal */
    private clearAllSelectedItems;
    /** @internal */
    private addSelectedItem;
}
