import { SecurityLevel, CIAComponent } from "../types/cia"; import { BusinessImpactDetail, BusinessImpactDetails } from "../types/cia-services"; /** * Risk impact levels */ export type RiskImpactLevel = "Minimal" | "Low" | "Medium" | "High" | "Critical"; /** * Risk impact structure with comprehensive business impact details */ export interface RiskImpact { /** Human-readable description of the risk impact */ description: string; /** Overall business impact summary */ impact: string; /** Impact level classification */ level: RiskImpactLevel; /** Annual financial loss estimate (optional) */ annualLoss?: string; /** Time required to recover from incident (optional) */ recoveryTime?: string; /** Compliance frameworks affected (optional) */ frameworks?: string[]; /** Competitive business impact (optional) */ competitiveImpact?: string; /** Financial impact details (optional) */ financialImpact?: string; /** Operational impact details (optional) */ operationalImpact?: string; /** Reputational impact details (optional) */ reputationalImpact?: string; /** Regulatory compliance impact (optional) */ regulatoryImpact?: string; } /** * Type guard to check if a value is a valid RiskImpactLevel * * @param value - Value to check * @returns True if the value is a valid RiskImpactLevel */ export declare function isRiskImpactLevel(value: unknown): value is RiskImpactLevel; /** * Type guard to check if a value is a valid RiskImpact object * * @param value - Value to check * @returns True if the value has the required RiskImpact properties */ export declare function isRiskImpact(value: unknown): value is RiskImpact; /** * Type guard to check if a value is a valid CIA component for risk impact * * @param value - Value to check * @returns True if the value is a valid CIA component */ export declare function isValidCIAComponent(value: unknown): value is CIAComponent; /** * Get risk level from security level * * @param level - Security level to convert * @returns Risk level string corresponding to the security level * * @example * ```typescript * getRiskLevelFromSecurityLevel("None") // Returns "Critical" * getRiskLevelFromSecurityLevel("Very High") // Returns "Minimal" * ``` */ export declare function getRiskLevelFromSecurityLevel(level: SecurityLevel): string; /** * Financial impact data by security level */ export declare const financialImpactByLevel: Record; /** * Operational impact data by security level */ export declare const operationalImpactByLevel: Record; /** * Reputational impact data by security level */ export declare const reputationalImpactByLevel: Record; /** * Risk impact data by security level for availability */ export declare const AVAILABILITY_RISK_IMPACTS: Record; /** * Risk impact data by security level for integrity */ export declare const INTEGRITY_RISK_IMPACTS: Record; /** * Risk impact data by security level for confidentiality */ export declare const CONFIDENTIALITY_RISK_IMPACTS: Record; /** * Get business impact details for a specific component and security level * * This function retrieves comprehensive business impact information based on * the CIA component (availability, integrity, or confidentiality) and the * selected security level. * * @param component - CIA component to get impact for * @param level - Security level for the component * @returns Business impact details including risk level, revenue loss, and recovery time * @throws {Error} If component or level is invalid * * @example * ```typescript * const impact = getBusinessImpact("availability", "High"); * console.log(impact.riskLevel); // "Low" * console.log(impact.annualRevenueLoss); // "Potential revenue loss <2% annually" * ``` */ export declare function getBusinessImpact(component: CIAComponent, level: SecurityLevel): BusinessImpactDetail; /** * Calculate the overall business impact level based on security levels * * Uses a weighted algorithm that gives higher priority to confidentiality * when determining the overall business impact across all CIA components. * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level * @param confidentialityLevel - Confidentiality security level * @returns Overall business impact level (Minimal to Critical) * * @example * ```typescript * // All Very High security = minimal impact * calculateBusinessImpactLevel("Very High", "Very High", "Very High") // Returns "Minimal" * * // All High security = Low impact * calculateBusinessImpactLevel("High", "High", "High") // Returns "Low" * * // Mixed levels with confidentiality weighted higher * // Formula: (1 [High] + 2 [Moderate] + 4 [None] * 1.5) / 3.5 = (1 + 2 + 6) / 3.5 = 9 / 3.5 = 2.57 → rounds to 3 ("High") * calculateBusinessImpactLevel("High", "Moderate", "None") // Returns "High" * ``` */ export declare function calculateBusinessImpactLevel(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): RiskImpactLevel; /** * Get risk impact level label * * Converts a risk level into a human-readable description of the business * impact and required response. * * @param level - Risk level to get label for * @returns Human-readable description of the risk impact level * * @example * ```typescript * getRiskImpactLabel("Critical") // Returns "Severe business impact requiring immediate action" * getRiskImpactLabel("Low") // Returns "Minor business impact to be addressed in normal operations" * getRiskImpactLabel("Unknown") // Returns "Impact level not defined" * ``` */ export declare function getRiskImpactLabel(level: string): string; /** * Create a default business impact object with minimum required fields * * Generates a basic business impact assessment structure for a given * CIA component and security level, suitable for initial assessments * or as a fallback when detailed data is unavailable. * * @param component - CIA component type (availability, integrity, confidentiality, or custom) * @param level - Security level for the component * @returns Business impact details with financial, operational, and reputational aspects * * @example * ```typescript * const impact = createDefaultBusinessImpact("availability", "Moderate"); * console.log(impact.summary); // "availability impact analysis for Moderate level" * console.log(impact.financial?.riskLevel); // "Medium" * ``` */ export declare function createDefaultBusinessImpact(component: string, level: SecurityLevel): BusinessImpactDetails; //# sourceMappingURL=riskImpactData.d.ts.map