/** * Phase 4a — printable diff between two lockfile snapshots. * * Used by `cursell update` to show the user what's about to change, * by `cursell verify` to surface same-version-different-hash drift, * and by tests/audit. Output is plain text (no ANSI codes). */ import type { Lockfile, AgentEntry } from "./schema.js"; export interface DiffEntry { slug: string; kind: "added" | "removed" | "version_changed" | "hash_drift" | "registry_changed"; before?: AgentEntry; after?: AgentEntry; /** Human-readable summary line. */ message: string; } export interface LockfileDiff { entries: DiffEntry[]; /** Aggregate flag: `cursell verify` should fail on hash_drift. */ hashDrift: boolean; /** Registry change is reported but never fails verify (per plan). */ registryChanged: boolean; } export declare function diffLockfiles(before: Lockfile | null, after: Lockfile | null): LockfileDiff; /** Render a diff as a multi-line plain-text report. */ export declare function formatDiff(d: LockfileDiff): string;