/**
 * Security Audit Runner with Dual Tournament RL Validation
 *
 * Provides continuous dual tournament RL-based security audit execution
 * for Apple products and services with comprehensive validation.
 */
import { type AppleSecurityFinding } from '../core/appleSecurityIntegration.js';
import { type AppleSecurityAuditOptions } from '../core/appleSecurityAudit.js';
import { type TournamentOutcome } from '../core/dualTournament.js';
export interface SecurityAuditRunnerOptions {
    /** Enable continuous mode - run until completion without user prompts */
    continuous: boolean;
    /** Enable dual tournament RL validation */
    dualTournamentRL: boolean;
    /** Enable validation of security fixes */
    validationEnabled: boolean;
    /** Apple security audit configuration */
    auditConfig?: Partial<AppleSecurityAuditOptions>;
    /** Callback for progress updates */
    onProgress?: (progress: SecurityAuditProgress) => void;
    /** Callback for tournament results */
    onTournamentResult?: (result: TournamentOutcome) => void;
    /** Maximum iterations for continuous mode */
    maxIterations?: number;
    /** Target scope for Apple products/services */
    targetScope?: 'services' | 'devices' | 'network' | 'all';
}
export interface SecurityAuditProgress {
    phase: string;
    iteration: number;
    totalIterations: number;
    currentPhase: number;
    totalPhases: number;
    status: 'running' | 'completed' | 'failed';
    message: string;
    findings: AppleSecurityFinding[];
    tournamentStats: TournamentStats;
}
export interface TournamentStats {
    primaryWins: number;
    refinerWins: number;
    ties: number;
    totalRounds: number;
    averageScore: number;
    humanAccuracyScore: number;
}
export interface SecurityAuditResult {
    success: boolean;
    findings: AppleSecurityFinding[];
    fixes: SecurityFix[];
    tournamentOutcomes: TournamentOutcome[];
    metrics: SecurityAuditMetrics;
    report: any;
}
export interface SecurityFix {
    id: string;
    findingId: string;
    type: 'patch' | 'configuration' | 'hardening' | 'mitigation';
    description: string;
    applied: boolean;
    validated: boolean;
    validationScore: number;
}
export interface SecurityAuditMetrics {
    totalFindings: number;
    criticalFindings: number;
    highFindings: number;
    mediumFindings: number;
    lowFindings: number;
    fixesApplied: number;
    fixesValidated: number;
    validationSuccessRate: number;
    tournamentRounds: number;
    primaryWinRate: number;
    refinerWinRate: number;
    durationMs: number;
}
export declare class SecurityAuditRunner {
    private options;
    private audit;
    private tournamentStats;
    private tournamentOutcomes;
    private fixes;
    private startTime;
    constructor(options: SecurityAuditRunnerOptions);
    /**
     * Run the full security audit with dual tournament RL validation
     */
    run(): Promise<SecurityAuditResult>;
    /**
     * Run initial security audit
     */
    private runInitialAudit;
    /**
     * Analyze vulnerabilities using dual tournament RL
     */
    private runVulnerabilityAnalysis;
    /**
     * Run a tournament for a specific finding
     */
    private runFindingTournament;
    /**
     * Generate security fixes based on findings
     */
    private generateSecurityFixes;
    /**
     * Determine the type of fix based on finding
     */
    private determineFixType;
    /**
     * Validate security fixes using dual tournament RL
     */
    private validateFixes;
    /**
     * Run a validation tournament for a fix
     */
    private runValidationTournament;
    /**
     * Run continuous improvement loop
     */
    private runContinuousImprovement;
    /**
     * Update tournament statistics
     */
    private updateTournamentStats;
    /**
     * Calculate final metrics
     */
    private calculateMetrics;
    /**
     * Generate final report
     */
    private generateFinalReport;
    /**
     * Emit progress update
     */
    private emitProgress;
}
/**
 * Run a complete security audit with dual tournament RL validation
 */
export declare function runSecurityAuditWithDualTournamentRL(options?: Partial<SecurityAuditRunnerOptions>): Promise<SecurityAuditResult>;
export default SecurityAuditRunner;
//# sourceMappingURL=securityAuditRunner.d.ts.map