/**
 * Rolling window implementation for tracking circuit breaker metrics
 */
import { RollingWindow, WindowCounts } from './types.js';
interface Bucket {
    success: number;
    failure: number;
    timeout: number;
    rejected: number;
    timestamp: number;
}
export declare class RollingWindowImpl implements RollingWindow {
    private buckets;
    private readonly windowSize;
    private readonly bucketSize;
    private readonly numberOfBuckets;
    constructor(windowSizeMs?: number, numberOfBuckets?: number);
    recordSuccess(timestamp?: number): void;
    recordFailure(timestamp?: number): void;
    recordTimeout(timestamp?: number): void;
    recordRejection(timestamp?: number): void;
    getCounts(): WindowCounts;
    reset(): void;
    private record;
    private getBucketIndex;
    private removeOldBuckets;
    /**
     * Get detailed bucket information for debugging
     */
    getBuckets(): ReadonlyArray<Readonly<Bucket>>;
    /**
     * Get window configuration
     */
    getConfig(): {
        windowSize: number;
        bucketSize: number;
        numberOfBuckets: number;
    };
}
export {};
//# sourceMappingURL=rolling-window.d.ts.map