import type { HarnessAdapter } from "./core/adapter.js"; export interface ConformanceResult { readonly ok: boolean; readonly failures: readonly string[]; } /** Check an adapter against the port contracts; returns the (possibly empty) failure list. */ export declare function checkAdapterConformance(adapter: HarnessAdapter): ConformanceResult; /** Throw if the adapter fails conformance — drop this in an adapter's test suite. */ export declare function assertAdapterConformance(adapter: HarnessAdapter): void; /** * Guard for the pillar-2 entry points (runHarnessTest/runEval): a pillar-1-only * adapter (Cursor, Devin, Amp, Amazon Q) has no mockable transport, so driving * the deterministic/eval tiers against it would hang or spawn nothing. Calling * this up front turns that into a clear, immediate error. Returns the narrowed * runtime+modelMock so the caller can use them without re-checking for undefined. */ export declare function assertHarnessTestable(adapter: HarnessAdapter): { runtime: NonNullable; modelMock: NonNullable; }; /** * Behavioural conformance the pure checks can't reach: write a minimal settings * file using the adapter's OWN codec and registration shape, load it through * the adapter's `layout`, and assert the hooks actually came back. This is what * catches a layout that points at the right file but in the wrong format (the * JSON-vs-TOML trap) — the pure checker would pass it, the agent would silently * run with zero hooks. Does filesystem IO, so it's a separate opt-in assert. */ export declare function assertAdapterLoadsHooks(adapter: HarnessAdapter): void; //# sourceMappingURL=adapter-conformance.d.ts.map