import { type FrozenSplitArtifact, TotemError } from '@mmnto/totem'; type SafeExecFn = typeof import('@mmnto/totem').safeExec; /** The shared ref the proof derives from. Tests point this at a real fixture remote. */ export declare const DEFAULT_SHARED_REF = "origin/main"; /** One fail-loud row of the freeze-proof failure partition — distinct, never aliasing. */ export declare function freezeProofFailure(row: string, detail: string, fix: string, cause?: unknown): TotemError; /** A PROVEN freeze binding — the artifact behind a content-addressed splitRef, * integrity-checked AND shared-history-proven. The ONLY sanctioned constructor is * `resolveProvenFreezeBinding` below: every consumer that threads a binding into * `runRuleAuthor` goes through resolve+prove, so no caller can introduce an * unverified binding (the never-unverified-binding invariant — strategy #2293 * round-1 couple read). */ export interface FreezeBinding { artifact: FrozenSplitArtifact; } /** A resolved frozen-split artifact + where it lives (repo-relative, forward-slash for git). */ export interface ResolvedFrozenSplit { artifact: FrozenSplitArtifact; absPath: string; /** Repo-relative, '/'-separated (the form every git invocation here consumes). */ relPath: string; } /** * Resolve a frozen-split artifact by its content-addressed `splitRef` inside the * tracked freeze home (`/spine//frozen-split.json`). Fail-loud * rows: `ref-unresolved` (no artifact carries the ref — including the * artifact-absent case), `ref-ambiguous` (more than one does), and * `artifact-integrity` (an artifact whose recomputed content address or * commitment does not match its own fields — an in-place edit, t7). */ export declare function resolveFrozenSplitByRef(totemDir: string, repoRoot: string, splitRef: string): ResolvedFrozenSplit; /** The proof's product: the artifact's introducing commit on the shared ref. */ export interface SharedFreezeProof { introducingCommit: string; committerDate: string; } /** * The (a)-leg shared-history proof for a frozen split artifact. Topology rows: * `artifact-uncommitted` (working tree only) · `artifact-not-shared` (committed * locally, absent from the shared ref's ancestry — the row a HEAD-ancestor proof * would miss) · `artifact-blob-differs` (current bytes ≠ the blob at the shared * introducing commit — covers post-freeze edits whether or not committed) · * `temporal-consistency` (frozenAt postdates the introducing commit's committer * date — t2/t8's distinct diagnostic; a consistency check, never the proof). */ export declare function verifySharedFrozenSplit(args: { repoRoot: string; resolved: ResolvedFrozenSplit; safeExec: SafeExecFn; sharedRef?: string; }): SharedFreezeProof; /** * Resolve + PROVE the freeze binding for a splitRef, in one home. Returns * `undefined` for a legacy free-text ref (no artifact exists to bind — the * pre-R1 adherence-class shape); for a content-addressed ref it resolves the * artifact (integrity-checked) AND runs the shared-history proof, so a binding * NEVER enters a consumer unproven regardless of which boundary constructs it * (authoring intake, cert-run resolve, or the labels deriver). */ export declare function resolveProvenFreezeBinding(args: { totemDir: string; repoRoot: string; splitRef: string; safeExec: SafeExecFn; sharedRef?: string; }): FreezeBinding | undefined; /** * The ledger half of the (a) leg: every EFFECTIVE authoring-ledger entry must * have entered shared history STRICTLY LATER than the freeze artifact — by * ancestry, not timestamps (t3). Rows: `entry-not-shared` (the row is not in the * shared ref's history of the ledger file — uncommitted, dirty, or local-only) · * `entry-not-after-freeze` (introduced in the same commit as, or not a * descendant of, the freeze's introducing commit). */ export declare function assertLedgerEntriesAfterFreeze(args: { repoRoot: string; /** Repo-relative '/'-separated path of the authoring-ledger NDJSON. */ ledgerRelPath: string; /** The effective entries to anchor (each is matched by its canonical NDJSON line). */ entries: readonly { ruleId: string; entry: unknown; }[]; freezeIntroducingCommit: string; safeExec: SafeExecFn; sharedRef?: string; }): void; export {}; //# sourceMappingURL=spine-freeze-proof.d.ts.map