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;
export declare function canonicalizeReceiptForSig(receipt: PaymentReceipt): string;
export declare function canonicalizeDenialForId(denial: PaymentDenial): string;
export declare function canonicalizeDenialForSig(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