import { Observable, ObservableResult } from './Observable'; export type MetricValue = { value: number; timestamp: string; dimensions?: Record; }; export type MetricName = 'latency' | 'tokens' | 'memory_usage' | 'cpu_usage' | 'success_rate' | 'error_rate' | 'tool_usage' | 'prompt_length'; export declare class MetricsCollector extends Observable { private static instance; private metrics; private alertThresholds; private constructor(); static getInstance(): MetricsCollector; private setupEventListeners; private handleMetricEvent; private buildMetricKey; recordMetric(agentId: string, metricName: MetricName, value: number, dimensions?: Record): ObservableResult; getMetric(agentId: string, metricName: MetricName, dimensions?: Record): ObservableResult; getMetricAverage(agentId: string, metricName: MetricName, timeWindowMs: number, dimensions?: Record): ObservableResult; setAlertThreshold(agentId: string, metricName: MetricName, threshold: number, dimensions?: Record): ObservableResult; clear(): ObservableResult; }