import { ReactiveController, ReactiveControllerHost, ReactiveElement } from "lit"; interface SelectableElement extends ReactiveElement { disabled: boolean; value: string; } interface SelectionControllerOptions { multiple?: boolean | (() => boolean); required?: boolean | (() => boolean); isSelectable?: (item: T) => boolean; isSelectionControl?: (item: T) => boolean; onChange?: (selection: SelectionController) => void; onControlChange?: () => void; onItemsChange?: () => void; } declare const SelectionContext: { __context__: SelectionController; }; interface SelectionControllerHost extends ReactiveControllerHost, HTMLElement { disabled?: boolean; } declare class SelectionController implements ReactiveController { #private; get controls(): T[]; get items(): T[]; get disabled(): boolean; get enabledItems(): T[]; get multiple(): boolean; get selectedItems(): T[]; get required(): boolean; set value(value: string[]); get value(): string[]; get selectedIndices(): number[]; constructor(host: SelectionControllerHost, options?: SelectionControllerOptions); hostConnected(): void; hostUpdate(): void; hostUpdated(): void; register(item: T): void; unregister(item: T): void; isSelected(item: T): boolean; isSelectable(item: T): boolean; isPartOfSelection(item: unknown): boolean; hasAllSelected(): boolean; hasPartialSelection(): boolean; toggle(item: T, state?: boolean): void; toggleAll(state?: boolean): void; } export { SelectableElement, SelectionContext, SelectionController, SelectionControllerHost, SelectionControllerOptions };