import { Request, Response, NextFunction } from "express";
import { MaliciousPatternResult, MaliciousPatternOptions } from "../../../services/MaliciousPatterns.service";
import { NsbMiddlewareOptions, SecurityDatabaseAdapterType } from "../../types/types.express.middleware";
/**
 * Enhanced NSB Express middleware for securing incoming requests
 * @param options - Middleware options
 * @returns Express middleware function
 */
export declare const nehonixShieldMiddleware: (options?: NsbMiddlewareOptions) => (req: Request, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Utility to analyze specific request components
 * @param req - Express request object
 * @param components - Components to analyze (url, headers, query, body)
 * @parascanRequestm options - NSB analysis options
 * @returns Analysis result
 */
export declare const scanRequest: (req: Request, components?: ("url" | "headers" | "query" | "body")[], options?: MaliciousPatternOptions & {
    blockOnMalicious?: boolean;
}) => Promise<MaliciousPatternResult>;
/**
 * Cleans up old suspicious IP records
 */
export declare function cleanupSuspiciousIPs(): void;
/**
 *
 * This function aggregates all security events from the database and generates a detailed
 * security report with threat analysis, recommendations, and visualizable timeline data.
 * The report's detail level and included sections are customizable through options.
 *
 * @param options Report generation options
 * @returns Detailed security report
 * @example
 * ```typescript
 * // Generate a basic report for the last 30 days
 * const basicReport = await generateSecurityReport({
 *   days: 30,
 *   detailLevel: 'basic'
 * });
 *
 * // Generate a comprehensive report with all details
 * const fullReport = await generateSecurityReport({
 *   days: 7,
 *   detailLevel: 'comprehensive',
 *   includeIPs: true,
 *   includePatterns: true,
 *   includeRecommendations: true
 * });
 * ```
 */
export declare function generateSecurityReport(options?: {
    days?: number;
    includeIPs?: boolean;
    includePatterns?: boolean;
    includeRecommendations?: boolean;
    detailLevel?: "basic" | "detailed" | "comprehensive";
}): Promise<object>;
/**
 * Function to block an IP address with a custom reason
 */
export declare function blockIP(ip: string, reason: string): Promise<boolean>;
/**
 * Creates a custom database adapter for specific storage solutions
 * @param implementation The implementation of the database adapter
 * @returns A configured SecurityDatabaseAdapter
 */
export declare function createDatabaseAdapter(implementation: Partial<SecurityDatabaseAdapterType>): SecurityDatabaseAdapterType;
//# sourceMappingURL=express.middleware.d.ts.map