import type { DiscoverySource } from "./agent-discovery.js"; export type NarrowedSettingsMode = "claude-settings-v5" | "codex-settings-v7" | "codex-settings-v8"; export declare const NARROWED_WITNESS_LEDGER_FILE = "native-witness-narrowed.json"; /** The narrowed mode that covers this legacy full-file settings witness, or * null when it has none. */ export declare function narrowedLegacyWitnessMode(source: DiscoverySource): NarrowedSettingsMode | null; export interface NarrowedWitnessLedger { /** The legacy witness no longer matches: accept only when the current file's * narrowed digest equals the one recorded for this exact witness. */ accepts(source: DiscoverySource): boolean; /** The legacy witness verified the current file: record its narrowed digest, * re-proving the legacy match on the same bytes first. */ observe(source: DiscoverySource): void; /** Paths accepted through a recorded narrowed digest during this check. */ readonly accepted: string[]; } /** Opened by the live hook only. `record` permits observations to be written * by flush(); reads never write. Every failure is fail-closed: an unreadable or * malformed ledger accepts nothing and is never overwritten. */ export declare function openNarrowedWitnessLedger(dataDir: string, options?: { record: boolean; }): NarrowedWitnessLedger & { flush(): void; };