import { WalletClient, Address, Hex, Hash, Chain, Transport, LocalAccount } from 'viem'; type EOAWalletClient = WalletClient & { sendTransaction: (args: { to: Address; value?: bigint; data?: Hex; }) => Promise; getAddress: () => Address; }; declare const createEOAWalletClient: (privateKey: Hex, chain: Chain, transport?: Transport) => EOAWalletClient; type SimpleSmartAccount = LocalAccount & { signUserOperation: (userOp: any) => Promise; getInitCode: () => Promise; getDummySignature: () => Promise; entryPoint: Address; }; declare function toSimpleSmartAccount(parameters: { client: any; owner: LocalAccount; factoryAddress: Address; entryPoint: { address: Address; version: '0.6' | '0.7'; }; salt?: bigint; index?: bigint; }): Promise; /** * Common Pack Logic for v0.7 UserOperations */ declare function packUserOpLimits(high: bigint, low: bigint): Hex; /** * Local implementation of EntryPoint v0.7 getUserOpHash */ declare function getUserOpHash(op: any, ep: Address, chainId: number): Hex; /** * UserOperation Client for handling high-level flows */ declare class UserOpClient { static estimateGas(bundler: any, op: any, entryPoint: Address): Promise; static sendUserOp(bundler: any, op: any, entryPoint: Address): Promise; static getReceipt(bundler: any, hash: Hex): Promise; } export { type EOAWalletClient, type SimpleSmartAccount, UserOpClient, createEOAWalletClient, getUserOpHash, packUserOpLimits, toSimpleSmartAccount };