import type { DiscoveryEvidence } from "./types.js"; import type { FilesystemProvider } from "../infra/filesystem-provider.js"; /** Canonical location of the discovery evidence artifact */ export declare const DISCOVERY_EVIDENCE_PATH: string; /** Sections of the evidence artifact that replay re-derives */ export type ReplayedEvidence = { environment: { classification: DiscoveryEvidence["environment"]["classification"]; platform: string; }; capabilities: DiscoveryEvidence["capabilities"]; assumptions: DiscoveryEvidence["assumptions"]; compatibility: DiscoveryEvidence["compatibility"]; }; /** Result of verifying an evidence artifact against its own replay */ export type DiscoveryReplayVerification = { consistent: boolean; divergences: string[]; }; /** Deterministic JSON serialization: sorted keys, recorded array order preserved */ export declare function canonicalizeEvidence(evidence: DiscoveryEvidence): string; /** * SHA-256 over the canonical content view. Two discovery runs in an * identical environment must produce identical hashes. */ export declare function hashDiscoveryEvidence(evidence: DiscoveryEvidence): string; /** * Replay the derived sections of an evidence artifact purely from its * recorded observations and provider selections. Provider selections * are treated as recorded decisions (inputs), exactly as events are * treated in kernel replay; everything derived must reproduce exactly. */ export declare function replayDiscoveryEvidence(evidence: DiscoveryEvidence): ReplayedEvidence; /** Compare recorded evidence against its own replay */ export declare function verifyDiscoveryReplay(evidence: DiscoveryEvidence): DiscoveryReplayVerification; /** Persist the canonical artifact through the Filesystem capability */ export declare function persistDiscoveryEvidence(fs: FilesystemProvider, evidence: DiscoveryEvidence, path?: string): Promise; /** Load and schema-check a persisted artifact; undefined when absent or invalid */ export declare function loadDiscoveryEvidence(fs: FilesystemProvider, path?: string): Promise;