import { Abi, TypedDataDomain as TypedDataDomain$1 } from 'abitype'; import { WalletClient, Signature } from './core.js'; import './chain.js'; declare function isEVMWalletClient(wallet: WalletClient): wallet is EVMWalletClient; type EVMTransaction = { to: string; functionName?: string; args?: unknown[]; value?: bigint; abi?: Abi; options?: EVMTransactionOptions; }; type EVMTransactionOptions = { paymaster?: { address: `0x${string}`; input: `0x${string}`; }; }; type EVMReadRequest = { address: string; functionName: string; args?: unknown[]; abi: Abi; }; type EVMTransactionResult = { hash: string; status: string; }; type EVMReadResult = { value: unknown; }; type EVMTypedData = { domain: TypedDataDomain; types: Record; primaryType: string; message: Record; }; type TypedDataDomain = TypedDataDomain$1; interface EVMWalletClient extends WalletClient { sendTransaction: (transaction: EVMTransaction) => Promise; read: (request: EVMReadRequest) => Promise; resolveAddress: (address: string) => Promise<`0x${string}`>; signTypedData: (data: EVMTypedData) => Promise; } export { type EVMReadRequest, type EVMReadResult, type EVMTransaction, type EVMTransactionOptions, type EVMTransactionResult, type EVMTypedData, type EVMWalletClient, type TypedDataDomain, isEVMWalletClient };