import { RadiantElement } from '@ecopages/radiant'; import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter'; export type RuiTreegridProps = { label?: string; /** Selected row `data-row-id`. */ value?: string; }; export type RuiTreegridChangeDetail = { rowId: string; columnIndex: number; }; type RuiTreegridBindings = { label: string; }; /** * `` — a hierarchical grid navigated with arrow keys. * * Implements a read-only APG Treegrid: rows may expand/collapse to reveal child * rows, and `role="gridcell"` descendants are focused with roving tabindex. * * Expand/collapse with ArrowRight/ArrowLeft only from the first cell of a row * (APG cell-only focus). Enter or click on that cell toggles expansion; Space selects. * * @summary Read-only treegrid with cell-only roving-tabindex navigation. * * @see https://www.w3.org/WAI/ARIA/apg/patterns/treegrid/ * * @element rui-treegrid * * @attr {string} label - Accessible name for the treegrid. * @attr {string} value - Selected row's `data-row-id`. Default: `''`. * * @fires rui-change - Emitted with `{ rowId, columnIndex }` when a cell activates. * * @cssclass rui-treegrid - Root surface (`role="treegrid"`). * * @remarks * Row/cell/group classes are authored by the `RuiTreegrid` view. The host owns * expand/collapse (`aria-expanded` + `hidden` on `role="rowgroup"`) and * cell-only roving-tabindex focus. */ export declare class RuiTreegrid extends RadiantElement { label: string; value: string; changeEvent: EventEmitter; private getDataRows; private getVisibleRows; private getRowCells; private getVisibleCells; private getParentRow; private syncExpanded; private syncSelection; protected onConnected(): void; onValueUpdated(): void; private setExpanded; private activateCell; private focusCell; onCellClick(event: Event): void; /** * @remarks APG cell-only expansion: ArrowRight/Left and Enter on the first cell of an * expandable row toggle expansion; other cells navigate or activate only. */ onCellKeydown(event: KeyboardEvent): void; } export {};