import { Ref } from 'vue';
import { Task } from '../models/classes/Task';
export interface CalendarTaskDragDelta {
    deltaX: number;
    deltaY: number;
}
export interface UseCalendarTaskDragOptions {
    /** 禁用后不响应任何拖拽/点击事件（对应 disabled prop） */
    disabled?: Ref<boolean>;
    /** 拖拽过程中持续触发，仅用于本地预览渲染 */
    onDragMove?: (task: Task, delta: CalendarTaskDragDelta, event: MouseEvent) => void;
    /** 拖拽松开时触发一次，用于提交最终的任务移动结果 */
    onDragEnd?: (task: Task, delta: CalendarTaskDragDelta, event: MouseEvent) => void;
    /** 未产生有效位移（视为点击）时触发 */
    onClick?: (task: Task, event: MouseEvent) => void;
}
export declare function useCalendarTaskDrag(options: UseCalendarTaskDragOptions): {
    isDragging: Ref<boolean, boolean>;
    draggingTaskId: Ref<number | null, number | null>;
    dragDelta: Ref<{
        deltaX: number;
        deltaY: number;
    }, CalendarTaskDragDelta | {
        deltaX: number;
        deltaY: number;
    }>;
    handleMouseDown: (task: Task, event: MouseEvent) => void;
};
