/** * Multi-ledger x402 receipt normalization helpers. * * x402 paid MCP servers are starting to advertise non-Base payment rails. Buyer * agents need one normalized receipt envelope before signing, with explicit * ledger, asset, settlement target, verification state, and custody boundary. */ export type X402LedgerNamespace = 'eip155' | 'xrpl' | 'tvm' | 'solana' | 'other'; export type X402VerificationStatus = 'verified' | 'pending' | 'unsupported_refused' | 'failed' | 'unknown'; export type X402CustodyBoundary = 'non-custodial' | 'facilitator' | 'managed' | 'unknown'; export type X402MultiLedgerReceipt = { schema: 'agentpay-x402-multi-ledger-receipt/v1'; observedAt: string; source: { name: string; repo?: string; evidenceUrl?: string; pushedAt?: string; }; payment: { x402Version: string; paymentHeader: 'Payment-Signature'; receiptHeader: 'payment-response'; }; ledger: { label: string; namespace: X402LedgerNamespace; chainId?: string | number; }; settlement: { asset: string; target: string; reference?: string; }; verification: { status: X402VerificationStatus; verifier?: string; checkedAt: string; }; boundary: { custody: X402CustodyBoundary; nonCustodial: boolean; description: string; }; unsupportedLedgerRefusal?: string; }; export type X402MultiLedgerReceiptPolicy = { supportedLedgerNamespaces: X402LedgerNamespace[]; allowedAssets: string[]; allowedSettlementTargets: string[]; requireNonCustodialBoundary: boolean; requireVerifiedReceipt: boolean; allowUnsupportedRefusalProof: boolean; }; export type X402MultiLedgerReceiptDecision = { ok: boolean; decision: 'allow' | 'deny'; failures: string[]; warnings: string[]; }; export declare function evaluateX402MultiLedgerReceipt(receipt: X402MultiLedgerReceipt, policy: X402MultiLedgerReceiptPolicy, now?: Date): X402MultiLedgerReceiptDecision; export declare function buildAgentPayBaseReceiptExample(): X402MultiLedgerReceipt; export declare function buildXrplUnsupportedRefusalExample(): X402MultiLedgerReceipt; //# sourceMappingURL=x402-multi-ledger-receipt.d.ts.map