import { EventEmitter } from "events";
interface ToolMetrics {
    totalCalls: number;
    successfulCalls: number;
    failedCalls: number;
    totalDuration: number;
    averageDuration: number;
    lastCalled?: Date;
}
interface SystemMetrics {
    uptime: number;
    totalRequests: number;
    activeRequests: number;
    peakMemoryUsage: number;
    currentMemoryUsage: number;
}
export declare class MetricsCollector extends EventEmitter {
    private toolMetrics;
    private systemMetrics;
    private startTime;
    constructor();
    recordToolCall(toolName: string, duration: number, success: boolean): void;
    incrementActiveRequests(): void;
    decrementActiveRequests(): void;
    private updateSystemMetrics;
    getToolMetrics(toolName?: string): ToolMetrics | Map<string, ToolMetrics>;
    getSystemMetrics(): SystemMetrics;
    getTopTools(limit?: number): Array<{
        name: string;
        metrics: ToolMetrics;
    }>;
    getSlowestTools(limit?: number): Array<{
        name: string;
        metrics: ToolMetrics;
    }>;
    getErrorProneTools(limit?: number): Array<{
        name: string;
        errorRate: number;
    }>;
    reset(): void;
    exportMetrics(): {
        tools: Record<string, ToolMetrics>;
        system: SystemMetrics;
        exportedAt: Date;
    };
}
export {};
//# sourceMappingURL=metrics.d.ts.map