import { type Address, type Chain, type Client, type Hex, type SendTransactionParameters, type Transport, type TypedData } from "viem"; import type { GetAccountParameter, GetEntryPointFromAccount, SmartContractAccount } from "../../account/smartContractAccount"; import { type CheckGasSponsorshipEligibilityResult } from "../../actions/smartAccount/checkGasSponsorshipEligibility.js"; import { type SignMessageParameters } from "../../actions/smartAccount/signMessage.js"; import { type SignTypedDataParameters } from "../../actions/smartAccount/signTypedData.js"; import type { BuildTransactionParameters, BuildUserOperationFromTransactionsResult, BuildUserOperationParameters, DropAndReplaceUserOperationParameters, SendTransactionsParameters, SendUserOperationParameters, SignUserOperationParameters, UpgradeAccountParams, UserOperationContext, WaitForUserOperationTxParameters } from "../../actions/smartAccount/types"; import type { UserOperationOverrides, UserOperationRequest, UserOperationStruct } from "../../types"; import type { IsUndefined } from "../../utils"; import type { SendUserOperationResult } from "../types"; export type BaseSmartAccountClientActions = GetEntryPointFromAccount> = { buildUserOperation: (args: BuildUserOperationParameters) => Promise>; buildUserOperationFromTx: (args: SendTransactionParameters, overrides?: UserOperationOverrides, context?: TContext) => Promise>; buildUserOperationFromTxs: (args: BuildTransactionParameters) => Promise>; checkGasSponsorshipEligibility: = GetEntryPointFromAccount>(args: SendUserOperationParameters) => Promise>; signUserOperation: (args: SignUserOperationParameters) => Promise>; dropAndReplaceUserOperation: (args: DropAndReplaceUserOperationParameters) => Promise>; sendTransaction: (args: SendTransactionParameters, overrides?: UserOperationOverrides, context?: TContext) => Promise; sendTransactions: (args: SendTransactionsParameters) => Promise; sendUserOperation: (args: SendUserOperationParameters>) => Promise>; waitForUserOperationTransaction: (args: WaitForUserOperationTxParameters) => Promise; upgradeAccount: (args: UpgradeAccountParams) => Promise; signMessage: (args: SignMessageParameters) => Promise; signTypedData: (args: SignTypedDataParameters) => Promise; } & (IsUndefined extends false ? { getAddress: () => Address; } : { getAddress: (args: GetAccountParameter) => Address; }); /** * Provides a set of smart account client actions to decorate the provided client. These actions include building and signing user operations, sending transactions, and more. * * NOTE: this is already added to clients returned from `createSmartAccountClient` * * @param {Client} client The client to bind the smart account actions to * @returns {BaseSmartAccountClientActions} An object containing various smart account client actions */ export declare const smartAccountClientActions: (client: Client) => BaseSmartAccountClientActions; export declare const smartAccountClientMethodKeys: Set;