import { Address, Hash, Hex, PublicClient, SignTypedDataReturnType, TypedData, TypedDataDomain, WalletClient } from 'viem'; import { AbstractEVMWallet } from './abstractWallet'; export declare class EVMWallet extends AbstractEVMWallet { private readonly signer; private readonly publicClient; private readonly account; constructor(signer: WalletClient, publicClient: PublicClient); /** * Sign a hex string * * @param {string} hexMsg - The hex message to be signed. * @return {Promise} A promise that resolves to the signature */ sign(hexMsg: string): Promise; getPublicClient(): PublicClient; /** * Makes a contract call * * @param contractCallConfig * @param {string} contractCallConfig.to - Address you're interacting with * @param {string} contractCallConfig.data - Calldata to be executed * @param {string} [contractCallConfig.from] - Address you're sending from. If not provided then the current wallet address will be used * @param {string} [contractCallConfig.value] - Value you're sending * * @returns {Promise} */ contractCall(contractCallConfig: { to: Address; data: Hex; from?: Address; value?: bigint; }): Promise; /** * Get wallet address * * @returns {Promise
} */ getAddress(): Promise
; /** * Makes an RPC call * * @param {string} method - RPC method name * @param {unknown[] | Record} params - RPC method params * * @returns {Promise} */ rpc(method: string, params: unknown[] | Record): Promise; /** * Sign typed data wrapper * * @param {TypedDataDomain} domain * @param {Record} types * @param {Record} value * @param {string} primaryType * * @returns {Promise} */ signTypedData(domain: TypedDataDomain, types: Record, value: Record, primaryType: string): Promise; /** * Get wallet signer * * @returns {JsonRpcSigner | Wallet} */ getSigner(): WalletClient; }