import { WalletClientBase, Signature, EvmChain, Balance, ToolBase } from '@goat-sdk/core'; import { Token } from './tokens.mjs'; import { EVMTransaction } from './types/EVMTransaction.mjs'; import { EVMReadRequest } from './types/EVMReadRequest.mjs'; import { EVMReadResult } from './types/EVMReadResult.mjs'; import { EVMTypedData } from './types/EVMTypedData.mjs'; import 'abitype'; type ApproveParameters = { tokenAddress: `0x${string}`; spender: `0x${string}`; amount: string; }; type GetTokenAllowanceParameters = { tokenAddress: `0x${string}`; owner: `0x${string}`; spender: `0x${string}`; }; type TransferFromParameters = { tokenAddress: `0x${string}`; from: `0x${string}`; to: `0x${string}`; amount: string; }; type EVMWalletClientCtorParams = { tokens?: Token[]; enableSend?: boolean; }; declare abstract class EVMWalletClient extends WalletClientBase { protected tokens: Token[]; protected enableSend: boolean; constructor({ tokens, enableSend }?: EVMWalletClientCtorParams); abstract sendTransaction(transaction: EVMTransaction): Promise<{ hash: string; }>; abstract read(request: EVMReadRequest): Promise; abstract getNativeBalance(): Promise; abstract signTypedData(data: EVMTypedData): Promise; abstract getChain(): EvmChain; balanceOf(address: string, tokenAddress?: `0x${string}`): Promise; getTokenInfoByTicker(ticker: string): Promise<{ symbol: string; contractAddress: string; decimals: number; name: string; }>; _getTokenDecimals(tokenAddress?: `0x${string}`): Promise; convertToBaseUnits(params: { amount: string; tokenAddress?: `0x${string}`; }): Promise; convertFromBaseUnits(params: { amount: string; tokenAddress?: `0x${string}`; }): Promise; sendToken(params: { recipient: `0x${string}`; amountInBaseUnits: string; tokenAddress?: `0x${string}`; }): Promise<{ hash: string; }>; getTokenAllowance(params: GetTokenAllowanceParameters): Promise; approve(params: ApproveParameters): Promise<{ hash: string; }>; revokeApproval(params: { tokenAddress: `0x${string}`; spender: `0x${string}`; }): Promise<{ hash: string; }>; getCoreTools(): ToolBase[]; } export { type ApproveParameters, EVMWalletClient, type EVMWalletClientCtorParams, type GetTokenAllowanceParameters, type TransferFromParameters };