import { Ref, ComputedRef } from 'vue';
import { Task } from '../../../../models/classes/Task';
/**
 * TaskList 布局计算逻辑
 * 包含虚拟滚动、任务扁平化、可见区域计算等
 */
export declare const ROW_HEIGHT = 51;
export declare const VERTICAL_BUFFER = 5;
export interface TaskWithLevel {
    task: Task;
    level: number;
}
export interface TaskWithLevelAndIndex extends TaskWithLevel {
    rowIndex: number;
}
export interface VisibleTaskRange {
    startIndex: number;
    endIndex: number;
}
export declare function useTaskListLayout(tasks: Ref<Task[]>): {
    taskListScrollTop: Ref<number, number>;
    taskListBodyHeight: Ref<number, number>;
    flattenedTasks: ComputedRef<TaskWithLevel[]>;
    visibleTaskRange: ComputedRef<VisibleTaskRange>;
    visibleTasks: ComputedRef<TaskWithLevelAndIndex[]>;
    totalContentHeight: ComputedRef<number>;
    startSpacerHeight: ComputedRef<number>;
    endSpacerHeight: ComputedRef<number>;
    getFlattenedVisibleTasks: (taskList: Task[], level?: number) => TaskWithLevel[];
};
