import type { TimeSeriesPoint, LatencyPercentiles } from '../types/metrics.ts'; /** * Collects time-series metrics and latency data during simulation. * * Time-series data is stored per (componentId, metricName) pair. * Latency values are stored with timestamps for windowed percentile computation. * Sorted insertion is used within getLatencyPercentiles for efficient percentile calculation. */ export declare class MetricCollector { /** Map of "componentId::metricName" → time-series points */ private timeSeries; /** All recorded latency entries (unsorted; sorted on demand per window) */ private latencyEntries; /** Record a generic metric data point for a component */ record(componentId: string, metricName: string, value: number, time: number): void; /** Record an end-to-end latency measurement */ recordLatency(latency: number, time: number): void; /** Retrieve the full time-series for a (componentId, metricName) pair */ getTimeSeries(componentId: string, metricName: string): TimeSeriesPoint[]; /** * Compute latency percentiles (p50, p95, p99, p99.9) over a time window. * * Entries are appended chronologically (simulation clock is monotonic), so * binary search locates the window boundaries. Entries before windowStart * are pruned since the window only advances forward. * * Returns all zeros for empty windows. */ getLatencyPercentiles(windowStart: number, windowEnd: number): LatencyPercentiles; /** Reset all collected metrics */ reset(): void; } //# sourceMappingURL=metric-collector.d.ts.map