import { type ServiceSpec } from "./service-definition.js"; import type { ServiceHost } from "./service-host.js"; import type { ServiceMigrationBackup, ServiceMigrationFile } from "./service-migration-types.js"; import { type LegacyRuntimeTreeReceipt } from "./service-migration-runtime-tree.js"; import { type LegacyNodeRuntimeReceipt } from "./service-migration-node-runtime.js"; export { digestServiceMigrationReloadOldReceipt } from "./service-migration-receipt-digest.js"; interface RetainedRuntimeContract { runtime: LegacyRuntimeTreeReceipt; node: LegacyNodeRuntimeReceipt; original: ServiceSpec; rollback: ServiceSpec; } export type RetainedLegacyRuntime = RetainedRuntimeContract & ({ schemaVersion: 1; sourceRoot: string; } | { schemaVersion: 2; sourceRoots: string[]; }); export type ServiceMigrationRollbackContractFile = { state: "file"; role: ServiceMigrationFile["role"]; path: string; mode: number; sha256: string; } | { state: "absent"; role: "target-configuration"; path: string; }; export interface ServiceMigrationRollbackContract { schemaVersion: 1; platform: "darwin" | "linux"; scope: ServiceSpec["scope"]; previousEnabled: boolean; rollback: ServiceSpec; files: ServiceMigrationRollbackContractFile[]; } /** 仅排除旧内核明确使用的配置与持久数据,不接受客户端任意忽略运行文件。 */ export declare function legacyRuntimeExclusions(original: ServiceSpec, sourceRoot: string): string[]; /** 纯解析;磁盘内容须由异步verify在停机及回退前核实。 */ export declare function parseRetainedLegacyRuntime(input: unknown): RetainedLegacyRuntime; export declare function bindRetainedLegacyRuntimeForest(original: ServiceSpec, sourceRoots: string[], runtime: LegacyRuntimeTreeReceipt, node: LegacyNodeRuntimeReceipt): Promise; export declare function bindRetainedLegacyRuntime(original: ServiceSpec, sourceRoot: string, runtime: LegacyRuntimeTreeReceipt, node: LegacyNodeRuntimeReceipt): Promise; export declare function verifyRetainedLegacyRuntime(input: RetainedLegacyRuntime): Promise; /** * 固化旧服务回退会实际写入的完整字节契约。definition/metadata 取保留运行时派生值, * configuration/runner 取原始备份;角色顺序不受备份数组顺序影响。 */ export declare function createServiceMigrationRollbackContract(backup: ServiceMigrationBackup, host: ServiceHost): { contract: ServiceMigrationRollbackContract; digest: string; }; export declare function retainedRollbackFiles(backup: ServiceMigrationBackup, host: ServiceHost): { path: string; bytes: Buffer; mode: number; }[]; //# sourceMappingURL=service-migration-retained-runtime.d.ts.map