import { Web3Client } from '../clients/Web3Client'; import { IErc4337Info } from './models/IErc4337Info'; import { EoAccount, Erc4337Account } from '../models/TAccount'; import { Erc4337Service } from './Erc4337Service'; import { UserOperation } from './models/UserOperation'; import { IBlockchainExplorer } from '../explorer/IBlockchainExplorer'; import { TAddress } from '../models/TAddress'; import { TxWriter } from '../txs/TxWriter'; import { TEth } from '../models/TEth'; export declare class Erc4337TxWriter { client: Web3Client; explorer: IBlockchainExplorer; info: IErc4337Info; service: Erc4337Service; constructor(client: Web3Client, explorer: IBlockchainExplorer, info: IErc4337Info); getAccount(owner: EoAccount): Promise; ensureAccount(params: { owner: EoAccount; submitter?: EoAccount; salt?: bigint; }): Promise<{ accountAddress: TAddress; op?: UserOperation; opHash?: string; writer?: TxWriter; }>; prepareUserOp(params: { erc4337Account?: { address?: TAddress; salt?: bigint; }; tx: TEth.TxLike; owner: EoAccount; nonceSalt?: bigint; }): Promise<{ op: { sender: TAddress; nonce: bigint; initCode: TEth.Hex; callData: TEth.Hex; callGasLimit: bigint; verificationGasLimit: bigint; preVerificationGas: bigint; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; paymasterAndData: TEth.Hex; signature: TEth.Hex; }; opHash: string; }>; submitUserOpViaEntryPointWithOwner(params: { erc4337Account?: { address?: TAddress; salt?: bigint; }; tx: TEth.TxLike; owner: EoAccount; submitter?: EoAccount; }): Promise<{ op: { sender: TAddress; nonce: bigint; initCode: TEth.Hex; callData: TEth.Hex; callGasLimit: bigint; verificationGasLimit: bigint; preVerificationGas: bigint; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; paymasterAndData: TEth.Hex; signature: TEth.Hex; }; opHash: string; writer: any; }>; submitUserOp(submitter: EoAccount, signedOp: UserOperation): Promise; }