//#region extensions/crypto/src/services/veil-service.d.ts /** * Veil.cash Service — privacy pool integration for private transfers on Base. * * Uses @veil-cash/sdk for ZK proof generation and relayer submission. * Supports ETH and USDC privacy pools. * * SDK provides: * - Keypair.fromSigner() — derive privacy keypair from Bankr sign API * - deposit() — deposit into privacy pool (public → private) * - withdraw() — withdraw from privacy pool (private → public) * - transfer() — private-to-private transfer * - balance() — check shielded balance * * Requires: @veil-cash/sdk npm package (optional dep, ~50KB). */ interface VeilBalance { asset: string; shielded: string; pendingDeposits: string; pendingWithdrawals: string; } interface VeilTxResult { action: string; asset: string; amount: string; txHash: string | null; noteHash: string | null; status: string; } interface VeilDepositResult extends VeilTxResult { action: 'deposit'; note: string; } interface VeilWithdrawResult extends VeilTxResult { action: 'withdraw'; recipient: string; relayerFee: string | null; } declare class VeilService { private sdk; private keypair; private keypairAddress; /** * Check if the Veil SDK is installed. */ isAvailable(): Promise; /** * Get the SDK instance, lazily loaded. */ private getSdk; /** * Derive a privacy keypair from the connected wallet's signer. * Invalidates the cached keypair if the wallet address has changed. */ private getKeypair; getSupportedAssets(): { symbol: string; address: string; poolDenomination: string; }[]; resolveAsset(input: string): { symbol: string; address: string; decimals: number; poolSize: string; } | null; deposit(asset: string, amount: string): Promise; withdraw(asset: string, amount: string, recipient: string): Promise; transfer(asset: string, amount: string, recipientPublicKey: string): Promise; getBalance(asset?: string): Promise; } declare function getVeilService(): VeilService; declare function resetVeilService(): void; //#endregion export { VeilBalance, VeilDepositResult, VeilService, VeilTxResult, VeilWithdrawResult, getVeilService, resetVeilService }; //# sourceMappingURL=veil-service.d.mts.map