import type { AgentDiscoveryBinding, DiscoverySource } from "./agent-discovery.js"; export interface ReviewedArtifact { kind: "codex-native-catalog"; path: string; sha256: string; } export interface RetainedReviewArtifact { version: 1; kind: "codex-native-catalog"; storeRoot: string; originalPath: string; sha256: string; catalogSha256: string; } export interface ReviewArtifactChange { path: string; before: null; after: string; artifact: RetainedReviewArtifact; } export declare function verifyReviewArtifactOriginal(path: string, expectedSha256: string): void; export declare function retainedArtifactPath(metadata: RetainedReviewArtifact): string; export declare function validRetainedArtifact(value: unknown): value is RetainedReviewArtifact; export declare function verifyRetainedReviewArtifact(source: DiscoverySource, storeRoot?: string): void; /** Planning only: preserve source bytes and lineage, but create no storage. */ export declare function planReviewArtifactRetention(binding: AgentDiscoveryBinding, artifacts: ReviewedArtifact[] | undefined, dataDir: string, home: string): { binding: AgentDiscoveryBinding; changes: ReviewArtifactChange[]; observed: Array<{ path: string; sha256: string; }>; }; /** Publish only an absent exact-byte artifact; existing immutable bytes are never replaced. */ export declare function writeReviewArtifactExclusive(change: ReviewArtifactChange): void;