import { Chain, Hex } from "viem"; import { Balance } from "../types"; import { SmartWalletOptions, SmartWalletTransactionResult, Call, SessionKeyInfo, SessionKeyPermissionRule, SessionKeyApprovalOptions, ModuleInstallOptions, ModuleUninstallOptions, MultiSigConfig, SmartAccountInfo, ModuleType } from "./smartWallet.types"; import { AccountAbstractionService } from "./aa-service/services/account-abstraction"; import type { KernelAccountInstance } from "./aa-service/lib/kernel-account"; export declare class EVMSmartWallet { aaService: AccountAbstractionService | null; private kernelAccount; private ownerAccount; private chain; private options; private paymasterConfig; constructor(privateKey: string, chain: Chain, options?: SmartWalletOptions); initialize(): Promise; getAddress(): Hex; getAccountInfo(): Promise; getBalance(): Promise; isAccountDelegated(): Promise; sendTransaction(to: Hex, value?: bigint, data?: Hex, options?: { sessionAccount: Omit; }): Promise; sendBatchTransaction(calls: Call[], options?: { sessionAccount: KernelAccountInstance; }): Promise; prepareCall(to: Hex, value?: bigint, data?: Hex): Call; generateSessionKey(): Promise; approveSessionKey(options: SessionKeyApprovalOptions): Promise; createUSDCPermission(usdcAddress: Hex, maxAmount: string, destinationAddress: Hex): SessionKeyPermissionRule; createETHPermission(maxValue: string): SessionKeyPermissionRule; installModule(options: ModuleInstallOptions): Promise; uninstallModule(options: ModuleUninstallOptions): Promise; isModuleInstalled(moduleType: ModuleType, moduleAddress: Hex): Promise; prepareInstallModule(options: ModuleInstallOptions): Call; prepareUninstallModule(options: ModuleUninstallOptions): Call; enableMultiSig(config: MultiSigConfig): Promise; setPaymaster(paymasterUrl: string, context?: any): void; clearPaymaster(): void; hasPaymaster(): boolean; getBundlerInfo(): { provider: string; url: string; }; }