///
import { Request, Response } from '@loopback/rest';
import { FlclLoggerLb4 } from 'fc-logger';
import { SecurityConfig, SecurityValidationResult } from '../types';
export declare class SecurityMiddleware {
private logger?;
private corsHandler;
private securityHeadersHandler;
private fileUploadHandler;
private inputValidator;
private sqlInjectionDetector;
private xssDetector;
private securityLogger;
private config;
constructor(config?: SecurityConfig, logger?: FlclLoggerLb4 | undefined);
/**
* Create a SecurityMiddleware instance with default configuration
*/
static createWithDefaults(logger?: FlclLoggerLb4): SecurityMiddleware;
/**
* Create a SecurityMiddleware instance with custom configuration
*/
static createWithConfig(config: SecurityConfig, logger?: FlclLoggerLb4): SecurityMiddleware;
private mergeWithDefaults;
private initializeHandlers;
/**
* Check if the request is a health check request
*/
private isHealthCheckRequest;
/**
* Check if the request URL should be skipped from security checks
*/
private isSkippedUrl;
/**
* Apply comprehensive security checks to the incoming request
*/
applySecurityChecks(req: Request, res: Response): Promise;
/**
* Handle security violations and generate appropriate responses
*/
private handleSecurityViolation;
/**
* Get list of security checks that are currently enabled
*/
private getAppliedChecks;
/**
* Generate a unique request ID for tracking
*/
private generateRequestId;
/**
* Update security configuration at runtime
*/
updateConfiguration(newConfig: Partial): void;
/**
* Add health check paths to bypass security
*/
addHealthCheckPaths(paths: string[]): void;
/**
* Remove health check paths
*/
removeHealthCheckPaths(paths: string[]): void;
/**
* Get current health check paths
*/
getHealthCheckPaths(): string[];
/**
* Get current security configuration
*/
getConfiguration(): SecurityConfig;
}