import { default as React } from 'react';
import { ColumnData } from '../../types';
/** Item describing which task is being dragged. */
interface DragInfo {
    taskId: string;
    columnIndex: number;
    taskIndex: number;
}
/**
 * GitHub-like drag and drop hook for tasks.
 * Simplifies the drag model - tasks are directly draggable without pre-selection.
 */
export declare function useTaskDragAndDrop(): {
    dragItem: DragInfo | null;
    isDragging: boolean;
    dragOverInfo: {
        columnIndex: number;
        taskIndex: number;
    } | null;
    handleTaskDragStart: (e: React.DragEvent, taskId: string, columnIndex: number, taskIndex: number) => void;
    handleTaskDragOver: (e: React.DragEvent, columnIndex: number, taskIndex: number) => void;
    handleTaskDragEnter: (e: React.DragEvent, columnIndex: number, taskIndex: number) => void;
    handleTaskDragLeave: (e: React.DragEvent) => void;
    handleTaskDrop: (e: React.DragEvent, dropColumnIndex: number, dropTaskIndex: number, allColumns: ColumnData[], setAllColumns: React.Dispatch<React.SetStateAction<ColumnData[]>>) => void;
    handleColumnDragOver: (e: React.DragEvent, columnIndex: number, allColumns: ColumnData[]) => void;
    handleColumnDrop: (e: React.DragEvent, columnIndex: number, allColumns: ColumnData[], setAllColumns: React.Dispatch<React.SetStateAction<ColumnData[]>>) => void;
    resetDragState: () => void;
};
export {};
//# sourceMappingURL=tasks.d.ts.map