codevault
Version:
AI-powered semantic code search via Model Context Protocol
34 lines • 1.1 kB
TypeScript
export declare class RateLimiter {
private rpm;
private tpm;
private queue;
private processing;
private requestTimes;
private tokenUsage;
private retryDelays;
private maxQueueSize;
constructor(requestsPerMinute?: number | null, tokensPerMinute?: number | null, maxQueueSize?: number);
private getDefaultRPM;
private getDefaultTPM;
private canMakeRequest;
private recordRequest;
private getDelayUntilNextSlot;
execute<T>(fn: () => Promise<T>, retryCount?: number, estimatedTokens?: number): Promise<T>;
private processQueue;
private isRateLimitError;
getStats(): {
rpm: number | null;
tpm: number | null;
queueLength: number;
maxQueueSize: number;
queueUtilization: string;
requestsInLastMinute: number;
tokensInLastMinute: number;
isRpmLimited: boolean;
isTpmLimited: boolean;
isLimited: boolean;
};
reset(): void;
}
export declare function createRateLimiter(providerName: string): RateLimiter;
//# sourceMappingURL=rate-limiter.d.ts.map