/** * Utility to convert x402 payment payloads between v1 and v2 formats. * * V1 PaymentPayload format: * { * "x402Version": 1, * "scheme": "exact", * "network": "solana", * "payload": { ... } * } * * V2 PaymentPayload format: * { * "x402Version": 2, * "resource": { "url": "...", "description": "...", "mimeType": "..." }, * "accepted": { "scheme": "exact", "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", ... }, * "payload": { ... } * } */ declare const NETWORK_V1_TO_V2: Record; declare const NETWORK_V2_TO_V1: Record; /** * Convert CAIP-2 network identifier to simple v1 network name */ declare function networkV2ToV1(caip2Network: string): string; /** * Convert simple v1 network name to CAIP-2 identifier */ declare function networkV1ToV2(v1Network: string): string; type X402Version = 1 | 2; interface V1PaymentPayload { x402Version: 1; scheme: string; network: string; payload: { transaction?: string; signature?: string; authorization?: unknown; }; facilitatorUrl?: string; } interface V2PaymentPayload { x402Version: 2; resource: { url: string; description?: string; mimeType?: string; }; accepted: { scheme: string; network: string; amount?: string; maxAmountRequired?: string; asset?: string; payTo?: string; maxTimeoutSeconds?: number; extra?: Record; }; payload: { transaction?: string; signature?: string; authorization?: unknown; }; facilitatorUrl?: string; } type PaymentPayload = V1PaymentPayload | V2PaymentPayload; /** * Detect x402 version from payload */ declare function detectPayloadVersion(payload: unknown): X402Version | null; /** * Convert v2 payment payload to v1 format */ declare function convertV2ToV1(v2Payload: V2PaymentPayload): V1PaymentPayload; /** * Convert v1 payment payload to v2 format */ declare function convertV1ToV2(v1Payload: V1PaymentPayload, resourceInfo?: { url?: string; description?: string; mimeType?: string; }): V2PaymentPayload; /** * Convert payment payload to target version */ declare function convertPayloadToVersion(payload: PaymentPayload, targetVersion: X402Version, options?: { resourceInfo?: { url?: string; description?: string; mimeType?: string; }; }): PaymentPayload | null; /** * Normalize payment header for target x402 version */ declare function normalizePaymentHeader(base64Header: string, targetVersion: X402Version, options?: { resourceInfo?: { url?: string; description?: string; mimeType?: string; }; }): { header: string; payload: PaymentPayload; } | null; /** * Check if network is Solana-based */ declare function isSolanaNetwork(network: string): boolean; /** * Check if network is EVM-based */ declare function isEvmNetwork(network: string): boolean; /** * Convert USD amount to atomic units * @param usd - Amount in USD (e.g., 0.05) * @param decimals - Token decimals (default: 6 for USDC) * @returns Atomic units as string */ declare function toAtomicUnits(usd: number, decimals?: number): string; /** * Convert atomic units to USD amount * @param atomic - Atomic units (string or bigint) * @param decimals - Token decimals (default: 6 for USDC) * @returns USD amount as number */ declare function fromAtomicUnits(atomic: string | bigint, decimals?: number): number; /** * Format USD amount for display * @param usd - Amount in USD * @param maxDecimals - Maximum decimal places (default: 4) * @returns Formatted string */ declare function formatUsd(usd: number, maxDecimals?: number): string; export { NETWORK_V1_TO_V2, NETWORK_V2_TO_V1, type PaymentPayload, type V1PaymentPayload, type V2PaymentPayload, type X402Version, convertPayloadToVersion, convertV1ToV2, convertV2ToV1, detectPayloadVersion, formatUsd, fromAtomicUnits, isEvmNetwork, isSolanaNetwork, networkV1ToV2, networkV2ToV1, normalizePaymentHeader, toAtomicUnits };