import type { GetEntryPointFromAccount, UserOperationOverridesParameter } from "@alchemy/aa-core"; import { type GetAccountParameter, type IsUndefined, type SendUserOperationResult, type SmartContractAccount } from "@alchemy/aa-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>; } : {}); export declare const sessionKeyPluginActions: (client: Client) => SessionKeyPluginActions;