import GenesisEquivalenceBoundary from './GenesisEquivalenceBoundary.ts';
import { type GenesisEquivalenceReadingFactKind } from './GenesisEquivalenceReadingFact.ts';
export declare const GENESIS_EQUIVALENCE_MISSING_FACT = "missing";
export declare const GENESIS_EQUIVALENCE_EXTRA_FACT = "extra";
export declare const GENESIS_EQUIVALENCE_CHANGED_FIELD = "changed";
export type GenesisEquivalenceMismatchKind = typeof GENESIS_EQUIVALENCE_MISSING_FACT | typeof GENESIS_EQUIVALENCE_EXTRA_FACT | typeof GENESIS_EQUIVALENCE_CHANGED_FIELD;
export type GenesisEquivalenceMismatchFields = {
    readonly kind: GenesisEquivalenceMismatchKind;
    readonly factKind: GenesisEquivalenceReadingFactKind;
    readonly factKey: string;
    readonly fieldPath: string;
    readonly legacyValue: string | null;
    readonly migratedValue: string | null;
    readonly boundary: GenesisEquivalenceBoundary | null;
};
/** Runtime-backed structured difference between legacy and migrated readings. */
export default class GenesisEquivalenceMismatch {
    readonly kind: GenesisEquivalenceMismatchKind;
    readonly factKind: GenesisEquivalenceReadingFactKind;
    readonly factKey: string;
    readonly fieldPath: string;
    readonly legacyValue: string | null;
    readonly migratedValue: string | null;
    readonly boundary: GenesisEquivalenceBoundary | null;
    constructor(fields: GenesisEquivalenceMismatchFields);
    /** Returns a deterministic mismatch key. */
    toKey(): string;
}
