import { type MinerLedgers } from './ledgers.js'; export type FmClause = 'a' | 'b' | 'c' | 'd' | 'e-split' | 'e-emission' | 'f' | 'g' | 'h' | 'i' | 'stage4-consistency' | 'schema'; export interface FmViolation { clause: FmClause; detail: string; } export interface FalsificationResult { /** true iff NO Falsifying-Metric clause holds (the miner run is contract-clean). */ ok: boolean; violations: FmViolation[]; } /** * Run the §8 falsification harness over raw (untrusted) ledger JSON. The schema * parse is the first gate — an incomplete provenance tuple (FM(a)) or a * non-`unverified` mint (FM(b)) cannot construct a valid `MinerLedgers`, so a * parse failure is mapped to its clause. Surviving ledgers then run the * cross-cutting checks (c, d, e-split, e-emission, f, g, h, i). */ export declare function runFalsificationHarness(rawLedgers: unknown): FalsificationResult; /** * Cross-cutting checks over an ALREADY-VALIDATED `MinerLedgers`. * * ⚠ FM(a) (incomplete provenance) and FM(b) (non-`unverified` mint) are * SCHEMA-ENFORCED and are NOT re-asserted here — a caller that hands in an * in-process `MinerLedgers` gets no FM(a)/(b) coverage from this function. For * untrusted/raw ledger JSON use {@link runFalsificationHarness}, which parses * (catching FM(a)/(b)) before delegating here. */ export declare function checkParsedLedgers(ledgers: MinerLedgers): FmViolation[]; //# sourceMappingURL=miner-harness.d.ts.map