import { Ref } from 'vue'; import { DragAndDropSortingSettings } from '../drag-and-drop/DragAndDropItemInterfaces'; export interface NodeItem { id?: string; isEmpty?: boolean; isExpandedRow?: boolean; children?: NodeItem[]; [key: string]: any; } export interface NodeItemExtended extends NodeItem { children: NodeItemExtended[]; depth: number; isExpanded: boolean; isLoading: boolean; draftOrder: number; parent?: NodeItemExtended; isLastChildInGroup?: boolean; } type Options = { isUseSingleQuery?: boolean; dragAndDropSorting?: DragAndDropSortingSettings; loadMethod(item: NodeItemExtended): Promise; }; export default function useNodes(items: Ref, options: Options): { DEFAULT_DEPTH: number; extendedNodeItems: any; expandedNodeItems: any; expandedIds: Set; expand: (item: NodeItemExtended, forceReload?: boolean) => Promise; toNodeItemExtended: (item: NodeItem, parent?: NodeItemExtended) => NodeItemExtended; }; export {};