import { NestedSelectOptions, NestedSelectState } from './nested-select.types';
/**
* Headless nested (hierarchical) multiselect. Parents toggle all their children
* and reflect a tri-state (`checked` / `partial` / `unchecked`); leaf options
* toggle individually. Supports search filtering, full keyboard navigation and
* ARIA wiring. State is reflected via `data-selected` / `data-state` and
* `aria-selected` / `aria-checked`; positioning via floating-ui.
*
* Markup:
* ```html
*
* ```
*/
export declare class NestedSelect {
private readonly root;
private readonly trigger;
private readonly panel;
private readonly valueEl;
private readonly searchInput;
private readonly list;
private readonly filterEnabled;
private readonly placeholder;
private readonly placement;
private readonly offset;
private readonly groups;
private readonly options;
private readonly selected;
private open;
private activeIndex;
private stopAutoUpdate;
private cleanups;
constructor(root: HTMLElement, options?: NestedSelectOptions);
private valueOf;
private init;
private get visibleOptions();
private onListClick;
private onSearch;
private onKeydown;
private updateActive;
private filter;
private toggleOption;
private toggleGroup;
private groupState;
private render;
private renderValue;
private emitChange;
private onOutside;
toggle(): void;
openPanel(): void;
close(): void;
/** Replace the current selection. */
setValue(values: string[]): void;
clear(): void;
private position;
get values(): string[];
get isOpen(): boolean;
getState(): NestedSelectState;
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}