export { BASE_CHAIN_ID } from "./chains.js"; export type HexString = `0x${string}`; export declare const X402_VERSION = 1; export declare const X402_SCHEME = "exact"; export declare const X402_NETWORK = "base"; export declare const X402_TOKEN_SYMBOL = "usdc"; export declare const X402_USDC_CONTRACT: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"; export declare const X402_PAY_TO_ADDRESS = "0xa6a8736f18f383f1cc2d938576933e5ea7df01a1"; export declare const X402_VALUE_MICRO_USDC = "1000"; export declare const X402_VALUE_USDC_DISPLAY = "0.001"; export declare const X402_AUTH_VALID_AFTER = "0"; export declare const X402_AUTH_TTL_SECONDS = 300; export declare const USDC_EIP712_DOMAIN_NAME = "USD Coin"; export declare const USDC_EIP712_DOMAIN_VERSION = "2"; export declare const X402_TRANSFER_PRIMARY_TYPE = "TransferWithAuthorization"; export type X402AuthorizationPayload = { from: string; to: string; value: string; validAfter: string; validBefore: string; nonce: HexString; }; export type X402PaymentPayload = { x402Version: number; scheme: string; network: string; payload: { signature: string; authorization: X402AuthorizationPayload; }; }; export type X402TypedDataDomain = { name: string; version: string; chainId: number; verifyingContract: HexString; }; export type X402TypedDataTypes = { EIP712Domain: Array<{ name: string; type: string; }>; TransferWithAuthorization: Array<{ name: string; type: string; }>; }; export type X402ValidationPolicy = { requiredNetwork?: string; requiredPayTo?: string; requiredValue?: string; requireUnexpired?: boolean; nowSeconds?: number; }; export type FarcasterX402Spec = { network: typeof X402_NETWORK; tokenSymbol: typeof X402_TOKEN_SYMBOL; token: X402TypedDataDomain["verifyingContract"]; payTo: X402AuthorizationPayload["to"]; amount: X402AuthorizationPayload["value"]; amountDisplay: typeof X402_VALUE_USDC_DISPLAY; defaultValidAfter: typeof X402_AUTH_VALID_AFTER; authTtlSeconds: typeof X402_AUTH_TTL_SECONDS; domain: X402TypedDataDomain; types: X402TypedDataTypes; primaryType: typeof X402_TRANSFER_PRIMARY_TYPE; }; export type FarcasterX402SigningRequest = FarcasterX402Spec & { authorization: X402AuthorizationPayload; validAfter: number; validBefore: number; encodePayment(signature: string): string; }; export declare function createX402AuthorizationNonce(): HexString; export declare function buildX402AuthorizationPayload(params: { from: string; to?: string; value?: string | number | bigint; validAfter?: string | number | bigint; validBefore: string | number | bigint; nonce?: string; }): X402AuthorizationPayload; export declare function buildX402PaymentPayload(params: { signature: string; authorization: X402AuthorizationPayload; x402Version?: number; scheme?: string; network?: string; }): X402PaymentPayload; export declare function buildX402TypedDataDomain(overrides?: Partial): X402TypedDataDomain; export declare function buildX402TypedDataTypes(): X402TypedDataTypes; export declare function buildFarcasterX402Spec(): FarcasterX402Spec; export declare function buildFarcasterX402SigningRequest(params: { payerAddress: string; nowSeconds?: number; validAfter?: number; validBefore?: number; ttlSeconds?: number; nonce?: string; }): FarcasterX402SigningRequest; export declare function encodeX402PaymentPayload(payload: X402PaymentPayload): string; export declare function assertX402PaymentPayload(value: unknown): X402PaymentPayload; export declare function isX402PaymentPayload(value: unknown): value is X402PaymentPayload; export declare function decodeX402PaymentPayload(xPaymentBase64: string): X402PaymentPayload; export declare function validateX402PaymentPayload(payload: X402PaymentPayload, policy?: X402ValidationPolicy): X402PaymentPayload; export declare function decodeAndValidateX402PaymentPayload(xPaymentBase64: string, policy?: X402ValidationPolicy): X402PaymentPayload;