import { type GetAccountParameter, type GetEntryPointFromAccount, type IsUndefined, type SendUserOperationParameters, type SmartContractAccount } from "@aa-sdk/core"; import { type Address, type Chain, type Client, type Transport } from "viem"; import type { GetPluginAddressParameter } from "../types.js"; import { type MultisigPluginActions as MultisigPluginActions_ } from "./plugin.js"; import { type MultisigUserOperationContext, type ProposeUserOperationResult, type SignMultisigUserOperationParams, type SignMultisigUserOperationResult } from "./types.js"; export type MultisigPluginActions = MultisigPluginActions_ & { readOwners: (params: GetPluginAddressParameter & GetAccountParameter) => Promise>; isOwnerOf: (params: { address: Address; } & GetPluginAddressParameter & GetAccountParameter) => Promise; getThreshold: (params: GetPluginAddressParameter & GetAccountParameter) => Promise; proposeUserOperation: (params: SendUserOperationParameters) => Promise>>; signMultisigUserOperation: (params: SignMultisigUserOperationParams) => Promise; } & (IsUndefined extends false ? { readOwners: (params?: GetPluginAddressParameter & GetAccountParameter) => Promise>; } : {}); /** * Provides actions for managing a multisig plugin within the specified client, including reading owners, checking ownership, getting the threshold, proposing user operations, and signing multisig user operations. * * @example * ```ts * import { createModularAccountAlchemyClient, multisigPluginActions } from "@account-kit/smart-contracts"; * * const client = createModularAccountAlchemyClient(...).extend(multisigPluginActions); * ``` * * @param {Client} client The client instance configured with transport, chain, and account information * @returns {MultisigPluginActions} An object containing methods to perform actions related to the multisig plugin */ export declare const multisigPluginActions: (client: Client) => MultisigPluginActions;