/// import { Request, Response } from '@loopback/rest'; import { CorsConfig } from '../types'; import { SecurityLogger } from '../utils/security-logger'; /** * CORS handler that manages Cross-Origin Resource Sharing policies */ export declare class CorsHandler { private config?; private logger?; constructor(config?: CorsConfig | undefined, logger?: SecurityLogger | undefined); /** * Handle CORS for the request */ handleCors(req: Request, res: Response): Promise; /** * Check if origin is allowed */ private isOriginAllowed; /** * Match origin against allowed origin pattern */ private matchOrigin; /** * Set CORS headers on response */ private setCorsHeaders; /** * Handle preflight OPTIONS request */ private handlePreflightRequest; /** * Get CORS configuration for debugging */ getConfig(): CorsConfig | undefined; /** * Check if a specific origin is allowed (for testing) */ checkOrigin(origin: string): boolean; /** * Add allowed origin */ addAllowedOrigin(origin: string): void; /** * Remove allowed origin */ removeAllowedOrigin(origin: string): void; /** * Add allowed method */ addAllowedMethod(method: string): void; /** * Add allowed header */ addAllowedHeader(header: string): void; /** * Update CORS configuration */ updateConfig(config: Partial): void; /** * Get CORS statistics */ getStats(): { allowedOrigins: number; allowedMethods: number; allowedHeaders: number; credentialsEnabled: boolean; preflightMaxAge: number; }; }