import { Hex } from 'viem'; import { KernelAccountInstance } from './kernel-account'; import { BundlerManager } from '../services/bundler'; export type ModuleType = 'validator' | 'executor' | 'fallback' | 'hook'; export declare const MODULE_TYPE_IDS: Record; export interface InstallModuleConfig { account: KernelAccountInstance; bundlerManager: BundlerManager; moduleType: ModuleType; moduleAddress: Hex; initData?: Hex; } export interface UninstallModuleConfig { account: KernelAccountInstance; bundlerManager: BundlerManager; moduleType: ModuleType; moduleAddress: Hex; deInitData?: Hex; } export interface ModuleStatus { isInstalled: boolean; moduleAddress: Hex; moduleType: ModuleType; } export interface SessionKeyPermission { target: Hex; maxValuePerUse?: bigint; functionSelector?: Hex; maxGasPerUse?: bigint; validUntil?: number; validAfter?: number; maxUses?: number; } export interface CreateSessionKeyConfig { account: KernelAccountInstance; bundlerManager: BundlerManager; sessionKeyAddress: Hex; permissions: SessionKeyPermission[]; } import { Call } from './kernel-account'; export declare function prepareInstallModule(config: Omit): Call; export declare function installModule(config: InstallModuleConfig): Promise; export declare function prepareUninstallModule(config: Omit): Call; export declare function uninstallModule(config: UninstallModuleConfig): Promise; export declare function isModuleInstalled(config: Omit): Promise; export declare function prepareInstallSessionKey(config: Omit): Call; export declare function createSessionKey(config: CreateSessionKeyConfig): Promise; export declare function prepareRevokeSessionKey(config: { account: KernelAccountInstance; sessionKeyAddress: Hex; }): Call; export declare function revokeSessionKey(account: KernelAccountInstance, bundlerManager: BundlerManager, sessionKeyAddress: Hex): Promise; export declare function prepareInstallMultiSigValidator(config: { account: KernelAccountInstance; owners: Hex[]; threshold: number; }): Call; export declare function installMultiSigValidator(config: { account: KernelAccountInstance; bundlerManager: BundlerManager; owners: Hex[]; threshold: number; }): Promise;