import { Address } from 'viem'; /** * All supported currency symbols. Single source of truth for the SDK. * * Lives alongside the country metadata so that adding a currency is a * single-folder operation: drop a new file in `currencies/.ts`, add it * to this map, and both `COUNTRY_OPTIONS` and `ZodCurrencySchema` pick it up. */ declare const CURRENCY: { readonly IDR: "IDR"; readonly INR: "INR"; readonly BRL: "BRL"; readonly ARS: "ARS"; readonly MEX: "MEX"; readonly VEN: "VEN"; readonly BOB: "BOB"; readonly EUR: "EUR"; readonly NGN: "NGN"; readonly USD: "USD"; readonly COP: "COP"; readonly CUP: "CUP"; readonly ECU: "ECU"; readonly PEN: "PEN"; readonly PHP: "PHP"; }; /** Union of supported currency codes. */ type CurrencyCode = (typeof CURRENCY)[keyof typeof CURRENCY]; /** * Minimal viem PublicClient interface — consumers pass their own client. * The SDK uses `readContract` for single reads and `multicall` where available * to batch multiple reads into one RPC round-trip. */ interface PublicClientLike { readContract(args: { address: Address; abi: readonly unknown[]; functionName: string; args: readonly unknown[]; }): Promise; multicall?(args: { contracts: readonly { address: Address; abi: readonly unknown[]; functionName: string; args?: readonly unknown[]; }[]; allowFailure?: boolean; }): Promise; } declare class SdkError extends Error { readonly code: TCode; readonly cause?: unknown; readonly context?: Record; constructor(message: string, options: { code: TCode; cause?: unknown; context?: Record; }); } declare const VERSION: string; export { type CurrencyCode, type PublicClientLike, SdkError, VERSION };