import type { ComponentType, MouseEvent, RefObject, SyntheticEvent } from "react";
import React from "react";
import { ChildByLevelMap, ColorStyles, Column, DateSetup, DependencyMap, Distances, Icons, MapTaskToNestedIndex, OnResizeColumn, Task, TaskListHeaderProps, TaskListTableProps, TaskOrEmpty } from "../../types/public-types";
import { TaskListHeaderActionsProps } from "./TaskListHeaderActions";
export type TaskListProps = {
    canMoveTasks: boolean;
    canResizeColumns: boolean;
    childTasksMap: ChildByLevelMap;
    colors: ColorStyles;
    columnsProp: readonly Column[];
    cutIdsMirror: Readonly<Record<string, true>>;
    dateSetup: DateSetup;
    dependencyMap: DependencyMap;
    distances: Distances;
    fontFamily: string;
    fontSize: string;
    fullRowHeight: number;
    ganttFullHeight: number;
    getTaskCurrentState: (task: Task) => Task;
    handleAddTask: (task: Task) => void;
    handleDeleteTasks: (task: TaskOrEmpty[]) => void;
    handleEditTask: (task: TaskOrEmpty) => void;
    handleMoveTaskBefore: (target: TaskOrEmpty, taskForMove: TaskOrEmpty) => void;
    handleMoveTaskAfter: (target: TaskOrEmpty, taskForMove: TaskOrEmpty) => void;
    handleMoveTasksInside: (parent: Task, childs: readonly TaskOrEmpty[]) => void;
    handleOpenContextMenu: (task: TaskOrEmpty, clientX: number, clientY: number) => void;
    icons?: Partial<Icons>;
    isShowTaskNumbers: boolean;
    mapTaskToNestedIndex: MapTaskToNestedIndex;
    onClick?: (task: TaskOrEmpty) => void;
    onExpanderClick: (task: Task) => void;
    scrollToTask: (task: Task) => void;
    selectTaskOnMouseDown: (taskId: string, event: MouseEvent) => void;
    selectedIdsMirror: Readonly<Record<string, true>>;
    taskListContentRef: RefObject<HTMLDivElement>;
    taskListRef: RefObject<HTMLDivElement>;
    tasks: readonly TaskOrEmpty[];
    TaskListHeader: ComponentType<TaskListHeaderProps>;
    TaskListTable: ComponentType<TaskListTableProps>;
    onResizeColumn?: OnResizeColumn;
    onScrollTableListContentVertically: (event: SyntheticEvent<HTMLDivElement>) => void;
} & TaskListHeaderActionsProps;
export declare const TaskList: React.NamedExoticComponent<{
    canMoveTasks: boolean;
    canResizeColumns: boolean;
    childTasksMap: ChildByLevelMap;
    colors: ColorStyles;
    columnsProp: readonly Column[];
    cutIdsMirror: Readonly<Record<string, true>>;
    dateSetup: DateSetup;
    dependencyMap: DependencyMap;
    distances: Distances;
    fontFamily: string;
    fontSize: string;
    fullRowHeight: number;
    ganttFullHeight: number;
    getTaskCurrentState: (task: Task) => Task;
    handleAddTask: (task: Task) => void;
    handleDeleteTasks: (task: TaskOrEmpty[]) => void;
    handleEditTask: (task: TaskOrEmpty) => void;
    handleMoveTaskBefore: (target: TaskOrEmpty, taskForMove: TaskOrEmpty) => void;
    handleMoveTaskAfter: (target: TaskOrEmpty, taskForMove: TaskOrEmpty) => void;
    handleMoveTasksInside: (parent: Task, childs: readonly TaskOrEmpty[]) => void;
    handleOpenContextMenu: (task: TaskOrEmpty, clientX: number, clientY: number) => void;
    icons?: Partial<Icons>;
    isShowTaskNumbers: boolean;
    mapTaskToNestedIndex: MapTaskToNestedIndex;
    onClick?: (task: TaskOrEmpty) => void;
    onExpanderClick: (task: Task) => void;
    scrollToTask: (task: Task) => void;
    selectTaskOnMouseDown: (taskId: string, event: MouseEvent) => void;
    selectedIdsMirror: Readonly<Record<string, true>>;
    taskListContentRef: RefObject<HTMLDivElement>;
    taskListRef: RefObject<HTMLDivElement>;
    tasks: readonly TaskOrEmpty[];
    TaskListHeader: ComponentType<TaskListHeaderProps>;
    TaskListTable: ComponentType<TaskListTableProps>;
    onResizeColumn?: OnResizeColumn;
    onScrollTableListContentVertically: (event: SyntheticEvent<HTMLDivElement>) => void;
} & TaskListHeaderActionsProps>;
