import type { InjectionKey, Ref, SetupContext } from 'vue'; import type { AllowDragFunction, AllowDropFunction } from '../tree.type'; import type TreeStore from './tree-store'; import type Node from './node'; interface TreeNode { node: Node; $el?: HTMLElement; } interface DragOptions { event: DragEvent; treeNode: TreeNode; } interface Props { props: { allowDrag?: AllowDragFunction; allowDrop?: AllowDropFunction; }; ctx: SetupContext; el$: Ref; dropIndicator$: Ref; store: Ref; } export interface DragEvents { treeNodeDragStart: (options: DragOptions) => void; treeNodeDragOver: (options: DragOptions) => void; treeNodeDragEnd: (event: DragEvent) => void; } export declare const dragEventsKey: InjectionKey; export declare function useDragNodeHandler({ props, ctx, el$, dropIndicator$, store, }: Props): { dragState: any; }; export {};