import type { GenerationActivationController } from "../control/generation-activation.js"; import { type ConfigurationBase, type ConfigurationRepairReference } from "./configuration-store.js"; import { type PersistedOperationObserver } from "../persisted-operation-observer.js"; export interface ConfigurationSourceSnapshot { revision: string; document: Record; } export interface ConfigurationApplicationOptions { directory: string; source: { read(): ConfigurationSourceSnapshot; serialize?(document: unknown): Buffer; inspect?(): { state: "ready" | "damaged"; revision: string; }; replaceRaw?(expectedRevision: string, bytes: Uint8Array): { revision: string; bytes: Buffer; }; replace(expectedRevision: string, document: Record): ConfigurationSourceSnapshot; }; lifecycle: Pick & Partial>; recovery?: { read(reference: ConfigurationRepairReference): Buffer; }; onOperation?: PersistedOperationObserver; } export interface ConfigurationApplicationInput { repair?: ConfigurationRepairReference; id: string; validationId: string; base: ConfigurationBase; document: Record; } export interface ConfigurationApplicationOperation { id: string; validationId: string; status: "running" | "succeeded" | "failed" | "interrupted"; phase: "accepted" | "stopping" | "writing" | "starting" | "restoring" | "completed" | "failed"; recoveryRequired: boolean; rolledBack?: boolean; sourceState?: "damaged"; configRevision?: string; error?: "CONFIG_APPLY_FAILED" | "CONFIG_RECOVERY_REQUIRED"; } export interface ConfigurationApplicationJournal extends ConfigurationApplicationOperation { mode?: "repair"; repair?: ConfigurationRepairReference; schemaVersion: 1; base: ConfigurationBase; desired: "running" | "stopped"; documentDigest: string; previousDigest: string; candidateRevision?: string; } /** 唯一 manager 拥有此目录。私有文档与操作意图先落盘,未确认结果从不自动重放。 */ export declare class ConfigurationApplication { private readonly options; private readonly directory; private blocked; constructor(options: ConfigurationApplicationOptions); health(): { recoveryRequired: boolean; }; reconcileRestore(id: string, expectedRevision: string): Promise; status(id: string): ConfigurationApplicationOperation; /** 区分从未派发与损坏记录;调用者不能把 status 读取失败当成可重试。 */ hasOperation(id: string): boolean; apply(input: ConfigurationApplicationInput): Promise; private execute; private rollback; private unknown; private file; private save; private read; private saveDocument; private readDocument; } //# sourceMappingURL=configuration-application.d.ts.map