import { ScraperPlugin, ScraperEngine } from '../core/types'; /** * Retry plugin with exponential backoff */ export declare class RetryPlugin implements ScraperPlugin { name: string; version: string; private maxBackoffDelay; private backoffMultiplier; constructor(options?: { maxBackoffDelay?: number; backoffMultiplier?: number; }); install(scraper: ScraperEngine): void; private handleRetry; } /** * Cache plugin for caching scraper results */ export declare class CachePlugin implements ScraperPlugin { name: string; version: string; private cache; private defaultTtl; constructor(options?: { defaultTtl?: number; }); install(scraper: ScraperEngine): void; private checkCache; private storeInCache; private generateCacheKey; /** * Clear cache */ clearCache(): void; /** * Get cache statistics */ getCacheStats(): { size: number; keys: string[]; }; } /** * Proxy rotation plugin */ export declare class ProxyPlugin implements ScraperPlugin { name: string; version: string; private proxies; private currentIndex; constructor(proxies: string[]); install(scraper: ScraperEngine): void; private setProxy; /** * Add proxy to the rotation */ addProxy(proxy: string): void; /** * Remove proxy from rotation */ removeProxy(proxy: string): void; /** * Get current proxy list */ getProxies(): string[]; } /** * Rate limiting plugin */ export declare class RateLimitPlugin implements ScraperPlugin { name: string; version: string; private requests; private defaultLimit; private defaultWindow; constructor(options?: { defaultLimit?: number; defaultWindow?: number; }); install(scraper: ScraperEngine): void; private checkRateLimit; /** * Get rate limit statistics */ getStats(): Record; } /** * Metrics plugin for collecting scraper metrics */ export declare class MetricsPlugin implements ScraperPlugin { name: string; version: string; private metrics; install(scraper: ScraperEngine): void; private recordStart; private recordSuccess; private recordError; private recordDuration; /** * Get metrics */ getMetrics(): typeof this.metrics; /** * Reset metrics */ resetMetrics(): void; } //# sourceMappingURL=index.d.ts.map