/** * Distributed Rate Limiting System with Redis (Upstash) * * This module provides distributed rate limiting using Upstash Redis, * which works correctly in multi-instance deployments. * * Falls back gracefully when Redis is not configured or dependencies aren't available. */ export declare const authRateLimiter: any; export declare const apiRateLimiter: any; export declare const strictRateLimiter: any; export interface RateLimitCheckResult { success: boolean; remaining: number; reset: number; limit?: number; retryAfter?: number; } /** * Rate limit tiers available for API endpoints */ export type RateLimitTier = 'auth' | 'api' | 'strict' | 'read' | 'write' | 'webhook'; /** * Check rate limit for a given identifier * * @param identifier - Unique identifier (e.g., IP address, user ID, or combination) * @param type - Rate limit tier: 'auth' (5/15min), 'api' (100/1min), 'strict' (10/1hr), 'read' (200/1min), 'write' (50/1min), 'webhook' (500/1hr) * @returns Promise with success status, remaining requests, and reset timestamp */ export declare function checkRateLimit(identifier: string, type?: RateLimitTier): Promise; /** * Check if Redis is configured and available */ export declare function isRedisConfigured(): Promise; /** * Synchronous check if Redis might be configured (based on env vars) * Use this for quick checks, but isRedisConfigured() is more accurate */ export declare function maybeRedisConfigured(): boolean; /** * Get rate limit headers for HTTP response */ export declare function getRateLimitHeaders(result: RateLimitCheckResult): Record; /** * Create rate limit error response * Use this to return a consistent 429 response when rate limited */ export declare function createRateLimitResponse(result: RateLimitCheckResult): Response; //# sourceMappingURL=rate-limit-redis.d.ts.map