/** * Writing a release plan to disk — the half of `telo release apply` that * changes files. * * Split from the command so the command is wiring: `commands/release.ts` reads * argv, resolves the registry and prints, and everything that touches a manifest, * a changelog or the ledger is here. The seam is the plan itself, which is * already a complete description of what to write. */ import { type Ledger, type ModuleKey, type ReleasePlan } from "@telorun/analyzer"; import { type Workspace } from "./workspace.js"; /** One module's writes, reported so `apply` can list what it touched. */ export interface AppliedModule { readonly key: ModuleKey; readonly from: string; readonly to: string; /** Workspace-relative paths written for this module. */ readonly files: readonly string[]; } /** * Write every planned module's version and changelog. * * Returns before the ledger is recorded, because the ledger has to be built from * the versions this pass just wrote. */ export declare function writePlannedVersions(workspace: Workspace, plan: ReleasePlan, date: string): AppliedModule[]; /** * The ledger as it will look once this release is published. * * Built from a SECOND payload pass taken after the versions are on disk, because * that is what will actually ship: a dependent's manifest layer carries its * dependency's new version and the pin derived from the dependency's new bytes, * neither of which existed while the plan was being formed. Recording the * pre-bump digest would guarantee the next `check` reported drift on every * module in this release. */ export declare function recordLedger(root: string, registry: string, plan: ReleasePlan): Promise; //# sourceMappingURL=apply-plan.d.ts.map