import { SchemeNetworkServer, MoneyParser, Network, Price, AssetAmount, PaymentRequirements } from '@x402/core/types'; /** * EVM server implementation for the Upto payment scheme. * Handles price parsing, payment requirements enhancement, and default asset resolution. */ declare class UptoEvmScheme implements SchemeNetworkServer { readonly scheme = "upto"; private moneyParsers; /** * Registers a custom money parser for converting prices to asset amounts. * * @param parser - The money parser function to register * @returns This instance for chaining */ registerMoneyParser(parser: MoneyParser): UptoEvmScheme; /** * Returns the decimal precision of the default stablecoin for the given network. * Implements the optional AssetDecimalsProvider interface used by resolveSettlementOverrideAmount. * * @param _asset - The asset symbol (unused; defaults to the network's default stablecoin) * @param network - The network to look up the default asset for * @returns The number of decimal places for the asset */ getAssetDecimals(_asset: string, network: Network): number; /** * Parses a price into an asset amount for the given network. * * @param price - The price to parse (string, number, or AssetAmount) * @param network - The target network * @returns Promise resolving to an asset amount */ parsePrice(price: Price, network: Network): Promise; /** * Enhances payment requirements with upto-specific metadata. * * @param paymentRequirements - The base payment requirements * @param supportedKind - The supported scheme/network kind * @param supportedKind.x402Version - The x402 protocol version * @param supportedKind.scheme - The payment scheme name * @param supportedKind.network - The target network * @param supportedKind.extra - Optional extra metadata * @param extensionKeys - Extension keys to include * @returns Promise resolving to enhanced payment requirements */ enhancePaymentRequirements(paymentRequirements: PaymentRequirements, supportedKind: { x402Version: number; scheme: string; network: Network; extra?: Record; }, extensionKeys: string[]): Promise; /** * Parses a money string or number into a decimal value. * * @param money - The money value to parse * @returns The parsed decimal amount */ private parseMoneyToDecimal; /** * Converts a numeric dollar amount to an AssetAmount using the default token for the network. * * @param amount - The dollar amount as a number * @param network - The target network * @returns The converted asset amount with token metadata */ private defaultMoneyConversion; } export { UptoEvmScheme };