import type { PaymentDenial, PaymentInvoice, PaymentReceipt } from './types.js'; /** sha256 hex of a UTF-8 canonical string. */ export declare function sha256Hex(s: string): string; /** * Build the canonical bytes used for receipt_id derivation and * signing. The signature field is forced to empty string ('') and * receipt_id is forced to empty when deriving the id; the signing * payload uses the populated receipt_id with empty signature. This * matches the Wave 1 accountability id-then-signature ordering. */ export declare function canonicalizeReceiptForId(receipt: PaymentReceipt): string; /** Write-boundary twin of canonicalizeReceiptForId(). * * Emits the same bytes as canonicalizeReceiptForId() for every value it accepts. The only difference * is that an integer-valued number outside the interoperable IEEE 754 range is * refused instead of serialized. Use at signing and new-write boundaries ONLY: * canonicalizeReceiptForId() stays unrestricted so an artifact signed before this rule keeps * verifying. */ export declare function canonicalizeReceiptForIdForWrite(receipt: PaymentReceipt): string; export declare function canonicalizeReceiptForSig(receipt: PaymentReceipt): string; /** Write-boundary twin of canonicalizeReceiptForSig(). * * Emits the same bytes as canonicalizeReceiptForSig() for every value it accepts. The only difference * is that an integer-valued number outside the interoperable IEEE 754 range is * refused instead of serialized. Use at signing and new-write boundaries ONLY: * canonicalizeReceiptForSig() stays unrestricted so an artifact signed before this rule keeps * verifying. */ export declare function canonicalizeReceiptForSigForWrite(receipt: PaymentReceipt): string; export declare function canonicalizeDenialForId(denial: PaymentDenial): string; /** Write-boundary twin of canonicalizeDenialForId(). * * Emits the same bytes as canonicalizeDenialForId() for every value it accepts. The only difference * is that an integer-valued number outside the interoperable IEEE 754 range is * refused instead of serialized. Use at signing and new-write boundaries ONLY: * canonicalizeDenialForId() stays unrestricted so an artifact signed before this rule keeps * verifying. */ export declare function canonicalizeDenialForIdForWrite(denial: PaymentDenial): string; export declare function canonicalizeDenialForSig(denial: PaymentDenial): string; /** Write-boundary twin of canonicalizeDenialForSig(). * * Emits the same bytes as canonicalizeDenialForSig() for every value it accepts. The only difference * is that an integer-valued number outside the interoperable IEEE 754 range is * refused instead of serialized. Use at signing and new-write boundaries ONLY: * canonicalizeDenialForSig() stays unrestricted so an artifact signed before this rule keeps * verifying. */ export declare function canonicalizeDenialForSigForWrite(denial: PaymentDenial): string; /** * Canonicalize a PaymentInvoice for round-trip equality testing. * Invoices are not signed (the rail's settlement proof is the * settled-state evidence; the invoice is a payment request). This * helper exists so callers can hash an invoice for content-addressed * lookup and confirm two invoice objects represent the same request. */ export declare function canonicalizeInvoice(invoice: PaymentInvoice): string; /** sha256 hex of an invoice's canonical form. Useful for indexing. */ export declare function invoiceDigest(invoice: PaymentInvoice): string; //# sourceMappingURL=canonicalize.d.ts.map