/// <reference types="react" />
interface DraggableState {
    isDragging: boolean;
    dragOffset: {
        x: number;
        y: number;
    };
}
interface DraggableOptions {
    enabled?: boolean;
    resizableEnabled?: boolean;
    onDragStart?: (startPosition: {
        x: number;
        y: number;
    }) => void;
    onDrag?: (newPosition: {
        x: number;
        y: number;
    }, delta: {
        x: number;
        y: number;
    }) => void;
    onDragEnd?: (finalPosition: {
        x: number;
        y: number;
    }) => void;
    containerRef?: React.RefObject<HTMLElement>;
    dragHandle?: string;
    getCurrentPosition?: () => {
        left: number;
        top: number;
    };
}
export declare const useDraggable: (options?: DraggableOptions) => {
    state: DraggableState;
    isDragging: boolean;
    dragOffset: {
        x: number;
        y: number;
    };
    hasDragged: boolean;
    justFinishedDrag: boolean;
};
export {};
