/**
 * Risk Calculator using Probability × Impact scoring method
 *
 * @module qa/risk-calculator
 * @since v0.8.0
 */
import { Risk, RiskAssessmentResult, RiskCategory, RiskSeverity } from './types.js';
export declare class RiskCalculator {
    /**
     * Calculate risk score using quantitative formula: P × I
     *
     * @param probability - Probability of risk occurring (0.0-1.0)
     * @param impact - Impact severity if risk occurs (1-10)
     * @returns Risk score (0.0-10.0)
     * @throws Error if probability or impact out of range
     *
     * @example
     * ```typescript
     * const score = RiskCalculator.calculateRiskScore(0.9, 10);
     * // Returns: 9.0 (CRITICAL)
     * ```
     */
    static calculateRiskScore(probability: number, impact: number): number;
    /**
     * Determine severity level based on risk score
     *
     * @param score - Risk score (0.0-10.0)
     * @returns Severity level
     *
     * Thresholds:
     * - 9.0-10.0: CRITICAL (must fix immediately)
     * - 6.0-8.9: HIGH (should fix before release)
     * - 3.0-5.9: MEDIUM (monitor, fix if time permits)
     * - 0.0-2.9: LOW (acceptable risk)
     */
    static determineSeverity(score: number): RiskSeverity;
    /**
     * Calculate overall risk score using weighted average
     *
     * Higher severity risks are weighted more heavily:
     * - CRITICAL: 1.0
     * - HIGH: 0.7
     * - MEDIUM: 0.4
     * - LOW: 0.1
     *
     * @param risks - Array of risk objects
     * @returns Overall weighted risk score (0.0-10.0)
     *
     * @example
     * ```typescript
     * const risks = [
     *   { score: 9.0, severity: 'CRITICAL', ... },
     *   { score: 6.0, severity: 'HIGH', ... },
     *   { score: 2.0, severity: 'LOW', ... }
     * ];
     * const overall = RiskCalculator.calculateOverallRisk(risks);
     * // Returns: ~7.5 (weighted towards critical risks)
     * ```
     */
    static calculateOverallRisk(risks: Risk[]): number;
    private static readonly CATEGORIES;
    /**
     * Group risks by category and calculate category scores
     *
     * @param risks - Array of risk objects
     * @returns Object with risk scores per category
     *
     * @example
     * ```typescript
     * const grouped = RiskCalculator.groupRisksByCategory(risks);
     * // Returns: { security: 7.5, technical: 4.2, implementation: 3.0, operational: 2.1 }
     * ```
     */
    static groupRisksByCategory(risks: Risk[]): Record<RiskCategory, number>;
    /**
     * Normalize probability from descriptive text to numeric value
     *
     * @param description - Text description (low/medium/high or percentage)
     * @returns Numeric probability (0.0-1.0)
     *
     * @example
     * ```typescript
     * RiskCalculator.normalizeProbability('high'); // 0.8
     * RiskCalculator.normalizeProbability('50%'); // 0.5
     * RiskCalculator.normalizeProbability('0.9'); // 0.9
     * ```
     */
    static normalizeProbability(description: string): number;
    /**
     * Normalize impact from descriptive text to numeric value
     *
     * @param description - Text description (minor/moderate/major/critical)
     * @returns Numeric impact (1-10)
     *
     * @example
     * ```typescript
     * RiskCalculator.normalizeImpact('critical'); // 10
     * RiskCalculator.normalizeImpact('moderate'); // 5
     * ```
     */
    static normalizeImpact(description: string): number;
    /**
     * Create a risk object from raw data
     *
     * @param data - Partial risk data
     * @returns Complete risk object with calculated fields
     */
    static createRisk(data: {
        id: string;
        category: RiskCategory;
        title: string;
        description: string;
        probability: number | string;
        impact: number | string;
        mitigation: string;
        location: string;
        acceptance_criteria?: string;
    }): Risk;
    /**
     * Calculate full risk assessment result
     *
     * @param risks - Array of risk objects
     * @returns Complete risk assessment result
     */
    static calculateAssessment(risks: Risk[]): RiskAssessmentResult;
}
//# sourceMappingURL=risk-calculator.d.ts.map