import { Address } from 'viem'; declare class WalletAgent { private account; private walletClient; private isReadonly; constructor(config?: { privateKey?: string; mode?: 'readonly' | 'transaction'; } | string); connect(): Promise; disconnect(): Promise; getAddress(): Address | null; isTransactionMode(): boolean; getWalletInfo(): Promise<{ address: `0x${string}`; nativeBalance: string; nativeBalanceUSD: string; tokens: { symbol: string; address: `0x${string}`; balance: string; balanceUSD: string; price: number; decimals: number; }[]; totalPortfolioUSD: string; network: { chainId: number; name: string; rpcUrl: string; }; mode: string; }>; getMarketData(cTokenAddress: Address): Promise<{ exchangeRate: string; supplyRatePerBlock: string; borrowRatePerBlock: string; totalSupply: string; totalBorrows: string; cash: string; }>; getAllMarkets(): Promise<{ symbol: string; underlyingSymbol: string; cTokenAddress: "0x20A2Cbc68fbee094754b2F03d15B1F5466f1F649" | "0x287770f1236AdbE3F4dA4f29D0f1a776f303C966" | "0xA7247a6f5EaC85354642e0E90B515E2dC027d5F4" | "0xa024B1DE3a6022FB552C2ED9a8050926Fb22d7b6" | "0x2029f3E3C667EBd68b1D29dbd61dc383BdbB56e5" | "0x8A424cCf2D2B7D85F1DFb756307411D2BBc73e07"; underlyingAddress: "0xd077a400968890eacc75cdc901f0356c943e4fdb" | "0xEf82b1C6A550e730D8283E1eDD4977cd01FAF435" | "0x02cbE46fB8A1F579254a9B485788f2D86Cad51aa" | "0xD068c52d81f4409B9502dA926aCE3301cc41f623" | "0x42952B873ed6f7f0A7E4992E2a9818E3A9001995" | "0x0000000000000000000000000000000000000000"; supplyApy: string; borrowApy: string; totalSupply: string; totalBorrows: string; cash: string; utilizationRate: string; exchangeRate: string; price: number; isListed: boolean; }[]>; getAccountLiquidity(accountAddress?: Address): Promise<{ liquidity: string; shortfall: string; healthFactor: number; totalCollateralUSD: number; totalBorrowUSD: number; positions: { cTokenAddress: `0x${string}`; symbol: "KAIA" | "USDT" | "SIX" | "BORA" | "MBX" | "STAKED_KAIA"; underlyingSymbol: "KAIA" | "USDT" | "SIX" | "BORA" | "MBX" | "STAKED_KAIA"; supplyBalance: string; borrowBalance: string; supplyValueUSD: number; borrowValueUSD: number; collateralFactor: string; isCollateral: boolean; }[]; }>; private getUserPosition; getProtocolStats(): Promise<{ totalTVL: number; totalBorrows: number; utilization: number; markets: { symbol: string; underlyingSymbol: string; cTokenAddress: "0x20A2Cbc68fbee094754b2F03d15B1F5466f1F649" | "0x287770f1236AdbE3F4dA4f29D0f1a776f303C966" | "0xA7247a6f5EaC85354642e0E90B515E2dC027d5F4" | "0xa024B1DE3a6022FB552C2ED9a8050926Fb22d7b6" | "0x2029f3E3C667EBd68b1D29dbd61dc383BdbB56e5" | "0x8A424cCf2D2B7D85F1DFb756307411D2BBc73e07"; underlyingAddress: "0xd077a400968890eacc75cdc901f0356c943e4fdb" | "0xEf82b1C6A550e730D8283E1eDD4977cd01FAF435" | "0x02cbE46fB8A1F579254a9B485788f2D86Cad51aa" | "0xD068c52d81f4409B9502dA926aCE3301cc41f623" | "0x42952B873ed6f7f0A7E4992E2a9818E3A9001995" | "0x0000000000000000000000000000000000000000"; supplyApy: string; borrowApy: string; totalSupply: string; totalBorrows: string; cash: string; utilizationRate: string; exchangeRate: string; price: number; isListed: boolean; }[]; prices: Record; timestamp: string; }>; checkAllowance(tokenSymbol: string, spenderAddress: Address): Promise; approveToken(tokenSymbol: string, spenderAddress: Address, amount?: string): Promise; checkMarketMembership(cTokenAddress: Address): Promise; enterMarkets(cTokenAddresses: Address[]): Promise; sendNativeToken(to: Address, amount: string): Promise; sendERC20Token(tokenSymbol: string, to: Address, amount: string): Promise; supplyToMarket(tokenSymbol: string, amount: string): Promise; borrowFromMarket(tokenSymbol: string, amount: string): Promise; repayBorrow(tokenSymbol: string, amount?: string): Promise; redeemTokens(tokenSymbol: string, cTokenAmount: string): Promise; redeemUnderlying(tokenSymbol: string, underlyingAmount: string): Promise; getSwapQuote(params: { tokenIn: string; tokenOut: string; amountIn: string; amountInDecimals?: number; slippage?: number; }): Promise; executeSwap(params: { tokenIn: string; tokenOut: string; amountIn: string; amountInDecimals?: number; slippage?: number; recipient?: string; deadline?: number; }): Promise; getPoolInfo(token0: string, token1: string, fee: number): Promise<{ address: `0x${string}`; token0: Address; token1: Address; fee: number; liquidity: string; sqrtPriceX96: string; tick: number; token0Price: string; token1Price: string; feeTierName: string; balance0: string; balance1: string; } | null>; getAllPools(token0: string, token1: string): Promise<{ address: `0x${string}`; token0: Address; token1: Address; fee: number; liquidity: string; sqrtPriceX96: string; tick: number; token0Price: string; token1Price: string; feeTierName: string; balance0: string; balance1: string; }[]>; getBestRoute(params: { tokenIn: string; tokenOut: string; amountIn: string; amountInDecimals?: number; }): Promise<{ type: string; route: any; quote: any; gasEstimate: any; }>; private calculateQuoteFromPool; private calculateAmountOutFromSqrtPrice; private getSwapTokenDecimals; private getSwapTokenBalance; private approveSwapToken; private parseTokenSymbol; private getTokenSymbol; private getFeeTierName; private requireTransactionMode; /** * Get the correct number of decimals for a KiloLend token * @param tokenSymbol The token symbol (e.g., 'USDT', 'KAIA', 'BORA') * @returns Number of decimals for the token */ private getKiloLendTokenDecimals; getTokenBalance(tokenAddress: Address, accountAddress: Address): Promise; private getTokenDecimals; private fetchPrices; private getTokenPrice; waitForTransaction(txHash: string): Promise; private calculateLiquidityScore; private calculatePriceImpact; private selectBestQuote; private getOptimalFeeTiers; private categorizeTradeSize; wrapKaia(amount: string): Promise; unwrapKaia(amount: string): Promise; getWkaiaBalance(accountAddress?: Address): Promise; } export { WalletAgent };