import { Dayjs } from "dayjs";
import { ResourceItem, TimeSliceItem } from "./resources";
/**
 * 计算资源在指定时间段内的总可用时间（以分钟为单位）
 * @param resource 需要计算可用时间的资源
 * @param timeSlots 要检查可用性的时间段
 * @param currentCapacity 当前预约所需的容量
 * @returns 总可用时间（分钟）
 */
export declare function calculateResourceAvailableTime({ resource, timeSlots, currentCapacity, }: {
    resource: ResourceItem;
    timeSlots: TimeSliceItem;
    currentCapacity?: number;
}): number;
/**
 * 查找最快可用的资源，如果有多个资源在相同时间点可用，则选择空闲时间最长的资源
 * @param resources 资源列表
 * @param currentCapacity 当前预约所需的容量
 * @param countMap 已预约数量映射
 * @returns 最快可用的资源
 */
export declare function findFastestAvailableResource({ resources, currentCapacity, countMap, }: {
    resources: ResourceItem[];
    currentCapacity?: number;
    countMap?: Record<number, number>;
}): ResourceItem | null;
/**
 * 给定一个时间列表，通过开始和结束时间过滤出符合条件的时间段
 *
 * @export
 * @param {TimeSliceItem[]} times
 * @param {Dayjs} startTime
 * @param {Dayjs} endTime
 * @return {*}
 */
export declare function filterConditionTimeSlots(times: TimeSliceItem[], startTime: Dayjs, endTime: Dayjs): TimeSliceItem[];
