import { ComputedRef, InjectionKey, WritableComputedRef } from 'vue'; export type TreeViewEmitsFunc = (event: string, newValues: unknown) => void; export interface TreeNode { id: number | string; level?: number; checked?: boolean | null; disabled?: boolean; expanded?: boolean; hasChildren?: boolean; matchesFilter?: boolean; indeterminate?: boolean; [key: string]: any; } export type TreeViewPropKey = string | ((node: TreeNode) => string | number); export type TreeViewFilterMethod = (node: TreeNode, filter: string, textBy: TreeViewPropKey) => boolean; export interface TreeView { selectable: boolean; iconBy: TreeViewPropKey; expandNodeBy: 'leaf' | 'node'; colorComputed: ComputedRef; selectedNodeComputed: WritableComputedRef>; getText: (node: TreeNode) => string; getValue: (node: TreeNode) => string; toggleNode: (node: TreeNode) => void; getTrackBy: (node: TreeNode) => string; getNodeProperty: (node: TreeNode, key: TreeViewPropKey) => any; toggleCheckbox: (node: TreeNode, state: boolean | null) => void; handleKeyboardNavigation: (event: KeyboardEvent, node: TreeNode) => void; } export declare const TreeViewKey: InjectionKey;