andrade-soulseek-downloader
Version:
Simple, safe Soulseek download library with built-in rate limiting to prevent bans
31 lines • 930 B
TypeScript
export interface RateLimitConfig {
searchDelay?: number;
downloadDelay?: number;
maxConcurrent?: number;
cooldownAfterError?: number;
}
export declare class RateLimiter {
private queue;
private logger;
private lastSearchTime;
private lastDownloadTime;
private config;
private static instance;
private errorCount;
constructor(config?: RateLimitConfig);
static getInstance(config?: RateLimitConfig): RateLimiter;
waitForSearchDelay(): Promise<void>;
waitForDownloadDelay(): Promise<void>;
handleError(): Promise<void>;
executeSearch<T>(fn: () => Promise<T>): Promise<T>;
executeDownload<T>(fn: () => Promise<T>): Promise<T>;
private delay;
getQueueSize(): number;
getPendingCount(): number;
onIdle(): Promise<void>;
clear(): void;
pause(): void;
resume(): void;
static reset(): void;
}
//# sourceMappingURL=rate-limiter.d.ts.map