import type { ProofRef, ProofRefHashAlgorithm } from '../../types/policy.js';
export type { ProofRef, ProofRefHashAlgorithm } from '../../types/policy.js';
/** Only algorithm specified this round. */
export declare const PROOF_REF_ALGORITHM: ProofRefHashAlgorithm;
/** Parameters for {@link buildProofRef}. */
export interface BuildProofRefParams {
    /** The external proof artifact, as bytes or a UTF-8 string. */
    artifact: string | Uint8Array;
    /** Advisory label for the producing proof system (e.g. 'smtlib2', 'lean4'). */
    proofSystem?: string;
    /** Advisory fetch hint. The reference is the hash, not the locator. */
    locator?: string;
}
/** Construct a {@link ProofRef} by hashing the proof artifact's bytes.
 *  Deterministic: identical artifact bytes always yield the same hash. */
export declare function buildProofRef(params: BuildProofRefParams): ProofRef;
/** Reasons a {@link ProofRef} can fail structural validation. */
export type ProofRefValidationError = 'MISSING_REF' | 'UNSUPPORTED_ALGORITHM' | 'MALFORMED_HASH';
export interface ProofRefValidationResult {
    /** True when the reference is structurally well formed. This says NOTHING
     *  about whether the referenced artifact is a valid or sound proof. */
    wellFormed: boolean;
    errors: ProofRefValidationError[];
}
/** Structural validation only. A well-formed result asserts the reference has a
 *  supported algorithm and a syntactically valid hash. It does not fetch, hash,
 *  or check the referenced artifact. */
export declare function validateProofRef(ref: ProofRef | undefined | null): ProofRefValidationResult;
/** Check whether an artifact's bytes hash to the reference's recorded hash.
 *  This is the only sense in which a proof_ref is "checkable" this round: it
 *  confirms the bytes match the named hash. It does NOT establish that those
 *  bytes constitute a valid or sound proof. */
export declare function proofRefMatchesArtifact(ref: ProofRef, artifact: string | Uint8Array): boolean;
/** The honest-scope line an emitter SHOULD add to a receipt's
 *  scope_of_claim.does_not_assert when attaching a proof_ref. Dogfoods the
 *  ScopeOfClaim convention from src/v2/accountability/types/base.ts. */
export declare function proofRefScopeNote(): string;
//# sourceMappingURL=proof-ref.d.ts.map