UNPKG

@casoon/auditmysite

Version:

Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe

69 lines 2.06 kB
import { EventEmitter } from 'events'; export interface ThrottleConfig { requestsPerSecond?: number; requestsPerMinute?: number; concurrentRequests?: number; delayBetweenRequests?: number; burstLimit?: number; burstWindow?: number; enableBackoff?: boolean; backoffMultiplier?: number; maxBackoffDelay?: number; } export interface ThrottleStats { totalRequests: number; successfulRequests: number; throttledRequests: number; failedRequests: number; averageResponseTime: number; currentConcurrentRequests: number; requestsInLastSecond: number; requestsInLastMinute: number; lastRequestTime?: Date; isThrottling: boolean; } export interface ThrottleRequest { id: string; url: string; method: string; timestamp: Date; priority: number; retryCount: number; maxRetries: number; } export declare class NetworkThrottler extends EventEmitter { private config; private requestQueue; private activeRequests; private requestHistory; private stats; private isThrottling; private lastRequestTime; private burstCount; private burstStartTime; private backoffDelay; constructor(config?: ThrottleConfig); throttleRequest<T>(requestFn: () => Promise<T>, url: string, method?: string, priority?: number, maxRetries?: number): Promise<T>; private addToQueue; private waitForSlot; private canExecuteRequest; private executeRequest; private updateStats; private updateCurrentRates; private recordRequestSuccess; private recordRequestFailure; private cleanupHistory; private delay; getStats(): ThrottleStats; getQueueSize(): number; getActiveRequests(): number; getThrottlingStatus(): boolean; updateConfig(newConfig: Partial<ThrottleConfig>): void; clearQueue(): void; pauseThrottling(): void; resumeThrottling(): void; getConfig(): ThrottleConfig; resetStats(): void; cleanup(): Promise<void>; } //# sourceMappingURL=network-throttler.d.ts.map