import { RadiantElement } from '@ecopages/radiant'; import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter'; export type RuiTreeProps = { label?: string; /** Selected tree item `data-value` / id. */ value?: string; }; export type RuiTreeChangeDetail = { value: string; }; type RuiTreeBindings = { label: string; }; /** * `` — a hierarchical list of tree items. * * Implements a single-select APG Tree View with Arrow key navigation, * Home/End, parent navigation on ArrowLeft, and Enter/Space to select. * Expand/collapse is handled with ArrowRight/ArrowLeft (and `*` for siblings); * click or Enter on a parent also toggles expansion. * * @summary Single-select tree with roving-tabindex keyboard navigation. * * @see https://www.w3.org/WAI/ARIA/apg/patterns/treeview/ * * @element rui-tree * * @attr {string} label - Accessible name for the tree. * @attr {string} value - Selected item's `data-value` / id. Default: `''`. * * @fires rui-change - Emitted with `{ value }` when a tree item is selected. * * @cssclass rui-tree - Root list (`role="tree"`). * * @remarks * Item-level classes (`rui-tree__item`, `rui-tree__node`) are authored by the * `RuiTree` view. Expand/collapse mutates `aria-expanded` and `hidden` on the * authored `role="group"` containers. */ export declare class RuiTree extends RadiantElement { label: string; value: string; changeEvent: EventEmitter; private getVisibleItems; private getParentItem; /** Same-level treeitems as `item` (for `*` expand-siblings). */ private getSiblingItems; private syncSelection; private syncExpanded; protected onConnected(): void; onValueUpdated(): void; private select; private setExpanded; onClick(event: Event): void; onKeydown(event: KeyboardEvent): void; } export {};