/** * Private Swap Pipeline — Core execution engine * * Single function that does everything: * 1. Derive smart wallet + Railgun keys * 2. Check privacy pool balance, shield if needed * 3. Get best swap quote (0x + Aerodrome fallback) * 4. Generate ZK proof (full or partial unshield) * 5. Build atomic multicall [unshield → approve → swap], submit UserOp * * Used by both `pnpm run agent` and `pnpm run swap`. */ export interface TokenInfo { address: string; symbol: string; decimals: number; } export interface PrivateSwapConfig { privateKey: string; paymasterSignerKey: string; zeroXApiKey: string; tokenIn: TokenInfo; tokenOut: TokenInfo; /** Human-readable amount, e.g. "1" */ amount: string; /** Max slippage in basis points, e.g. 100 = 1% */ slippageBps: number; rpcUrl?: string; chainId?: number; } export interface SwapProgress { step(n: number, total: number, title: string): void; spin(msg: string): void; succeed(msg: string): void; info(key: string, value: string): void; } export interface PrivateSwapResult { txHash: string; blockNumber: number; smartWallet: string; ownerEOA: string; amountIn: string; amountOut: string; tokenIn: string; tokenOut: string; provider: string; unshieldGross: bigint; netAmount: bigint; railgunFee: string; proofTimeSeconds: number; } export declare function executePrivateSwap(config: PrivateSwapConfig, progress: SwapProgress): Promise;