@bobmatnyc/ai-code-review
Version:
A TypeScript-based tool for automated code reviews using AI models from Google Gemini, Anthropic Claude, and OpenRouter
69 lines (68 loc) • 1.63 kB
TypeScript
/**
* @fileoverview Rate limiter for API requests.
*
* This module provides a rate limiter for API requests to prevent
* exceeding API rate limits. It uses a simple token bucket algorithm
* to limit the number of requests per second.
*/
/**
* Rate limiter options
*/
interface RateLimiterOptions {
/**
* Maximum number of tokens in the bucket
*/
bucketSize: number;
/**
* Number of tokens added per second
*/
tokensPerSecond: number;
/**
* Initial number of tokens in the bucket
*/
initialTokens?: number;
}
/**
* Rate limiter for API requests
*/
export declare class RateLimiter {
private bucketSize;
private tokensPerSecond;
private tokens;
private lastRefillTime;
private waitQueue;
/**
* Create a new rate limiter
* @param options Rate limiter options
*/
constructor(options: RateLimiterOptions);
/**
* Refill the token bucket based on elapsed time
*/
private refill;
/**
* Process the wait queue
*/
private processQueue;
/**
* Acquire a token from the bucket
* @param timeoutMs Timeout in milliseconds
* @returns Promise that resolves when a token is acquired
*/
acquire(timeoutMs?: number): Promise<void>;
/**
* Get the current number of tokens in the bucket
* @returns Number of tokens
*/
getTokens(): number;
/**
* Get the current queue length
* @returns Queue length
*/
getQueueLength(): number;
}
/**
* Global rate limiter instance
*/
export declare const globalRateLimiter: RateLimiter;
export {};