export interface RateLimitTier { name: string; requestsPerHour: number; requestsPerMinute: number; bulkJobsPerDay: number; maxUrls: number; exportLimit: number; } export declare const RATE_LIMIT_TIERS: Record; export declare const ANONYMOUS_TIER: RateLimitTier; export interface RateLimitInfo { limit: number; remaining: number; reset: Date; tier: string; } export declare class RateLimitService { private rateLimiters; constructor(); private initializeRateLimiters; getUserTier(userId?: string): Promise; checkRateLimit(type: 'tracking' | 'bulk' | 'export' | 'legacy', key: string, userId?: string): Promise; checkBurstLimit(userId: string): Promise; getRateLimitStatus(type: 'tracking' | 'bulk' | 'export' | 'legacy', key: string, userId?: string): Promise; resetRateLimit(key: string, type?: string): Promise; getStatistics(): Promise<{ totalRequests: number; activeKeys: number; tierDistribution: Record; }>; } export declare class RateLimitError extends Error { tier: string; remaining: number; reset: Date; constructor(tier: string, remaining: number, reset: Date); } export declare class BurstLimitError extends Error { tier: string; limit: number; constructor(tier: string, limit: number); } export declare const rateLimitService: RateLimitService; //# sourceMappingURL=rate-limit.service.d.ts.map