/** * 도구 등록 및 관리 시스템 * @memento/core: MCP/서버에서 공유하는 도구 레지스트리 */ import type { ToolDefinition, ToolContext, ToolResult } from './types.js'; export interface ToolRegistryConfig { enableLogging: boolean; enableMetrics: boolean; maxExecutionTime: number; enableCaching: boolean; cacheSize: number; } export interface ToolExecutionMetrics { name: string; totalExecutions: number; successfulExecutions: number; failedExecutions: number; averageExecutionTime: number; lastExecution: Date | null; errorRate: number; } export declare class ToolRegistry { private tools; private config; private metrics; private cache; constructor(config?: Partial); register(tool: ToolDefinition): void; registerAll(tools: ToolDefinition[]): void; get(name: string): ToolDefinition | undefined; getAll(): ToolDefinition[]; execute(name: string, params: unknown, context: ToolContext): Promise; has(name: string): boolean; remove(name: string): boolean; clear(): void; size(): number; getNames(): string[]; private updateMetrics; private generateCacheKey; private cacheResult; private log; } //# sourceMappingURL=tool-registry.d.ts.map