/**
 * Token bucket rate limiter implementation
 */
import { IRateLimiter, RateLimitResult } from './interface.js';
export declare class TokenBucketRateLimiter implements IRateLimiter {
    private buckets;
    private capacity;
    private refillRate;
    private window;
    constructor(options: {
        max: number;
        window: number;
    });
    private getBucket;
    private refillBucket;
    check(key: string): Promise<RateLimitResult>;
    consume(key: string, tokens?: number): Promise<RateLimitResult>;
    reset(key: string): Promise<void>;
    status(key: string): Promise<RateLimitResult>;
    /**
     * Clean up old buckets (for memory management)
     */
    cleanup(): void;
    /**
     * Start periodic cleanup
     */
    startCleanup(interval?: number): NodeJS.Timeout;
}
//# sourceMappingURL=token-bucket.d.ts.map