import { type Chain, type PublicClient } from 'viem'; import { type PrivateKeyAccount } from 'viem/accounts'; import type { SessionPackageSessionKey } from '../shared/sessionPackage'; export type CreateSessionKeyAndSessionAccountParams = { chainId: number; rpcUrl?: string; bundlerUrl?: string; entryPoint?: `0x${string}`; sessionPrivateKey?: `0x${string}`; deploySalt?: `0x${string}`; /** * When true, sends a sponsored userOp to deploy the session account if not deployed. * Defaults to true. */ ensureSessionAccountDeployed?: boolean; /** * When true, checks bytecode and deploys if missing. * When false, always returns counterfactual sessionAA without network calls beyond address computation. */ checkDeployment?: boolean; validAfter?: number; validUntil?: number; }; export type SessionAccountInitArtifacts = { chainId: number; chain: Chain; rpcUrl: string; bundlerUrl: string; entryPoint: `0x${string}`; publicClient: PublicClient; sessionPrivateKey: `0x${string}`; sessionKeyAccount: PrivateKeyAccount; sessionKey: SessionPackageSessionKey; sessionAccountClient: any; sessionAA: `0x${string}`; }; /** * A minimal DTO safe to send to an untrusted client. */ export type SessionAccountInitPublic = { chainId: number; sessionAA: `0x${string}`; }; export declare function createSessionKeyAndSessionAccount(params: CreateSessionKeyAndSessionAccountParams): Promise<{ artifacts: SessionAccountInitArtifacts; pub: SessionAccountInitPublic; }>; //# sourceMappingURL=sessionAccountInit.d.ts.map