import type { GetEntryPointFromAccount, UserOperationOverridesParameter } from "@aa-sdk/core"; import { type GetAccountParameter, type IsUndefined, type SendUserOperationResult, type SmartContractAccount } from "@aa-sdk/core"; import type { Address, Chain, Client, Hex, Transport } from "viem"; import type { GetPluginAddressParameter } from "../types.js"; import { type SessionKeyPluginActions as SessionKeyPluginActions_ } from "./plugin.js"; export type SessionKeyPluginActions = GetEntryPointFromAccount> = Omit, "removeSessionKey" | "addSessionKey" | "rotateSessionKey" | "updateKeyPermissions"> & { isAccountSessionKey: (args: { key: Address; } & GetPluginAddressParameter & GetAccountParameter) => Promise; getAccountSessionKeys: (args: GetPluginAddressParameter & GetAccountParameter) => Promise>; removeSessionKey: (args: { key: Address; } & GetPluginAddressParameter & GetAccountParameter & UserOperationOverridesParameter) => Promise>; addSessionKey: (args: { key: Address; permissions: Hex[]; tag: Hex; } & GetPluginAddressParameter & GetAccountParameter & UserOperationOverridesParameter) => Promise>; rotateSessionKey: (args: { oldKey: Address; newKey: Address; } & GetPluginAddressParameter & GetAccountParameter & UserOperationOverridesParameter) => Promise>; updateSessionKeyPermissions: (args: { key: Address; permissions: Hex[]; } & GetPluginAddressParameter & GetAccountParameter & UserOperationOverridesParameter) => Promise>; } & (IsUndefined extends false ? { getAccountSessionKeys: (args?: GetPluginAddressParameter & GetAccountParameter) => Promise>; } : {}); /** * Creates actions for managing session keys in a smart contract associated with a client, including adding, removing, rotating, and updating session key permissions. * * @example * ```ts * import { createModularAccountAlchemyClient, sessionKeyPluginActions } from "@account-kit/smart-contracts"; * * const client = createModularAccountAlchemyClient(...).extend(sessionKeyPluginActions); * ``` * * @param {Client} client The client instance to use for managing session keys * @returns {SessionKeyPluginActions} An object containing methods for session key management and interaction with the smart contract */ export declare const sessionKeyPluginActions: (client: Client) => SessionKeyPluginActions;