import { SecurityResults } from './types';
export interface HeaderStatusResult {
    header: string;
    status: 'present' | 'missing' | 'invalid';
    value: string | null;
    recommendation: string;
    severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
}
export declare class HeaderChecker {
    private securityHeaders;
    private blacklistProviders;
    constructor();
    /**
     * Main method to check headers and populate security results
     * @param headers Headers from HTTP response
     * @param results SecurityResults object to populate
     */
    check(headers: Headers, results: SecurityResults): void;
    /**
     * Get the severity level based on the header and issue type
     * @param headerName Name of the header
     * @param issueType Type of issue ('missing' or 'invalid')
     * @returns Appropriate severity level
     */
    private getHeaderSeverity;
    /**
     * Get detailed validation message for specific headers
     * @param headerName Name of the header
     * @param value Current header value
     * @returns Detailed explanation of what's wrong with the value
     */
    private getDetailedHeaderValidationMessage;
    /**
     * Check for deprecated or potentially risky security headers
     * @param headers Headers from HTTP response
     * @param results SecurityResults object to populate
     */
    checkDeprecatedHeaders(headers: Headers, results: SecurityResults): void;
    /**
     * Check CORS policy configuration
     * @param headers Headers from HTTP response
     * @param results SecurityResults object to populate
     */
    checkCORSPolicy(headers: Headers, results: SecurityResults): void;
    /**
     * Perform detailed validation of HSTS header
     * @param value HSTS header value
     * @param results Security results to update
     */
    private validateHSTS;
    /**
     * Perform detailed validation of CSP header
     * @param value CSP header value
     * @param results Security results to update
     */
    private validateCSP;
    /**
     * Perform detailed validation of Permissions-Policy header
     * @param value Permissions-Policy header value
     * @param results Security results to update
     */
    private validatePermissionsPolicy;
    /**
     * Calculate security score and set overall status based on headers
     * @param results Results object to update
     * @param headerResults Header check results
     */
    private calculateHeaderSecurityScore;
    /**
     * Check cookie security settings and add issues if necessary
     * @param headers Headers to check for cookies
     * @param results Results object to update
     */
    private checkCookieSecurity;
    /**
     * Normalize headers to lowercase for consistent lookup
     * @param headers Headers object
     * @returns Record with lowercase header names
     */
    private normalizeHeaders;
    /**
     * Add a security issue to the results
     * @param results Results object to update
     * @param type Issue type
     * @param severity Issue severity
     * @param title Issue title
     * @param recommendation How to fix the issue
     * @param details Additional details
     */
    private addIssue;
    /**
     * Generate a comprehensive report of header security status
     * @param headers The headers from the HTTP response
     * @returns A formatted header security report
     */
    generateHeaderReport(headers: Headers): {
        overallStatus: string;
        score: number;
        headers: HeaderStatusResult[];
        recommendations: string[];
    };
    /**
     * Check if the domain is blacklisted by known security blacklists
     * @param url The URL to check
     * @param results The results object to update with blacklist findings
     */
    checkBlacklist(url: string, results: SecurityResults): Promise<void>;
}
