/** * Client-Side Balance Calculator * * Calculates spendable shielded balance from UTXOs without requiring backend API calls. * Uses the same UTXO fetching logic as unshield operations. * Includes caching to avoid repeated API calls. */ import type { Signer } from 'ethers'; export interface TokenBalance { tokenAddress: string; symbol: string; spendable: string; balance: string; } export interface PrivacyBalanceResult { eoa: string; balances: TokenBalance[]; } /** * Calculate spendable shielded balance client-side * * Uses the same UTXO fetching logic as unshield operations. * No backend API calls needed - all computation happens in browser. * Includes caching to avoid repeated API calls. * * @param signer - Ethers signer * @param network - Network ('mainnet' or 'testnet') * @param forceRefresh - Force refresh even if cache is valid * @returns Spendable balance per token */ export declare function calculateSpendableBalance(signer: Signer, network?: 'mainnet' | 'testnet', forceRefresh?: boolean): Promise; /** * Get spendable balance for a specific token * Uses cached UTXOs if available * * @param signer - Ethers signer * @param token - Token symbol (USD1, USDT, USDC) * @param network - Network ('mainnet' or 'testnet') * @param forceRefresh - Force refresh even if cache is valid * @returns Spendable balance in wei (as string) */ export declare function getTokenSpendableBalance(signer: Signer, token: string, network?: 'mainnet' | 'testnet', forceRefresh?: boolean): Promise; /** * Clear UTXO cache for a specific address or all addresses * * @param address - Optional address to clear cache for. If not provided, clears all. */ export declare function clearUTXOCache(address?: string): void;