/**
 * Record-integrity contracts for perf metric records.
 *
 * A record that claims `pass === true` must actually carry the journey's
 * required measurements — a "passing" provision run with a null
 * `total_ms` is a lying record, not a pass. Failed records are exempt:
 * a run that errored mid-flight legitimately has nulls.
 */
import type { JourneySpec } from './journey';
export interface IntegrityViolation {
    recordIndex: number;
    journeyId: string;
    field: string;
    reason: 'null-required-field' | 'below-minimum';
    detail: string;
}
export interface IntegrityResult {
    succeeded: boolean;
    violations: IntegrityViolation[];
}
/**
 * Validates flat metric records (Record<string, unknown> with a boolean
 * `pass` field) against their journey contract. Only records with
 * pass === true are checked — a failed record may legitimately have nulls.
 * resolveJourney maps a record to its JourneySpec (or null to skip).
 */
export declare function checkRecordIntegrity(records: ReadonlyArray<Record<string, unknown>>, resolveJourney: (record: Record<string, unknown>) => JourneySpec | null): IntegrityResult;
/** Throws an Error listing every violation when the result fails. */
export declare function assertRecordIntegrity(records: ReadonlyArray<Record<string, unknown>>, resolveJourney: (record: Record<string, unknown>) => JourneySpec | null): void;
//# sourceMappingURL=integrity.d.ts.map