import React from "react";
import type { MouseEvent } from "react";
import { GanttRelationEvent } from "../../types/gantt-task-actions";
import { ChildOutOfParentWarnings, FixPosition, Task, ColorStyles, TaskOrEmpty, Distances, RelationKind, BarMoveAction, DateExtremity } from "../../types/public-types";
export type TaskItemProps = {
    children?: React.ReactNode;
    getTaskGlobalIndexByRef: (task: Task) => number;
    hasChildren: boolean;
    hasDependencyWarning: boolean;
    progressWidth: number;
    progressX: number;
    selectTaskOnMouseDown: (taskId: string, event: MouseEvent) => void;
    task: Task;
    taskYOffset: number;
    width: number;
    x1: number;
    x2: number;
    childOutOfParentWarnings: ChildOutOfParentWarnings | null;
    distances: Distances;
    taskHeight: number;
    taskHalfHeight: number;
    isProgressChangeable: boolean;
    isDateChangeable: boolean;
    authorizedRelations: RelationKind[];
    isRelationChangeable: boolean;
    ganttRelationEvent: GanttRelationEvent;
    isDelete: boolean;
    isSelected: boolean;
    isCritical: boolean;
    rtl: boolean;
    onDoubleClick?: (task: Task) => void;
    onClick?: (task: Task, event: React.MouseEvent<SVGElement>) => void;
    setTooltipTask: (task: Task | null, element: Element | null) => void;
    onEventStart: (action: BarMoveAction, selectedTask: Task, clientX: number, taskRootNode: Element) => any;
    onRelationStart: (target: DateExtremity, selectedTask: Task) => void;
    fixStartPosition?: FixPosition;
    fixEndPosition?: FixPosition;
    handleDeleteTasks: (task: TaskOrEmpty[]) => void;
    colorStyles: ColorStyles;
};
export declare const TaskItem: React.NamedExoticComponent<TaskItemProps>;
