import { TreeOptions } from './tree.types';
interface TreeNode {
el: HTMLElement;
value: string;
checkbox: HTMLInputElement | null;
toggle: HTMLElement | null;
group: HTMLElement | null;
parent: TreeNode | null;
children: TreeNode[];
}
/**
* Headless tree / nested list. Handles expand-collapse, tri-state checkbox
* selection with parent/child propagation, ARIA wiring and keyboard navigation.
*
* Markup:
* ```html
*
* ```
*/
export declare class Tree {
private readonly root;
private readonly treeSelection;
private readonly expandAll;
private nodes;
private cleanups;
constructor(root: HTMLElement, options?: TreeOptions);
private init;
private build;
private get flat();
private setupNode;
private setExpanded;
toggleNode(node: TreeNode): void;
private onCheckboxChange;
private propagateDown;
private recomputeAncestors;
private recomputeNode;
private recomputeAll;
private visibleNodes;
private nodeFromActive;
private focusNode;
private onKeydown;
private emit;
get value(): string[];
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}
export {};