/**
 * verifyProofCertificate — pure client-side verification of RunProofCertificate.
 *
 * Recomputes the Poseidon Merkle root from decision_chain leaf hashes and
 * compares against cert.merkle_root. No network call, no server trust needed.
 *
 * sprint-521 Bloc 1.
 */
import type { RunProofCertificate } from "./types.js";
export interface VerifyResult {
    valid: boolean;
    reason?: string;
}
/**
 * Verify a RunProofCertificate by recomputing its Merkle root.
 *
 * Checks:
 *   1. cert.state is a valid CertState enum value.
 *   2. All leaf hashes in decision_chain have valid hex felt252 format.
 *   3. If decision_chain is non-empty, recompute the Merkle root and compare
 *      against cert.merkle_root. Mismatch → merkle_mismatch.
 *   4. Empty decision_chain + null merkle_root → valid (degenerate case).
 *
 * @param cert - RunProofCertificate to verify (typically fetched from /api/runs/:id/proof-certificate).
 * @returns { valid: boolean; reason?: string }
 */
export declare function verifyProofCertificate(cert: RunProofCertificate): VerifyResult;
//# sourceMappingURL=verify.d.ts.map