import { Position } from '../types/core'; /** * @file Generic hook for handling pointer drag operations with threshold detection * Optimized with useEffectEvent for stable callback references */ import * as React from "react"; export type PointerDragOptions = { onStart?: (event: PointerEvent, data: T) => void; onMove?: (event: PointerEvent, delta: Position, data: T) => void; onEnd?: (event: PointerEvent, delta: Position, data: T) => void; scale?: number; threshold?: number; disabled?: boolean; }; export type PointerDragState = { isDragging: boolean; dragStarted: boolean; delta: Position; }; /** * Generic hook for handling pointer drag operations * Consolidates drag logic used across nodes, connections, and resize operations * Uses useEffectEvent for stable callback references to avoid re-registering listeners */ export declare function usePointerDrag(options: PointerDragOptions): { startDrag: (event: React.PointerEvent | PointerEvent, data: T) => void; dragState: PointerDragState; };