import { type KnowledgeAdapter, type KnowledgeDoc, type KnowledgePosture } from "../index.js"; import type { ConformanceSuite } from "./index.js"; /** The suite seeds, mutates, and removes fixed `doc_conformance_*` ids: run it against a dedicated corpus/namespace only — never shared or production data — and never concurrently against one corpus. Isolation is the caller's contract, which is why fixture ids are deliberately stable (reruns self-clean instead of leaking uniquely-named orphans). */ export interface KnowledgeConformanceOptions { makeAdapter(): Promise<{ adapter: KnowledgeAdapter; close?(): Promise; }>; /** The posture the adapter DECLARES. Cases adapt: required capabilities are always tested, optional ones only when declared, `public-only` skips the internal-tier cases (knowledge design v2 R2). */ posture: KnowledgePosture; /** Docs the retrieval/visibility/round-trip cases key on. Write-posture adapters get them upserted by the suite; read-only adapters MUST come pre-seeded with these docs (the module's default seed docs when omitted — pass explicit seedDocs for a read-only adapter, since you control its contents). The suite makes positive retrieval assertions against the public seed in EVERY posture: an empty search is non-conformant. */ seedDocs?: { public: KnowledgeDoc; internal: KnowledgeDoc; }; } /** Executable KnowledgeAdapter checks — knowledge design v2 (2026-07-22) R2/R5. ENG-358 freezes this skeleton; ENG-359 grows the behavioral case set. */ export declare function knowledgeAdapterConformance(opts: KnowledgeConformanceOptions): ConformanceSuite;