/**
 * 资源运行态计算 helper（搬自 info2 `utilsByBooking.ts` + `service/addService/utils.tsx`）。
 *
 * 本文件输入输出全部为 plain object，不依赖 React / locales / @pisell/icon / mini-redux。
 * 调用方传入：resource origin map（`/form/schedule` 返回） / cacheItem（含 `_extend.duration / _extend.start_date / _extend.start_time` 等）。
 *
 * 三个 info2 独有特性保留：
 *   1. `resource_display_scope='all'`：取全部资源
 *   2. `extraResources`：拖入未绑定资源时兼容渲染
 *   3. `getNoResource2()`：占位"无资源"行
 */
/**
 * 从已选资源中取「最早结束」的 usableTime，供灵活时长计算上限。
 * 与 info2 `service/addService/utils.tsx#getUsableTime` 等价。
 */
export declare function getUsableTime(cacheItem: any): any | null;
/** Σ cacheItem._extend.capacity[].value × _extend.quantity。 */
export declare function getSumCapacity(cacheItem: any, isCalcQuantity?: boolean): number;
/**
 * 判断单个 time 是否可用，写回 `_extend` 标记位（isDateRange / isCountRange / isUsable / isMaxLimitRange）。
 * 与 info2 `utilsByBooking.ts#getResourceTimeIsUsable` 等价。
 */
export declare function getResourceTimeIsUsable(item: any, cacheItem: any, resourceItem: any): any;
/**
 * 在 resource.times 中找到最佳可用 time，并写回 `_extend.usableTime`。
 * 与 info2 `utilsByBooking.ts#formatTimes` 等价。
 */
export declare function formatTimes(resourceItem: any, cacheItem: any): any;
/**
 * 单个 resource 的整体可用性 + labelText 填充。
 * 与 info2 `utilsByBooking.ts#formatResource` 等价；不再接收 formatLabel 回调（OS 不渲染 JSX）。
 */
export declare function formatResource(resourceItem: any, cacheItem?: any): any;
/**
 * 把单个 resource origin 类型（如「技师」）的 renderList 中每个资源跑一遍 formatResource，
 * 并维护 unbound 标记（拖入未绑定资源时 UI 用）。
 * 与 info2 `service/addService/utils.tsx#formatResources` 等价（剥 JSX）。
 */
export declare function formatResources(params: {
    cacheItem: any;
    resourcesOrigin: any[];
}): {
    list: any[];
    maps: Record<string, any>;
};
/**
 * 计算每类资源的默认值（写入 cacheItem._extend.resource）。
 * 与 info2 `service/addService/utils.tsx#setDefaultResource` 等价；
 * `resourceIdFromCalendar` 替代原版 sessionStorage `serviceParams.resource_id` 读取。
 */
export declare function setDefaultResource(params: {
    cacheItem: any;
    resources: any[];
    resourceIdFromCalendar?: number;
    isAutoAllocationOn?: (formId: any) => boolean;
}): Record<string, any[]>;
/**
 * 计算默认容量（与 info2 `setDefaultCapacitys` 等价）。
 * package：按 _extend.other.bundle 拆 quantity；custom：按 capacity.custom[].min；其他：[{id:0,value:1}]。
 */
export declare function setDefaultCapacitys(params: {
    capacitys: any;
    cacheItem: any;
}): Array<{
    id: number | string;
    value: number;
    name?: string;
}>;
/**
 * 通过商品 `product_resource.resources[]` 关联的 form/resource id，从 resourcesOriginMap 还原资源数据。
 * 与 info2 `service/addService/utils.tsx#getResourceByIds` 等价（保留三特性）。
 */
export declare function getResourceByIds(resourcesOriginMap: Record<string, any>, cacheItem: any, extraParams?: {
    extraResources?: Array<{
        form_id: number | string;
        id: number;
    }>;
    resourcesOrigin?: any[];
    resourceTab?: Record<string, any>;
}): any[];
