/**
 * 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<RateLimitCheckResult>;
/**
 * Check if Redis is configured and available
 */
export declare function isRedisConfigured(): Promise<boolean>;
/**
 * 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<string, string>;
/**
 * 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