import type { TreeDragDropPayload } from './move-tree-node/move-tree-node'; import type { TreeDragState, TreeNodeData } from './Tree'; export type TreeAllowDrop = (payload: TreeDragDropPayload) => boolean; interface UseTreeNodeDragDropInput { nodeValue: string; hasChildren: boolean; data: TreeNodeData[]; onDragDrop: ((payload: TreeDragDropPayload) => void) | undefined; dragStateRef: React.RefObject; allowDrop: TreeAllowDrop | undefined; withDragHandle: boolean | undefined; } export interface TreeDragHandleProps { onMouseDown: (event: React.MouseEvent) => void; } export declare function useTreeNodeDragDrop({ nodeValue, hasChildren, data, onDragDrop, dragStateRef, allowDrop, withDragHandle, }: UseTreeNodeDragDropInput): { readonly elementProps: {}; readonly dragHandleProps: undefined; } | { elementProps: { draggable: boolean; onDragStart: (event: React.DragEvent) => void; onDragOver: (event: React.DragEvent) => void; onDragLeave: (event: React.DragEvent) => void; onDrop: (event: React.DragEvent) => void; onDragEnd: (event: React.DragEvent) => void; }; dragHandleProps: TreeDragHandleProps | undefined; }; export {};