import { type NativeDiscoveryWitnessTolerance } from "./native-discovery-witness-change.js"; /** Recursive path/type membership only; source-file hashes bind reviewed bytes. */ export interface DiscoveryDirectory { path: string; sha256: string | null; } export interface DiscoveryDirectoryProjection extends DiscoveryDirectory { entries: string[]; } /** A separate planner-created projection retains membership outside exact * reviewed inactive roots. It never replaces a historical full witness. */ export declare function captureDiscoveryDirectoryProjection(paths: string[], omittedRoots: readonly string[]): DiscoveryDirectoryProjection[]; /** Compare a planner-captured inventory after removing only exact inert graphs. * The stored rows must reproduce their original digest before projection. A * membership change is a NativeDiscoveryWitnessChange: thrown, unless the live * Codex prompt hook's tolerance accepts it. Invalid inventories always throw. */ export declare function verifyDiscoveryDirectoryProjection(directories: DiscoveryDirectoryProjection[], omittedRoots: readonly string[], tolerance?: NativeDiscoveryWitnessTolerance): void; /** Read-only membership capture, excluding validated Claude cleanup markers. * Callers must still review source bytes; projected inventories remain exact. */ export declare function captureDiscoveryDirectories(paths: string[], excludedRoots?: readonly string[]): DiscoveryDirectory[]; /** A membership change is a NativeDiscoveryWitnessChange: thrown, unless the * live Codex prompt hook's tolerance accepts it. Invalid collections always throw. */ export declare function verifyDiscoveryDirectories(directories: DiscoveryDirectory[], excludedRoots?: readonly string[], tolerance?: NativeDiscoveryWitnessTolerance): void;