import type { CanonicalizationTestVector } from '../../core/canonical-jcs.js';
export interface ConformanceCheck {
    id: string;
    category: string;
    name: string;
    spec?: string;
    passed: boolean;
    /** First divergence detail when failed. Non-authoritative on pass. */
    detail?: string;
    durationMs: number;
}
export interface ConformanceRunnerResult {
    passed: number;
    failed: number;
    total: number;
    categories: Record<string, {
        passed: number;
        failed: number;
    }>;
    tests: ConformanceCheck[];
    summary: string;
    durationMs: number;
    /** True iff every check passed. Convenience for an exit code. */
    allPass: boolean;
}
/**
 * Check one canonicalization vector. Returns null on full agreement, or a
 * human-readable divergence string naming the first divergent byte. Both
 * the JCS and legacy variants and both digests are checked: a single-byte
 * divergence in any one of the four fails.
 */
export declare function checkCanonicalizationVector(v: CanonicalizationTestVector): string | null;
/**
 * Run the canonicalization conformance vectors against this
 * implementation's canonicalizers. `externalVectors` lets a caller load a
 * pinned JSON corpus (e.g. specs/test-vectors-canonicalization.json) and
 * assert it is byte-identical to the code mirror getTestVectors(), so a
 * drift between the two surfaces is itself a conformance failure.
 */
export declare function runCanonicalizationConformance(externalVectors?: CanonicalizationTestVector[]): ConformanceRunnerResult;
/** Fold a check list into the report shape. */
export declare function summarize(checks: ConformanceCheck[], durationMs: number): ConformanceRunnerResult;
//# sourceMappingURL=conformance-runner.d.ts.map