import { FluxColor, FluxIconName } from '@flux-ui/types'; import { ComputedRef, Ref } from 'vue'; export type TreeBaseOption = { readonly id: string | number; readonly label: string; readonly icon?: FluxIconName; readonly color?: FluxColor | string; readonly disabled?: boolean; readonly children?: TreeBaseOption[]; }; export type TreeFlatNode = TOption & { readonly depth: number; readonly isLast: boolean; readonly hasChildren: boolean; readonly lineGuides: boolean[]; readonly ancestorIds: (string | number)[]; }; export declare const FLUX_COLORS: FluxColor[]; export declare const INITIAL_HIGHLIGHTED_INDEX = -1; export declare function flattenVisible(nodes: TOption[], depth: number, expanded: Set, parentGuides?: boolean[], ancestorIds?: (string | number)[]): TreeFlatNode[]; export declare function flattenAll(nodes: TOption[], depth?: number, ancestorIds?: (string | number)[]): TreeFlatNode[]; export declare function collectExpandedIds(nodes: TOption[], depth: number, currentDepth?: number): (string | number)[]; export declare function flattenSearch(nodes: TOption[], query: string, depth?: number, parentGuides?: boolean[], ancestorIds?: (string | number)[]): TreeFlatNode[]; export declare function useTreeView(params: { readonly expandedIds: Ref>; readonly nodeElementRefs: Readonly>; readonly visibleNodes: ComputedRef; }): { readonly highlightedIndex: Ref; readonly highlightedId: ComputedRef; toggleExpand: (nodeId: string | number) => void; onExpandClick: (node: TNode, evt: MouseEvent) => void; onKeyNavigate: (evt: KeyboardEvent, onActivate: (node: TNode) => void) => boolean; };