import type { MouseEvent } from "react";
import type { CheckTaskIdExistsAtLevel, RowIndexToTaskMap, TaskOrEmpty, TaskToRowIndexMap } from "../../types/public-types";
export declare const useSelection: (taskToRowIndexMap: TaskToRowIndexMap, rowIndexToTaskMap: RowIndexToTaskMap, checkTaskIdExists: CheckTaskIdExistsAtLevel) => {
    checkHasCopyTasks: () => boolean;
    checkHasCutTasks: () => boolean;
    copyIdsMirror: Readonly<Record<string, true>>;
    copySelectedTasks: () => void;
    copyTask: (task: TaskOrEmpty) => void;
    cutIdsMirror: Readonly<Record<string, true>>;
    cutSelectedTasks: () => void;
    cutTask: (task: TaskOrEmpty) => void;
    resetSelectedTasks: () => void;
    selectTask: (taskId: string) => void;
    selectTaskOnMouseDown: (taskId: string, event: MouseEvent) => void;
    selectTasksFromLastSelected: (taskId: string) => void;
    selectedIdsMirror: Readonly<Record<string, true>>;
    toggleTask: (taskId: string) => void;
};
