import type { CertCorpusSeed, PrMeta } from '@mmnto/totem'; type SafeExecFn = typeof import('@mmnto/totem').safeExec; /** A single git resolution for one PR (base/head/diff), as `resolvePrGit` returns. */ interface PrGitResolution { baseSha: string; headSha: string; diff: string; } /** * The runtime context the dispatch hands the authored sibling (already-resolved * repo/lc/seed + the sandbox-guarded path resolver + the git runner). Mirrors what * the mined `materializeCommand` computes before its producer work. */ export interface AuthoredMaterializeContext { seed: CertCorpusSeed; lcDir: string; repoRoot: string; cwd: string; /** `.totem` dir holding `spine/authoring-ledger.ndjson` (default: `/.totem`). */ totemDir: string; outDir?: string; resolveWithinRepo: (input: string, field: string) => string; safeExec: SafeExecFn; /** * ADR-112 R1 — the shared ref the freeze proof derives from (default * `origin/main`). Tests point it at a real fixture remote; it is NEVER an * author-facing knob (the proof's whole point is that the ref is shared). */ sharedRef?: string; } /** * Injectable I/O seams — real git by default; tests inject fakes so the producer is * exercisable WITHOUT a real lc clone (the mined materializer is not, so it has no * unit test). There is deliberately NO `now` seam: `frozenAt` is the seed's recorded * pre-authoring freeze instant (never a materialize clock — #2287 couple HOLD), so the * producer is fully deterministic from its inputs. */ export interface AuthoredMaterializeDeps { enumerateMetas: (asOfCommit: string) => PrMeta[]; resolvePrDiff: (mergeCommit: string) => PrGitResolution; computeControlFixtureSha: (controlDirs: string[]) => string | null; /** `true` iff `commit` is an ancestor of `ancestorOf` in the lc clone (§5.2 pre-window proof). */ isAncestor: (commit: string, ancestorOf: string) => boolean; } /** * Materialize the AUTHORED cert-run scoring corpus. Fail-loud (Tenet-4) throughout: * an empty corpus, an empty/mixed-split-ref ledger, or any §5.1/§5.3 freeze-gate * violation THROWS before a byte is written (detect-never-repair — the materializer * never re-freezes a leaked split). Writes the lock WITHOUT `groundTruthSha` * (`derive-labels` stamps it) and WITHOUT `llmReplaySha` (no LLM stage on the * authored path); the two-phase seal is `derive-labels` → `freeze`. */ export declare function materializeAuthored(ctx: AuthoredMaterializeContext, depsOverride?: Partial): Promise; export {}; //# sourceMappingURL=spine-authored-materialize.d.ts.map