/**
 * CSP 配置
 */
export interface CSPConfig {
    defaultSrc?: string[];
    scriptSrc?: string[];
    styleSrc?: string[];
    imgSrc?: string[];
    connectSrc?: string[];
    fontSrc?: string[];
    frameSrc?: string[];
}
/**
 * 安全头配置
 */
export interface SecurityHeadersConfig {
    /**
     * Content Security Policy
     */
    csp?: CSPConfig | string;
    /**
     * X-Frame-Options
     */
    xFrameOptions?: 'DENY' | 'SAMEORIGIN' | 'ALLOW-FROM';
    /**
     * X-Content-Type-Options
     */
    xContentTypeOptions?: boolean;
    /**
     * X-XSS-Protection
     */
    xXSSProtection?: boolean;
    /**
     * Referrer-Policy
     */
    referrerPolicy?: 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
    /**
     * Permissions-Policy
     */
    permissionsPolicy?: Record<string, string[]>;
}
/**
 * 运行时安全检查选项
 */
export interface RuntimeSecurityOptions {
    /**
     * 是否启用 CSP
     */
    enableCSP?: boolean;
    /**
     * 是否启用安全头
     */
    enableSecurityHeaders?: boolean;
    /**
     * 是否启用运行时检查
     */
    enableRuntimeChecks?: boolean;
    /**
     * CSP 配置
     */
    csp?: CSPConfig;
    /**
     * 安全头配置
     */
    securityHeaders?: SecurityHeadersConfig;
}
/**
 * 运行时安全工具类
 */
export declare class RuntimeSecurity {
    /**
     * 应用 CSP
     *
     * 注意：通过 meta 标签设置 CSP 不如 HTTP 头安全，建议在服务器端设置 CSP 头。
     * 此方法仅作为补充措施。
     */
    static applyCSP(config: CSPConfig): void;
    /**
     * 应用安全头（通过 meta 标签，实际应该由服务器设置）
     */
    static applySecurityHeaders(config: SecurityHeadersConfig): void;
    /**
     * 检查运行时安全
     */
    static checkRuntimeSecurity(): {
        safe: boolean;
        issues: string[];
    };
    /**
     * 初始化运行时安全
     */
    static initialize(options?: RuntimeSecurityOptions): void;
    /**
     * 验证 URL 安全性
     */
    static validateUrl(url: string): boolean;
    /**
     * 验证并清理用户输入
     */
    static sanitizeUserInput(input: unknown): {
        safe: boolean;
        sanitized?: string;
    };
}
//# sourceMappingURL=runtimeSecurity.d.ts.map