import { RefObject } from "react";
import { ChangeInProgress, ChildByLevelMap, DependentMap, MapTaskToCoordinates, TaskToGlobalIndexMap, Task, TaskMapByLevel, DateExtremity, BarMoveAction, GanttDateRounding } from "../../types/public-types";
type UseTaskDragParams = {
    childTasksMap: ChildByLevelMap;
    dependentMap: DependentMap;
    ganttSVGRef: RefObject<SVGSVGElement>;
    mapTaskToCoordinates: MapTaskToCoordinates;
    mapTaskToGlobalIndex: TaskToGlobalIndexMap;
    onDateChange: (action: BarMoveAction, changedTask: Task, originalTask: Task) => void;
    onProgressChange: (task: Task) => void;
    roundDate: (date: Date, action: BarMoveAction, dateExtremity: DateExtremity) => Date;
    dateMoveStep: GanttDateRounding;
    rtl: boolean;
    scrollToLeftStep: () => void;
    scrollToRightStep: () => void;
    scrollX: number;
    setScrollXProgrammatically: (nextScrollX: number) => void;
    svgClientWidth: number | null;
    svgWidth: number;
    tasksMap: TaskMapByLevel;
    timeStep: number;
    xStep: number;
};
export declare const useTaskDrag: ({ childTasksMap, dependentMap, ganttSVGRef, mapTaskToCoordinates, mapTaskToGlobalIndex, onDateChange, onProgressChange, roundDate, dateMoveStep, rtl, scrollToLeftStep, scrollToRightStep, scrollX, setScrollXProgrammatically, svgClientWidth, svgWidth, tasksMap, timeStep, xStep, }: UseTaskDragParams) => [ChangeInProgress, (action: BarMoveAction, task: Task, clientX: number, taskRootNode: Element) => void];
export {};
