import type { Chain, Transport } from "viem";
import type { GetAccountParameter, GetEntryPointFromAccount, SmartContractAccount } from "../../../account/smartContractAccount";
import type { BaseSmartAccountClient } from "../../../client/smartAccountClient";
import type { SendUserOperationResult } from "../../../client/types";
import type { UserOperationOverrides, UserOperationStruct } from "../../../types";
import type { GetContextParameter, UserOperationContext } from "../types";
export declare function _sendUserOperation<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: BaseSmartAccountClient<TTransport, TChain, TAccount>, args: {
    uoStruct: UserOperationStruct<TEntryPointVersion>;
    overrides?: UserOperationOverrides<TEntryPointVersion>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>): Promise<SendUserOperationResult<TEntryPointVersion>>;
