import { StyleValue } from 'vue';
import { Task } from '../../../models/classes/Task';
import { TaskListColumnConfig } from '../../../models/configs/TaskListConfig';
import { DeclarativeColumnConfig } from '../composables/taskList/useTaskListColumns';
interface TaskRowSlotProps {
    isRowContent: boolean;
    task: Task;
    level: number;
    indent: string;
    isHovered: boolean;
    hoveredTaskId: number | string | null;
    isParent: boolean;
    hasChildren: boolean;
    collapsed: boolean;
    formattedTimer: string;
    timerRunning: boolean;
    timerElapsed: number;
    isOvertime: number | boolean | undefined;
    overdueDays: number;
    overtimeText: string;
    overdueText: string;
    daysText: string;
    progressClass: string;
    type?: string;
}
interface Props {
    task: Task;
    level: number;
    rowIndex?: number;
    isHovered?: boolean;
    hoveredTaskId?: number | string | null;
    onHover?: (taskId: number | string | null) => void;
    columns: TaskListColumnConfig[];
    declarativeColumns?: DeclarativeColumnConfig[];
    renderMode?: 'default' | 'declarative';
    getColumnWidthStyle?: (column: {
        width?: number | string;
    }) => StyleValue;
    disableChildrenRender?: boolean;
    showTaskIcon?: boolean;
    enableDrag?: boolean;
    dragStart?: (task: Task, element: HTMLElement, event: MouseEvent) => void;
    dragOver?: (task: Task, element: HTMLElement, event: MouseEvent) => void;
    taskListRowClassName?: string | ((row: Task, rowIndex: number) => string);
    taskListRowStyle?: StyleValue | ((row: Task, rowIndex: number) => StyleValue);
}
type __VLS_Slots = {
    'custom-task-content'(props: TaskRowSlotProps): unknown;
};
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    delete: (...args: any[]) => void;
    "start-timer": (...args: any[]) => void;
    "stop-timer": (...args: any[]) => void;
    "add-predecessor": (...args: any[]) => void;
    "add-successor": (...args: any[]) => void;
    contextmenu: (...args: any[]) => void;
    dblclick: (...args: any[]) => void;
    toggle: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
    onDelete?: ((...args: any[]) => any) | undefined;
    "onStart-timer"?: ((...args: any[]) => any) | undefined;
    "onStop-timer"?: ((...args: any[]) => any) | undefined;
    "onAdd-predecessor"?: ((...args: any[]) => any) | undefined;
    "onAdd-successor"?: ((...args: any[]) => any) | undefined;
    onContextmenu?: ((...args: any[]) => any) | undefined;
    onDblclick?: ((...args: any[]) => any) | undefined;
    onToggle?: ((...args: any[]) => any) | undefined;
}>, {
    renderMode: "default" | "declarative";
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
