/** * 启动子包预下载配置 size 回填(纯函数,无 IO / 加密依赖,便于单测)。 * * size 是“压缩+加密后真实下发体积”,只有 STTPKG 产出后才能确定,收集期源码 * game.json 不写 size(见启动子包收集技术方案 3.4 / 3.5)。编译期在加密产物 * 落地后,按子包最终 STTPKG 字节数回填到编译产物 packageConfig.json。 */ export interface PreloadItem { subPkgName?: string; /** 数字字符串、单位 KB(与客户端约定,不带单位后缀),例如 `"915"`。 */ size?: string; } export interface PreloadPkgEntry { parallelPreloadSubpackages?: PreloadItem[]; } /** 压缩+加密后字节 → KB 数字字符串,向上取整(与客户端约定单位 KB,不带后缀)。 */ export declare function bytesToKB(bytes: number): string; /** * 回填 parallelPreloadSubpackages[].size。 * * 遍历每个带该字段的 entry(__GAME__ + 独立分包),按 subPkgName 查该子包最终 * STTPKG 字节数,换算成 KB 写回。查不到字节数的条目保持不变(不臆造 size)。 * * 后向兼容是硬约束:本函数在**每次编译**(含未配置预加载的 legacy 游戏)都会跑, * 必须做到对“没有预加载”的情况零副作用、且任何输入都不抛错: * - `packages` 缺失 / 为空 → 直接返回,不动配置; * - 某个 entry 没有 `parallelPreloadSubpackages`(或不是数组)→ 跳过,绝不注入该字段; * - 空数组 / 条目缺 `subPkgName` / 查不到字节数 → 不写 size,保持原样。 * 只对“已存在且为非空数组”的条目里能查到字节数的项写 size,不新增字段、不改其他字段。 */ export declare function fillPreloadSizes(packages: Record | undefined | null, bytesByName: Map): void;