/** * @license * Copyright 2025 Vybestack LLC * SPDX-License-Identifier: Apache-2.0 * @plan PLAN-20250909-TOKTRACK.P06a * @plan PLAN-20250909-TOKTRACK.P08 */ import type { ProviderPerformanceMetrics } from '../types.js'; /** * Performance tracking utility for provider operations */ export declare class ProviderPerformanceTracker { private providerName; private metrics; private tokenTimestamps; private logger; constructor(providerName: string); private initializeMetrics; /** * Record a streaming chunk being received */ recordChunk(chunkNumber: number, _contentLength: number): void; /** * Record completion of a request with performance data */ recordCompletion(totalTime: number, timeToFirstToken: number | null, tokenCount: number, chunkCount: number): void; /** * Record an error that occurred during request */ recordError(duration: number, error: string): void; /** * Track throttle wait time from 429 retries */ trackThrottleWaitTime(waitTimeMs: number): void; /** * Get current performance metrics */ getLatestMetrics(): ProviderPerformanceMetrics; /** * Reset all metrics (useful for long-running sessions) */ reset(): void; /** * Calculate tokens per minute based on recent token usage */ private calculateTokensPerMinute; /** * Add throttle wait time to metrics */ addThrottleWaitTime(waitTimeMs: number): void; /** * Get performance summary as human-readable string */ getPerformanceSummary(): string; }