import { Task } from '../models/classes/Task';
/**
 * 冲突区域数据结构
 */
export interface ConflictZone {
    /** 冲突开始时间 */
    startDate: Date;
    /** 冲突结束时间 */
    endDate: Date;
    /** 总投入比例（百分比） */
    totalPercent: number;
    /** 冲突等级 */
    level: 'light' | 'medium' | 'severe';
    /** 涉及的任务列表 */
    tasks: Array<{
        id: number | string;
        name: string;
        capacity: number;
    }>;
    /** Canvas渲染坐标（由GanttConflicts组件计算填充） */
    left?: number;
    width?: number;
    top?: number;
    height?: number;
}
/**
 * 时间交集结果
 */
export interface TimeIntersection {
    start: Date;
    end: Date;
}
/**
 * 检测资源时间冲突
 *
 * @param tasks 任务列表
 * @param resourceId 资源ID
 * @returns 冲突区域列表
 *
 * @example
 * const conflicts = detectConflicts(tasks, 'resource-1')
 */
export declare function detectConflicts(tasks: Task[], resourceId: string | number, timeScale?: string): ConflictZone[];
/**
 * 计算两个任务的时间交集
 *
 * @param task1 任务1
 * @param task2 任务2
 * @returns 时间交集，如果没有交集返回null
 *
 * @example
 * const intersection = getTimeIntersection(task1, task2)
 * if (intersection) {
 *   console.log('冲突时间段:', intersection.start, '~', intersection.end)
 * }
 */
export declare function getTimeIntersection(task1: Task | {
    startDate?: string;
    endDate?: string;
}, task2: Task | {
    startDate?: string;
    endDate?: string;
}, timeScale?: string): TimeIntersection | null;
/**
 * 判断冲突等级
 *
 * @param totalPercent 总投入比例（百分比）
 * @returns 冲突等级
 *
 * @example
 * getConflictLevel(110) // 'light'
 * getConflictLevel(130) // 'medium'
 * getConflictLevel(160) // 'severe'
 */
export declare function getConflictLevel(totalPercent: number): 'light' | 'medium' | 'severe';
/**
 * 计算两个日期之间的天数差
 */
export declare function getDaysDiff(start: Date, end: Date): number;
/**
 * 检查日期是否在指定范围内
 */
export declare function isDateInRange(date: Date, start: Date, end: Date): boolean;
