/** * Metrics Collector - Prometheus-compatible metrics for AgentProbe. * * Tracks test counts, durations, costs, and exposes a /metrics endpoint. */ export type MetricType = 'counter' | 'gauge' | 'histogram' | 'summary'; export interface MetricLabel { [key: string]: string; } interface MetricEntry { name: string; type: MetricType; help: string; values: Map; observations?: Map; } export declare class MetricsRegistry { private metrics; counter(name: string, help: string): Counter; gauge(name: string, help: string): Gauge; histogram(name: string, help: string, buckets?: number[]): Histogram; summary(name: string, help: string, quantiles?: number[]): Summary; private getOrCreate; /** * Render all metrics in Prometheus exposition format. */ serialize(): string; reset(): void; getMetricNames(): string[]; } export declare class Counter { private entry; constructor(entry: MetricEntry); inc(labels?: MetricLabel, value?: number): void; get(labels?: MetricLabel): number; } export declare class Gauge { private entry; constructor(entry: MetricEntry); set(labels: MetricLabel, value: number): void; set(value: number): void; inc(labels?: MetricLabel, value?: number): void; dec(labels?: MetricLabel, value?: number): void; get(labels?: MetricLabel): number; } export declare class Histogram { private entry; readonly buckets: number[]; constructor(entry: MetricEntry, buckets: number[]); observe(labels: MetricLabel, value: number): void; observe(value: number): void; } export declare class Summary { private entry; readonly quantiles: number[]; constructor(entry: MetricEntry, quantiles: number[]); observe(labels: MetricLabel, value: number): void; observe(value: number): void; } export declare const defaultRegistry: MetricsRegistry; export declare const testsTotal: Counter; export declare const testDuration: Summary; export declare const costTotal: Counter; export declare const activeTests: Gauge; export declare const tokensTotal: Counter; /** * Record results from a completed test. */ export declare function recordTestResult(testName: string, passed: boolean, durationMs: number, model?: string, costUsd?: number): void; /** * Get Prometheus-format metrics string from the default registry. */ export declare function getMetrics(): string; export {}; //# sourceMappingURL=metrics.d.ts.map