import type { Chain, Client, Transport } from "viem";
import type { GetEntryPointFromAccount, SmartContractAccount } from "../../account/smartContractAccount";
import type { SendUserOperationResult } from "../../client/types";
import type { DropAndReplaceUserOperationParameters, UserOperationContext } from "./types";
export declare function dropAndReplaceUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends UserOperationContext | undefined = UserOperationContext | undefined, TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>>(client: Client<TTransport, TChain, TAccount>, args: DropAndReplaceUserOperationParameters<TAccount, TContext>): Promise<SendUserOperationResult<TEntryPointVersion>>;
