import { Hex, Address } from 'viem'; import { Chain } from 'viem/chains'; import { PrivateKeyAccount } from 'viem/accounts'; import { CreateKernelAccountReturnType } from '@zerodev/sdk'; import { ModularSigner } from '@zerodev/permissions'; export interface SessionKeyPermissionRule { target: Hex; abi: any[]; functionName: string; args?: any[]; } export interface CreateSessionKeyApprovalOptions { sessionKeyAddress: Address; sessionKeyPrivateKey: Hex; owner: PrivateKeyAccount; chain: Chain; entryPointVersion?: '0.6' | '0.7'; useSudoPolicy?: boolean; permissions?: SessionKeyPermissionRule[]; } export interface SessionKeyInfo { privateKey: Hex; address: Address; signer: ModularSigner; } export interface DeserializedSessionKey { account: any; client: any; } export declare function generateSessionKey(privateKey?: Hex): Promise; export declare function createSessionKeyApproval(options: CreateSessionKeyApprovalOptions): Promise; export declare function deserializeSessionKey(options: { approval: string; sessionKeySigner: ModularSigner; chain: Chain; entryPointVersion?: '0.6' | '0.7'; }): Promise>; export declare function createSessionKeyClient(options: { account: any; chain: Chain; bundlerUrl: string; paymasterUrl?: string; entryPoint?: { address: Hex; version: '0.6' | '0.7'; }; }): any; export declare function createUSDCTransferPermission(usdcAddress: Hex, maxAmount: string, destinationAddress: Hex): SessionKeyPermissionRule; export declare function createETHTransferPermission(maxValue: string): SessionKeyPermissionRule;