import type { TokenUsage, StreamingMetricsResult } from '../../types/streaming-adapter.types'; /** * Tracks streaming metrics including TTFT, duration, and token usage */ export declare class StreamingMetrics { private startTime; private firstTokenTime; private tokenUsage; constructor(startTime?: number); /** * Record when the first token/chunk arrives */ recordFirstToken(): void; /** * Get Time to First Token in nanoseconds * @returns TTFT in nanoseconds, or null if first token hasn't arrived yet */ getTTFT(): number | null; /** * Set token usage information * @param usage Token usage object */ setTokenUsage(usage: TokenUsage): void; /** * Get current token usage * @returns Token usage object or null */ getTokenUsage(): TokenUsage | null; /** * Get total duration in nanoseconds * @returns Duration in nanoseconds from start time to now */ getDuration(): number; /** * Get all metrics * @returns Complete metrics result */ getMetrics(): StreamingMetricsResult; /** * Reset metrics (useful for testing or reuse) */ reset(startTime?: number): void; }