import { type Chain, type Client, type Transport } from "viem"; import { type GetEntryPointFromAccount, type SmartContractAccount } from "../../account/smartContractAccount.js"; import type { UserOperationStruct } from "../../types.js"; import type { BuildUserOperationParameters, UserOperationContext } from "./types"; /** * Builds a user operation using the provided client and operation parameters. Ensures that the account exists and the client is compatible. * * @example * ```ts * import { createSmartAccountClient } from "@aa-sdk/core"; * * // smart account client is already extended with buildUserOperation * const client = createSmartAccountClient(...); * const result = await client.buildUserOperation({ * uo: { * target: "0x...", * data: "0x...", // or "0x", * value: 0n, // optional * }, * account, // only required if the client above is not connected to an account * }); * ``` * * @param {Client} client_ the client instance used to build the user operation * @param {BuildUserOperationParameters} args the parameters required to build the user operation, including account, overrides, and context * @returns {Promise>} a promise that resolves to a `UserOperationStruct` object containing the built user operation details */ export declare function buildUserOperation = GetEntryPointFromAccount>(client_: Client, args: BuildUserOperationParameters): Promise>;