import { type Chain, type Client, type SendTransactionParameters, type Transport } from "viem";
import type { GetEntryPointFromAccount, SmartContractAccount } from "../../account/smartContractAccount.js";
import type { UserOperationOverrides, UserOperationStruct } from "../../types.js";
import type { UserOperationContext } from "./types.js";
export declare function buildUserOperationFromTx<TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TChainOverride extends Chain | undefined = Chain | undefined, TContext extends UserOperationContext | undefined = UserOperationContext | undefined, TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>>(client: Client<Transport, TChain, TAccount>, args: SendTransactionParameters<TChain, TAccount, TChainOverride>, overrides?: UserOperationOverrides<TEntryPointVersion>, context?: TContext): Promise<UserOperationStruct<TEntryPointVersion>>;
