import { ComputedRef, Ref } from 'vue'; import { Key } from '../types'; export interface FlattenRow> { /** Original data record */ record: TRecord; /** Nesting depth (0 = root) */ level: number; /** Whether this row is currently expanded */ expanded: boolean; /** Whether this row has child rows */ hasChildren: boolean; /** Parent row key (undefined for root rows) */ parentKey?: Key; } export interface UseTreeDataOptions> { /** Data source accessor */ data: () => TRecord[]; /** Field name for children, defaults to 'children' */ childrenColumnName?: () => string | undefined; /** Indent size in pixels, defaults to 15 */ indentSize?: () => number | undefined; /** Row key resolver */ getRowKey: (record: TRecord, index: number) => Key; /** Default expanded keys (uncontrolled) */ defaultExpandedRowKeys?: () => Key[] | undefined; /** Controlled expanded keys */ expandedRowKeys?: () => Key[] | undefined; /** Whether to expand all rows by default */ defaultExpandAllRows?: () => boolean | undefined; /** Expand/collapse callback */ onExpand?: (expanded: boolean, record: TRecord) => void; /** Expanded keys change callback */ onExpandedRowsChange?: (expandedKeys: Key[]) => void; } export interface UseTreeDataReturn> { /** Flattened visible rows */ flattenData: ComputedRef[]>; /** Whether tree mode is active (data has children) */ isTreeData: ComputedRef; /** Toggle a row's expanded state */ toggleTreeExpand: (record: TRecord, index: number) => void; /** Check if a row is expanded */ isTreeExpanded: (key: Key) => boolean; /** Current expanded keys */ expandedKeys: Ref>; /** Indent size in px */ indentSize: ComputedRef; } export declare function useTreeData = Record>(options: UseTreeDataOptions): UseTreeDataReturn; //# sourceMappingURL=useTreeData.d.ts.map