/** * Buyer-side USDC spend budgets for createX402Fetch. * * Amounts in PAYMENT-REQUIRED accepts[] are atomic token units (USDC = 6 decimals * unless `extra.decimals` says otherwise). */ export declare const DEFAULT_MAX_SINGLE_SPEND_USDC = 0.05; export declare const DEFAULT_MAX_TOTAL_SPEND_USDC = 1; /** Default USDC / stablecoin decimals when the accept does not advertise one. */ export declare const DEFAULT_ASSET_DECIMALS = 6; export type BudgetLimits = { maxSingleSpendUsdc: number; maxTotalSpendUsdc: number; }; export type BudgetTracker = { /** Cumulative USDC spent (signed) on this fetch instance. */ totalSpentUsdc: number; readonly limits: BudgetLimits; }; export declare function createBudgetTracker(limits?: Partial): BudgetTracker; /** Read asset decimals from accept.extra, falling back to USDC 6. */ export declare function decimalsFromAccept(extra: Record | undefined): number; /** Atomic token units → USDC (or token) decimal number. */ export declare function atomicToUsdc(amountAtomic: string | bigint, decimals?: number): number; export declare function usdcFromAccept(accept: { amount?: string; extra?: Record; }): number; /** * Enforce single + total budgets before signing. * @throws Error with a clear budget message when exceeded */ export declare function assertWithinBudget(amountUsdc: number, tracker: BudgetTracker): void; export declare function recordSpend(tracker: BudgetTracker, amountUsdc: number): void;