/** * Latency Tracker * * Per-tool sliding-window latency percentile tracker. * Uses a zero-dependency sorted-insert algorithm with bounded memory. * * Design: * - One sorted number[] per tool name for O(1) percentile lookup * - One parallel insertion-order number[] per tool for FIFO eviction * - Binary-search insert: O(log n) per record * - Configurable max samples per tool (default: 1000) * - Nearest-rank percentile method (industry standard) */ export interface LatencyPercentiles { toolName: string; count: number; p50Ms: number; p95Ms: number; p99Ms: number; minMs: number; maxMs: number; } export declare class LatencyTracker { private readonly data; private readonly maxSamplesPerTool; constructor(maxSamplesPerTool?: number); /** * Record a latency sample for a tool. */ record(toolName: string, durationMs: number): void; /** * Compute the p-th percentile for a tool using nearest-rank method. * @param toolName - Tool to query * @param p - Percentile as a fraction (0.50, 0.95, 0.99) * @returns The percentile value, or 0 if no data */ getPercentile(toolName: string, p: number): number; /** * Get latency summary for all tracked tools, sorted by p99 descending. */ getLatencySummary(): LatencyPercentiles[]; /** * Reset all tracked data (primarily for tests). */ reset(): void; } //# sourceMappingURL=latency-tracker.d.ts.map