import { SecurityLevel } from "../types/cia"; import { BusinessImpactDetails, CIAComponentType, CIADataProvider, CIADetails, ROIEstimate, ROIEstimatesMap, TechnicalImplementationDetails } from "../types/cia-services"; import { BaseService } from "./BaseService"; /** * Metrics for ROI assessment */ export interface ROIMetrics { value: string; percentage: string; description: string; } /** * Get CIA options for a specific component * * @param component - Component type * @returns Option mapping for the component */ export declare function getCIAOptions(component: CIAComponentType): Record; /** * Main service to provide CIA content and utilities throughout the application * * ## Business Perspective * * This service acts as a central hub for accessing security-related information * across the CIA triad, providing consistent data and calculations for business * impact analysis, technical implementations, and compliance requirements. 🔒 */ export declare class CIAContentService extends BaseService { protected dataProvider: CIADataProvider; private businessImpactService; private complianceService; private securityMetricsService; private technicalImplementationService; private securityResourceService; constructor(dataProvider?: CIADataProvider); /** * Initialize the service * This is a placeholder for any async initialization that might be needed */ initialize(): Promise; /** * Get options data for a CIA component * * Retrieves all security level options (None through Very High) for a specific * CIA triad component, including descriptions, technical details, costs, and recommendations. * * @param component - CIA component type ('confidentiality', 'integrity', or 'availability') * @returns Record mapping each SecurityLevel to its CIADetails * * @example * ```typescript * const service = new CIAContentService(dataProvider); * const options = service.getCIAOptions('confidentiality'); * * // Access specific level * console.log(options['High'].description); * console.log(options['High'].capex); // CAPEX percentage * * // Iterate through all levels * Object.entries(options).forEach(([level, details]) => { * console.log(`${level}: ${details.description}`); * }); * ``` */ getCIAOptions(component: CIAComponentType): Record; /** * Get details for a specific component and security level * * Retrieves comprehensive details for a specific CIA component at a given * security level, including description, technical requirements, business impact, * cost estimates (CAPEX/OPEX), and implementation recommendations. * * @param component - CIA component type ('confidentiality', 'integrity', or 'availability') * @param level - Security level ('None', 'Low', 'Moderate', 'High', 'Very High') * @returns CIADetails object with all information, or undefined if invalid component * * @example * ```typescript * const service = new CIAContentService(dataProvider); * * // Get High confidentiality details * const details = service.getComponentDetails('confidentiality', 'High'); * * if (details) { * console.log('Description:', details.description); * console.log('Technical:', details.technical); * console.log('Business Impact:', details.businessImpact); * console.log('CAPEX:', details.capex, '%'); * console.log('OPEX:', details.opex, '%'); * console.log('Colors:', details.bg, details.text); * * // Access recommendations * details.recommendations?.forEach(rec => { * console.log('- ', rec); * }); * } * ``` */ getComponentDetails(component: CIAComponentType, level: SecurityLevel): CIADetails | undefined; /** * Normalise an incoming security‑level value (trim & lower‑case) */ private static normalizeLevel; /** * Get ROI (Return on Investment) estimate for a security level * * Calculates the expected return on investment for implementing security * controls at a specific level. Higher security levels typically provide * better ROI through risk mitigation and incident prevention. * * @param level - Security level to calculate ROI for * @returns ROI estimate with value, return rate, and description * * @example * ```typescript * const service = new CIAContentService(dataProvider); * * // Get ROI for High security level * const roi = service.getROIEstimate('High'); * console.log('ROI Value:', roi.value); // e.g., "250%" * console.log('Return Rate:', roi.returnRate); // e.g., "150%" * console.log('Description:', roi.description); * * // Compare ROI across levels * ['Low', 'Moderate', 'High'].forEach(level => { * const levelRoi = service.getROIEstimate(level as SecurityLevel); * console.log(`${level}: ${levelRoi.value}`); * }); * ``` */ getROIEstimate(level: SecurityLevel): ROIEstimate; /** * Get ROI estimates for a specific security level */ getROIEstimates(level: SecurityLevel): ROIEstimate; /** * Convert security level to ROI key * * @param level - Security level * @returns ROI key corresponding to the security level */ private securityLevelToROIKey; /** * Get overall ROI estimates map */ getAllROIEstimates(): ROIEstimatesMap; getBusinessImpact(component: CIAComponentType, level: SecurityLevel): BusinessImpactDetails; /** * Get technical implementation details for a component and security level */ getTechnicalImplementation(_component: CIAComponentType, level: SecurityLevel): TechnicalImplementationDetails; /** * Get component implementation details */ getComponentImplementationDetails(component: CIAComponentType, level: SecurityLevel): TechnicalImplementationDetails; /** * Get business impact description */ getBusinessImpactDescription(component: CIAComponentType, level: SecurityLevel): string; /** * Get technical description */ getTechnicalDescription(component: CIAComponentType, level: SecurityLevel): string; /** * Get detailed description */ getDetailedDescription(component: CIAComponentType, level: SecurityLevel): BusinessImpactDetails; /** * Get recommendations */ getRecommendations(component: CIAComponentType, level: SecurityLevel): string[]; /** * Calculate ROI */ calculateRoi(level: SecurityLevel, implementationCost: number): ROIMetrics; /** * Get security metrics */ getSecurityMetrics(availabilityLevel: SecurityLevel, integrityLevel?: SecurityLevel, confidentialityLevel?: SecurityLevel): import("./securityMetricsService").SecurityMetrics; /** * Get compliance status */ getComplianceStatus(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): import("../types").ComplianceStatusDetails; /** * Get component metrics */ getComponentMetrics(component: CIAComponentType, level: SecurityLevel): import("./securityMetricsService").ComponentMetrics; /** * Get impact metrics */ getImpactMetrics(component: CIAComponentType, level: SecurityLevel): import("./securityMetricsService").ImpactMetrics; /** * Get security resources */ getSecurityResources(component: CIAComponentType, level: SecurityLevel): import(".").EnhancedSecurityResource[]; /** * Get security level description */ getSecurityLevelDescription(level: SecurityLevel): string; /** * Get protection level */ getProtectionLevel(level: SecurityLevel): string; /** * Calculate business impact level based on security levels * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level (optional, defaults to availabilityLevel) * @param confidentialityLevel - Confidentiality security level (optional, defaults to availabilityLevel) * @returns Business impact level description */ calculateBusinessImpactLevel(availabilityLevel: SecurityLevel, integrityLevel?: SecurityLevel, confidentialityLevel?: SecurityLevel): string; /** * Get risk badge variant */ getRiskBadgeVariant(riskLevel: string): "error" | "info" | "neutral" | "success" | "warning"; /** * Get category icon */ getCategoryIcon(category: string): string; /** * Get value points */ getValuePoints(level: SecurityLevel): string[]; /** * Get implementation considerations for the given CIA levels. * * @param levels - Tuple containing exactly three security levels in order: [availability, integrity, confidentiality] * @returns String with implementation considerations */ getImplementationConsiderations(levels: [SecurityLevel, SecurityLevel, SecurityLevel]): string; /** * Get security icon */ getSecurityIcon(level: SecurityLevel): string; /** * Get compliant frameworks */ getCompliantFrameworks(level: SecurityLevel): string[]; /** * Get framework description */ getFrameworkDescription(framework: string): string; /** * Get framework required level for a component */ getFrameworkRequiredLevel(component: CIAComponentType, level: SecurityLevel): string; /** * Get implementation time */ getImplementationTime(level: SecurityLevel): string; /** * Get total implementation time for combined security levels */ getTotalImplementationTime(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): string; /** * Get required expertise based on selected security levels */ getRequiredExpertise(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): string; /** * Get recommended implementation plan based on selected security levels */ getRecommendedImplementationPlan(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): string; /** * Get information sensitivity classification for a security level * * @param level Security level * @returns Information sensitivity classification */ getInformationSensitivity(level: SecurityLevel): string; /** * Get component content details for a specific component and security level * * @param component - CIA component type (availability, integrity, confidentiality) * @param level - Security level * @returns Component content details */ getComponentContent(component: CIAComponentType, level: string): { description: string; technical: string; businessImpact: string; recommendations: string[]; }; /** * Get business impact content for a specific component and security level * * @param component - CIA component type * @param level - Security level * @returns Business impact content as formatted string */ getBusinessImpactContent(component: CIAComponentType, level: SecurityLevel): string; /** * Get summary content for all three CIA components * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level * @param confidentialityLevel - Confidentiality security level * @returns Summary content as formatted string */ getSummaryContent(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): string; /** * Get compliance description for a specific security level * * @param level - Security level * @returns Compliance description */ getComplianceDescription(level: SecurityLevel): string; /** * Get key value points for a specific component and security level * * @param component - CIA component type * @param level - Security level * @returns Array of value points */ getKeyValuePoints(_component: CIAComponentType, level: SecurityLevel): string[]; /** * Get default privacy impact based on security level * * @param level - Security level * @returns Privacy impact description */ getDefaultPrivacyImpact(level: SecurityLevel): string; /** * Get default SLA metrics based on security level * * @param level - Security level * @returns SLA metrics for availability */ getDefaultSLAMetrics(level: SecurityLevel): { uptime: string; rto: string; rpo: string; mttr: string; sla: string; }; /** * Get default data validation level based on security level * * @param level - Security level * @returns Validation level description */ getDefaultValidationLevel(level: SecurityLevel): string; /** * Get default error rate based on security level * * @param level - Security level * @returns Error rate description */ getDefaultErrorRate(level: SecurityLevel): string; } declare const defaultService: CIAContentService; export default defaultService; /** * Create a CIA content service with the specified data provider * * @param dataProvider - Optional data provider for CIA options * @returns A new CIAContentService instance */ export declare function createCIAContentService(dataProvider?: CIADataProvider): CIAContentService; export declare const getInformationSensitivity: (level: SecurityLevel) => string; export declare const getRiskBadgeVariant: (riskLevel: string) => "error" | "warning" | "info" | "success" | "neutral"; export declare const getROIEstimate: (level: SecurityLevel) => ROIEstimate; export declare const getValuePoints: (level: SecurityLevel) => string[]; export type { BusinessImpactDetails, TechnicalImplementationDetails }; /** * Get security summary based on security levels * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level * @param confidentialityLevel - Confidentiality security level * @returns Security summary details */ export declare const getSecuritySummary: (availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel) => Promise>; /** * Get availability details based on security level * * @param level - Security level * @returns Availability details */ export declare const getAvailabilityDetails: (level: SecurityLevel) => Promise; /** * Get integrity details based on security level * * @param level - Security level * @returns Integrity details */ export declare const getIntegrityDetails: (level: SecurityLevel) => Promise; export declare const getConfidentialityDetails: (level: SecurityLevel) => Promise; //# sourceMappingURL=ciaContentService.d.ts.map