import React from 'react';
export interface DragTarget {
    x: number;
    y: number;
    draggable?: boolean;
}
export interface PointerDragOptions {
    origin: {
        x: number;
        y: number;
    };
    scale: number;
    snap?: number | ((x: number, y: number) => [number, number]);
    isLocked?: boolean;
    hitRadius?: number;
    onDragStart?: () => void;
    onDragEnd?: () => void;
}
export declare function usePointerDrag<T extends DragTarget>(canvasRef: React.RefObject<HTMLCanvasElement | null>, items: T[], onChange: (updated: T[]) => void, { origin, scale, snap, isLocked, hitRadius, onDragStart, onDragEnd, }: PointerDragOptions): void;
