import { Vector2 } from "three";
export declare type Drag = {
    startDrag: (e: TouchEvent) => void;
    moveDrag: (e: TouchEvent) => void;
    endDrag: (e: TouchEvent) => void;
};
declare type DragPayload = {
    e: TouchEvent;
    touch: Touch;
    downPoint: Vector2;
    dragPoint: Vector2;
    velocity: Vector2;
};
declare type MovedDragPayload = DragPayload & {
    delta: Vector2;
};
declare type DragCallback = (d: DragPayload) => void;
declare type MovedDragCallback = (d: MovedDragPayload) => void;
export declare const useDrag: (callback: {
    onStart?: DragCallback;
    onMove?: MovedDragCallback;
    onEnd?: MovedDragCallback;
}, domElem?: HTMLElement, deps?: any[]) => Drag;
export {};
