import { type GatewayModelTarget } from "./types.js"; export type GatewayMetricOutcome = "success" | "error" | "cancelled" | "cache"; export interface GatewayMetricsSnapshot { inFlight: number; sampleCount: number; successes: number; errors: number; cancellations: number; p50LatencyMs?: number; p95LatencyMs?: number; p95TtftMs?: number; p50TokensPerSecond?: number; lastCompletedAt?: number; } export interface GatewayMetricsHandle { firstText(): void; end(outcome: GatewayMetricOutcome, outputTokens?: number): void; } export interface GatewayMetricsStore { begin(target: GatewayModelTarget): GatewayMetricsHandle | undefined; snapshot(target: GatewayModelTarget): GatewayMetricsSnapshot | undefined; } export interface GatewayMetricsOptions { windowMs?: number; maxTargets?: number; maxSamplesPerTarget?: number; now?: () => number; } /** Bounded, process-local metrics. New targets are untracked while every capacity slot is active. */ export declare const createGatewayMetrics: (options?: GatewayMetricsOptions) => GatewayMetricsStore; //# sourceMappingURL=metrics.d.ts.map