/**
 * Metrics collection for Variably SDK
 */
import { SDKMetrics } from './types';
export declare class MetricsCollector {
    private startTime;
    private apiCalls;
    private cacheHits;
    private cacheMisses;
    private errors;
    private latencies;
    private flagsEvaluated;
    private gatesEvaluated;
    private eventsTracked;
    private maxLatencyHistory;
    constructor();
    /**
     * Record an API call
     */
    recordApiCall(): void;
    /**
     * Record a cache hit
     */
    recordCacheHit(): void;
    /**
     * Record a cache miss
     */
    recordCacheMiss(): void;
    /**
     * Record an error
     */
    recordError(): void;
    /**
     * Record request latency
     */
    recordLatency(latencyMs: number): void;
    /**
     * Record a flag evaluation
     */
    recordFlagEvaluation(): void;
    /**
     * Record a gate evaluation
     */
    recordGateEvaluation(): void;
    /**
     * Record an event being tracked
     */
    recordEventTracked(): void;
    /**
     * Get current metrics snapshot
     */
    getMetrics(): SDKMetrics;
    /**
     * Get detailed latency statistics
     */
    getLatencyStats(): {
        min: number;
        max: number;
        average: number;
        median: number;
        p95: number;
        p99: number;
        count: number;
    };
    /**
     * Reset all metrics
     */
    reset(): void;
    /**
     * Export metrics in a format suitable for external monitoring systems
     */
    exportMetrics(): Record<string, number>;
    /**
     * Calculate average latency
     */
    private calculateAverageLatency;
    /**
     * Calculate percentile from sorted array
     */
    private calculatePercentile;
}
/**
 * No-op metrics collector for when metrics are disabled
 */
export declare class NoOpMetricsCollector {
    recordApiCall(): void;
    recordCacheHit(): void;
    recordCacheMiss(): void;
    recordError(): void;
    recordLatency(): void;
    recordFlagEvaluation(): void;
    recordGateEvaluation(): void;
    recordEventTracked(): void;
    getMetrics(): SDKMetrics;
    getLatencyStats(): {
        min: number;
        max: number;
        average: number;
        median: number;
        p95: number;
        p99: number;
        count: number;
    };
    reset(): void;
    exportMetrics(): Record<string, number>;
}
//# sourceMappingURL=metrics.d.ts.map