import { Request, Response, NextFunction } from "express"; import { AuthService, TokenPayload, Permission } from "./auth-service"; declare global { namespace Express { interface Request { user?: TokenPayload; apiKey?: string; } } } export declare class AuthMiddleware { private authService; constructor(authService?: AuthService); authenticate: (req: Request, res: Response, next: NextFunction) => Promise; authenticateOptional: (req: Request, res: Response, next: NextFunction) => Promise; authenticateApiKey: (req: Request, res: Response, next: NextFunction) => Promise; requirePermission: (permission: Permission) => (req: Request, res: Response, next: NextFunction) => Promise; requireAnyPermission: (permissions: Permission[]) => (req: Request, res: Response, next: NextFunction) => Promise; requireRole: (role: "user" | "admin" | "developer") => (req: Request, res: Response, next: NextFunction) => Promise; private extractToken; private extractApiKey; } export declare const createRateLimiter: (options?: { windowMs?: number; max?: number; message?: string; skipSuccessfulRequests?: boolean; }) => import("express-rate-limit").RateLimitRequestHandler; export declare const aiRateLimiter: import("express-rate-limit").RateLimitRequestHandler; export declare const authRateLimiter: import("express-rate-limit").RateLimitRequestHandler; export declare const uploadRateLimiter: import("express-rate-limit").RateLimitRequestHandler; export declare const searchRateLimiter: import("express-rate-limit").RateLimitRequestHandler; //# sourceMappingURL=middleware.d.ts.map