export interface Balance { asset: string; amount: string; decimals: number; } export interface SendResult { transaction_hash: string; transaction_link?: string; network?: string; } export interface SignedTypedData { signature: string; address: string; } export type Eip712TypedData = { domain: Record; types: Record; primary_type: string; message: Record; }; export type Asset = 'usdc' | 'eth'; export interface WalletProvider { getAddress(): Promise; getBalance(asset?: Asset): Promise; signTypedData(typed: Eip712TypedData, idempotencyKey?: string): Promise; send(to: string, amount: string, asset?: Asset, network?: string): Promise; getOnrampUrl(amountUsd?: number, network?: string): Promise; }