/** * simulate_vault Tool * * Simulates vault operations with new total assets to model deposit/withdrawal scenarios. * Provides protocol-accurate fee calculations, APR impact analysis, and settlement requirements. * * Use cases: * - Simulate deposit/withdrawal impact on share price * - Model fee accrual scenarios * - Analyze settlement requirements * - Validate protocol calculations * - Performance: ~400-600 tokens per simulation * * Cache strategy: * - No caching (simulations are specific to input parameters and require fresh vault state) * * WHY NO CACHING? * This tool is intentionally non-cached because: * 1. Simulations are parameter-specific (newTotalAssets varies widely) * 2. Vault state changes frequently (stale simulations are misleading) * 3. One-time use simulations (rarely re-requested with same parameters) * 4. SDK-based calculations (fast execution, no benefit from caching) * * @module tools/simulate-vault */ import { z } from 'zod'; import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; import { ServiceContainer } from '../core/container.js'; /** * Input schema for simulate_vault tool */ export declare const simulateVaultInputSchema: z.ZodObject<{ vaultAddress: z.ZodString; chainId: z.ZodNumber; newTotalAssets: z.ZodString; settleDeposit: z.ZodDefault>; includeAPRCalculations: z.ZodDefault>; }, "strip", z.ZodTypeAny, { vaultAddress: string; chainId: number; newTotalAssets: string; settleDeposit: boolean; includeAPRCalculations: boolean; }, { vaultAddress: string; chainId: number; newTotalAssets: string; settleDeposit?: boolean | undefined; includeAPRCalculations?: boolean | undefined; }>; export type SimulateVaultInput = z.infer; /** * JSON schema for tool registration */ export declare const simulateVaultJsonSchema: import("zod-to-json-schema").JsonSchema7Type & { $schema?: string | undefined; definitions?: { [key: string]: import("zod-to-json-schema").JsonSchema7Type; } | undefined; }; /** * Create the executeSimulateVault function with DI container * * @param container - Service container with dependencies * @returns Configured tool executor function * * @example * ```typescript * const executor = createExecuteSimulateVault(container); * const result = await executor({ * vaultAddress: '0x1234...', * chainId: 42161, * newTotalAssets: '2000000000', * settleDeposit: true, * includeAPRCalculations: true * }); * ``` */ export declare function createExecuteSimulateVault(container: ServiceContainer): (input: SimulateVaultInput) => Promise; //# sourceMappingURL=simulate-vault.d.ts.map