import { Response, NextFunction } from 'express'; import { AuthenticatedRequest } from './auth.middleware'; export interface RateLimitMiddlewareOptions { type: 'tracking' | 'bulk' | 'export' | 'legacy'; keyGenerator?: (req: AuthenticatedRequest) => string; skipSuccessfulRequests?: boolean; skipFailedRequests?: boolean; onLimitReached?: (req: AuthenticatedRequest, res: Response) => void; } export declare function createRateLimitMiddleware(options: RateLimitMiddlewareOptions): (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise>>; export declare function organizationKeyGenerator(req: AuthenticatedRequest): string; export declare function projectKeyGenerator(req: AuthenticatedRequest): string; export declare function addRateLimitStatus(type: 'tracking' | 'bulk' | 'export' | 'legacy'): (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise; export declare const legacyRateLimit: (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise>>; export declare const trackingRateLimit: (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise>>; export declare const bulkRateLimit: (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise>>; export declare const exportRateLimit: (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise>>; export declare const orgTrackingRateLimit: (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise>>; export declare const projectTrackingRateLimit: (req: AuthenticatedRequest, res: Response, next: NextFunction) => Promise>>; export declare function requestLogger(options?: { includeBody?: boolean; redactionLevel?: 'full' | 'partial'; }): (req: AuthenticatedRequest, res: Response, next: NextFunction) => void; export declare function rateLimitErrorHandler(error: Error, req: AuthenticatedRequest, res: Response, next: NextFunction): Response>; //# sourceMappingURL=rate-limit.middleware.d.ts.map