///
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;
};
}