import type { TemplateVars } from './renderer.js'; /** Diagnostic metadata per ADR-022 (CLI ↔ Web-UI integration). */ export interface HarnessMeta { /** Which surface produced this harness — 'cli' or 'web-ui'. Lets the * validate umbrella decide which parity test bucket the harness should * pass, and tells operators which surface to debug when drift surfaces. */ surface?: 'cli' | 'web-ui'; /** `@metaharness/kernel` version the harness was scaffolded against. ADR-022 * identifies kernel version skew as the most common root cause of * manifest-shape disagreement between CLI + Pages deployments. Recording * it here turns "drift" into "v0.1.5 vs v0.1.6 mismatch". */ kernel_version?: string; } export interface HarnessManifest { /** Manifest schema version. Bump only on breaking shape changes. */ schema: 1; /** Generator package version that produced this harness. */ generator: string; /** Template id (e.g. "minimal", "vertical:trading"). */ template: string; /** Template package version (resolved at generation time). */ template_version: string; /** Variables the user supplied. */ vars: TemplateVars; /** Host adapters bundled. */ hosts: string[]; /** Per-rendered-file sha256, so `harness upgrade` can detect divergence. */ files: Record; /** ISO-8601 generation timestamp. */ generated_at: string; /** ADR-022 diagnostic block. Optional for backwards-compat with pre-iter-56 * manifests; `harness validate doctor` warns (does NOT fail) when absent. */ meta?: HarnessMeta; } export declare function emptyManifest(template: string, generator: string, opts?: { meta?: HarnessMeta; }): HarnessManifest; /** sha256-hex of a string. Used to fingerprint each rendered file. */ export declare function sha256(content: string): string; /** * Compute the per-file hash table for a rendered file map. * Keys are file paths relative to the harness root. */ export declare function fingerprintFiles(rendered: Record): Record; /** * Compare two manifests' file fingerprints, returning the set of paths * that differ. Drives the `harness upgrade` regenerate-diff-merge flow * per copier's update model (cited in ADR-008). */ export declare function diffFingerprints(a: Record, b: Record): { added: string[]; removed: string[]; changed: string[]; }; //# sourceMappingURL=manifest.d.ts.map