/**
 * BrainPort conformance suite.
 *
 * Asserts a concrete BrainPort impl honours the contract:
 *   - archiveKnowledge returns an entry-like object or null; never throws
 *     on server validation failure (throws only for network/auth errors).
 *   - queryKnowledge (when present) returns an array; empty array for no
 *     matches, never null.
 *   - Multiple archiveKnowledge calls with the same content are accepted;
 *     the impl may de-dupe but must not reject on repeat.
 */
import type { BrainPort } from "../ports/brain.js";
import type { ConformanceRunner } from "./runner.js";
export interface BrainConformanceConfig {
    describe: ConformanceRunner["describe"];
    it: ConformanceRunner["it"];
    expect: (actual: unknown) => {
        toBeDefined(): void;
        toBeNull(): void;
        toBeTruthy(): void;
        toBe(expected: unknown): void;
        toEqual(expected: unknown): void;
        toBeInstanceOf(cls: unknown): void;
        toHaveProperty(key: string): void;
        toBeGreaterThanOrEqual(n: number): void;
        not: {
            toBe(expected: unknown): void;
            toBeNull(): void;
            toThrow(): void;
        };
        [key: string]: any;
    };
    /**
     * Async factory returning a fresh BrainPort for each test case.
     * Use this to isolate state between tests.
     */
    factory: () => Promise<BrainPort> | BrainPort;
    /**
     * Optional tag applied to all archived entries (so the host can clean
     * up after the suite runs). Defaults to "conformance-test".
     */
    testTag?: string;
}
export declare function brainPortConformance(config: BrainConformanceConfig): void;
//# sourceMappingURL=brain-conformance.d.ts.map