import * as React from 'react'; import { RenderDragPreviewParameters } from "../../models/index.js"; /** * Returns the drag preview to render when the dragged event is not over a valid drop target. */ export declare function useDragPreview(parameters: useDragPreview.Parameters): useDragPreview.ReturnValue; export declare namespace useDragPreview { type Parameters = RenderDragPreviewParameters & { showPreviewOnDragStart: boolean; /** * Returns the drag preview element. */ renderDragPreview: (parameters: RenderDragPreviewParameters) => React.ReactNode; }; interface ReturnValue { element: React.ReactNode; actions: { onDragStart: (location: DragLocationHistory) => void; onDrag: (location: DragLocationHistory) => void; onDrop: () => void; }; state: useDragPreview.State; } interface State { isDragging: boolean; dragPosition: { clientX: number; clientY: number; } | null; } /** * Copy pasted from Pragmatic Dnd internal types */ interface DragLocationHistory { current: { input: { clientX: number; clientY: number; }; dropTargets: { data: Record; }[]; }; } }