import type { TreeDropPosition, TreeNodeData, UseTreeMoveEvent, UseTreeProps } from '@primereact/types/headless/tree'; import * as React from 'react'; export interface UseTreeDragDropDeps { props: UseTreeProps; setDragHoverState: (hover: boolean) => void; getNodes: () => TreeNodeData[]; } /** * Root-level drag/drop handlers. Per-node logic lives in `useTreeNode`. * Commits a drop through a single `onMove` event; `validateMove` may return a * Promise and the move only fires when it resolves truthy. */ export declare function useTreeRootDragDrop({ props, setDragHoverState }: UseTreeDragDropDeps): { allowDrop: (dropNode?: TreeNodeData) => boolean; onDragOver: (event: React.DragEvent) => void; onDragEnter: () => void; onDragLeave: (event: React.DragEvent) => void; onDrop: (event: React.DragEvent) => void; }; /** * Build a `UseTreeMoveEvent` for a node-level drop (with explicit position). * Re-used by `useTreeNode` when committing a drop on a non-root target. */ export declare function buildMoveEvent(originalEvent: React.DragEvent, value: TreeNodeData[], dragNode: TreeNodeData, dropNode: TreeNodeData, dropIndex: number, dropPosition: TreeDropPosition): UseTreeMoveEvent;