import { Task } from '../models/classes/Task';
import { Resource } from '../models/classes/Resource';
/**
 * 检测两个任务的时间段是否重叠
 * @param task1 任务1
 * @param task2 任务2
 * @returns 是否重叠
 */
export declare function isTaskTimeOverlap(task1: Task, task2: Task): boolean;
/**
 * 检测资源的任务列表中是否存在资源超载冲突
 * 逻辑：只要时间有交集的任务，资源占比总和超过100%，就认为是冲突
 * @param resource 资源对象
 * @returns 冲突的任务ID集合
 */
export declare function detectResourceConflicts(resource: Resource): Set<number>;
/**
 * 检测所有资源的冲突情况
 * @param resources 资源列表
 * @returns Map<resourceId, Set<conflictTaskIds>>
 */
export declare function detectAllResourceConflicts(resources: Resource[]): Map<string | number, Set<number>>;
/**
 * 计算资源利用率（时间窗口版：任务时长累加 / 时间窗口）
 * @param resource 资源对象
 * @param timeWindowDays 时间窗口（天数），默认30天
 * @returns 利用率百分比（0-100+）
 */
export declare function calculateResourceUtilization(resource: Resource, timeWindowDays?: number): number;
/**
 * 创建资源对象（工厂函数）
 * @param data 资源数据
 * @returns Resource 对象
 */
export declare function createResource(data: {
    id: string | number;
    name: string;
    title?: string;
    type?: string;
    avatar?: string;
    description?: string;
    department?: string;
    skills?: string[];
    capacity?: number;
    color?: string;
    tasks?: Task[];
    [key: string]: unknown;
}): Resource;
/**
 * 添加任务到资源
 * @param resource 资源对象
 * @param task 任务对象
 */
export declare function addTaskToResource(resource: Resource, task: Task): void;
/**
 * 从资源中移除任务
 * @param resource 资源对象
 * @param taskId 任务ID
 */
export declare function removeTaskFromResource(resource: Resource, taskId: number | string): void;
/**
 * 获取资源的任务数量
 * @param resource 资源对象
 * @returns 任务数量
 */
export declare function getResourceTaskCount(resource: Resource): number;
/**
 * 更新资源的利用率
 * @param resource 资源对象
 */
export declare function updateResourceUtilization(resource: Resource): void;
/**
 * 检测资源的任务是否存在时间重叠
 * @param resource 资源对象
 * @returns 是否存在任务重叠
 */
export declare function hasResourceTaskOverlap(resource: Resource): boolean;
/**
 * 检测资源是否超载（基于占用比例）
 * 超载定义：同一时间段内，资源总占用比例 > 100%
 * @param resource 资源对象
 * @returns 是否资源超载
 */
export declare function isResourceOverloaded(resource: Resource): boolean;
/**
 * 获取任务中当前资源的利用率
 * @param resource 资源对象
 * @param task 任务对象
 * @returns 占比百分比 (20-100)，默认100
 */
export declare function getTaskAllocationPercent(resource: Resource, task: any): number;
