import { type GetAccountParameter, type GetContextParameter, type GetEntryPointFromAccount, type SmartAccountClient, type SmartContractAccount, type UserOperationOverridesParameter } from "@aa-sdk/core"; import { type Address, type Chain, type Client, type Hash, type Transport } from "viem"; import type { FunctionReference } from "../account-loupe/types.js"; export type InstallPluginParams | undefined = Record | undefined, TEntryPointVersion extends GetEntryPointFromAccount = GetEntryPointFromAccount> = { pluginAddress: Address; manifestHash?: Hash; pluginInitData?: Hash; dependencies?: FunctionReference[]; } & UserOperationOverridesParameter & GetAccountParameter & GetContextParameter; /** * Installs a plugin on a smart account via the client, sending the user operation with the appropriate parameters. * NOTE: it's recommended to just use the installPlugin action returned from generated plugins * * @example * ```ts * import { installPlugin, createModularAccountAlchemyClient } from "@account-kit/smart-contracts"; * * const client = createModularAccountAlchemyClient(...); * * const hash = await installPlugin(client, { * pluginAddress: "0x...", * manifestHash: "0x...", * dependencies: [], // this is defined by the plugin you're installing * }); * ``` * * @param {Client} client The client configured to the smart account on which the plugin will be installed * @param {InstallPluginParams} params The parameters required to install the plugin, including overrides, context, and account information * @returns {Promise} A promise that resolves once the plugin installation operation is sent */ export declare function installPlugin | undefined = Record | undefined>(client: Client, { overrides, context, account, ...params }: InstallPluginParams): Promise>>>>; export declare function encodeInstallPluginUserOperation(client: SmartAccountClient, params: Omit): Promise<`0x${string}`>;