import { ChainAddress, ChainWallet } from "../IChainWallet"; import { Balance, ChainWalletConfig, UserTokenBalance, TokenInfo, TransactionResult, NFT, WalletDiscoveryOptions, WalletDiscoveryResult, PocketDiscoveryOptions } from "../types"; import { VM } from "../vm"; import { JsonRpcProvider } from "ethers"; import { EVMTransactionHistoryItem } from "./transactionParsing"; import { Hex, Call, WalletClient, PublicClient } from "viem"; import { EVMSmartWallet } from "./smartWallet"; import { SmartWalletOptions } from "./aa-service"; import { PriceResponse } from "../price.types"; import { Account } from "viem/accounts"; export declare const createEvmPublicClient: (config: ChainWalletConfig) => PublicClient; export declare const createEvmWalletClient: (config: ChainWalletConfig, account: Account) => WalletClient; export declare const getEvmTransactionHistorySafe: (connection: PublicClient, address: string) => Promise; export declare const getSvmPricesForTokens: (config: ChainWalletConfig, tokenAddresses: string[]) => Promise; export declare const getEvmNativeBalance: (address: string, connection: PublicClient) => Promise; export declare const getEvmTokenBalance: (address: string, tokenAddress: string, connection: PublicClient) => Promise; export declare const discoverEvmTokens: (address: string, config: ChainWalletConfig) => Promise[]>; export declare const discoverEvmNFTs: (address: string, config: ChainWalletConfig) => Promise; export declare class EVMVM extends VM { derivationPath: string; constructor(seed: string); getTokenInfo: (tokenAddress: Hex, client: PublicClient) => Promise; static getTokenInfo: (tokenAddress: Hex, client: PublicClient) => Promise; generatePrivateKey(index: number, seed?: string, mnemonic?: string, derivationPath?: string): { privateKey: string; index: number; }; static generateMnemonicFromPrivateKey(privateKey: string): string; static fromMnemonic(mnemonic: string): VM; static validateAddress(address: string, requireChecksum?: boolean): boolean; static normalizeAddress(address: string): string; static getNativeBalance(address: string, connection: PublicClient): Promise; static getTokenBalance(address: string, tokenAddress: string, connection: PublicClient): Promise; static convertFromEntropyToPrivateKey: (entropy: string) => string; discoverWallets(connection: JsonRpcProvider | PublicClient, options?: WalletDiscoveryOptions): Promise; private checkWalletBalance; private sleep; discoverPockets(connection: JsonRpcProvider | PublicClient, options?: PocketDiscoveryOptions): Promise; private checkPocketBalance; } export declare class EVMChainAddress extends ChainAddress { constructor(config: ChainWalletConfig, address: string, index?: number); getNativeBalance(): Promise; getTokenBalance(tokenAddress: string): Promise; discoverToken(): Promise[]>; discoverNFT(): Promise; getTransactionHistory(): Promise; estimateGas(transaction: Call): Promise; getPrices(tokenAddresses: string[]): Promise; } export declare class EVMChainWallet extends ChainWallet { wallet: WalletClient; private smartWallet?; constructor(config: ChainWalletConfig, privateKey: string, index: number); private isAASupportedByChain; convertFromEntropyToPrivateKey: (entropy: string) => string; private isSmartWalletInitialized; private validateAAAvailability; extend(options?: SmartWalletOptions): Promise; hasSmartWallet(): boolean; getSmartWallet(): EVMSmartWallet | undefined; getSmartWalletAddress(): string | undefined; getWallet(): WalletClient; generateAddress(): string; getNativeBalance(): Promise; getTokenBalance(tokenAddress: string): Promise; getTokenInfo(tokenAddress: string): Promise; discoverToken(): Promise[]>; discoverNFT(): Promise; transferNative(to: string, amount: number): Promise; transferToken(tokenAddress: TokenInfo, to: string, amount: number): Promise; getTransactionHistory(): Promise; getPrices(tokenAddresses: string[]): Promise; swap(tokenAddress: TokenInfo, to: string, amount: number, slippage?: number): Promise; private fail; approveToken(params: { tokenAddress: string; spender: string; amountRaw: string | bigint; confirmations?: number; gasLimit?: string | bigint; }): Promise; signMessage(message: string): Promise; }