import { SecurityLevel } from "../types/cia"; import { CIAComponentType, CIADataProvider } from "../types/cia-services"; import { ComplianceGapAnalysis, ComplianceStatus, ComplianceStatusDetails } from "../types/compliance"; import { BaseService } from "./BaseService"; /** * Status of compliance with a framework */ export type ComplianceStatusType = "compliant" | "partially-compliant" | "non-compliant"; /** * Service for compliance mapping and status reporting * * ## Compliance Perspective * * This service maps security levels to compliance with various regulatory * frameworks, helping organizations understand their compliance posture * and identify gaps that need to be addressed to meet regulatory * requirements. 📋 */ export declare class ComplianceService extends BaseService { private frameworkRequirements; constructor(dataProvider: CIADataProvider); /** * Get compliance status based on security levels * * Evaluates current security levels against multiple compliance frameworks * (NIST 800-53, ISO 27001, GDPR, HIPAA, SOC2, PCI DSS, etc.) and provides * detailed compliance status, gaps, and remediation guidance. * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level * @param confidentialityLevel - Confidentiality security level * @returns Compliance status details including compliant/non-compliant frameworks and remediation steps * * @example * ```typescript * const service = new ComplianceService(dataProvider); * * // Check compliance for High security levels * const status = service.getComplianceStatus('High', 'High', 'High'); * console.log('Overall Status:', status.status); * console.log('Compliance Score:', status.complianceScore, '%'); * console.log('Compliant Frameworks:', status.compliantFrameworks); * console.log('Non-Compliant Frameworks:', status.nonCompliantFrameworks); * * // Get remediation steps * status.remediationSteps.forEach(step => { * console.log('- ', step); * }); * ``` */ getComplianceStatus(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): ComplianceStatusDetails; /** * Get compliance status text */ getComplianceStatusText(availabilityLevel: SecurityLevel, integrityLevel?: SecurityLevel, confidentialityLevel?: SecurityLevel): string; private getComplianceStatusTextCalledForTesting; /** * Get compliant frameworks for a specific security level * * Identifies which compliance frameworks are fully met by the current * security configuration. Useful for compliance reporting and gap analysis. * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level (optional, defaults to availabilityLevel) * @param confidentialityLevel - Confidentiality security level (optional, defaults to availabilityLevel) * @returns Array of compliant framework names * * @example * ```typescript * const service = new ComplianceService(dataProvider); * * // Check which frameworks High security meets * const frameworks = service.getCompliantFrameworks('High', 'High', 'High'); * console.log('Compliant with:', frameworks.join(', ')); * // Output: "Compliant with: NIST 800-53, ISO 27001, NIST CSF, GDPR, HIPAA, SOC2, PCI DSS..." * * // Check moderate security levels * const moderateFrameworks = service.getCompliantFrameworks('Moderate', 'Moderate', 'Moderate'); * console.log('Moderate meets:', moderateFrameworks.length, 'frameworks'); * ``` */ getCompliantFrameworks(availabilityLevel: SecurityLevel, integrityLevel?: SecurityLevel, confidentialityLevel?: SecurityLevel): string[]; /** * Get description of a specific compliance framework * * @param framework - Framework name * @returns Framework description */ getFrameworkDescription(framework: string): string; /** * Get compliance status for a specific framework * * Evaluates whether current security levels meet a specific compliance * framework's requirements. Returns detailed status showing full compliance, * partial compliance, or non-compliance. * * @param framework - Framework name (e.g., "NIST 800-53", "ISO 27001", "GDPR") * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level * @param confidentialityLevel - Confidentiality security level * @returns Compliance status for the framework ("compliant", "partially-compliant", or "non-compliant") * * @example * ```typescript * const service = new ComplianceService(dataProvider); * * // Check GDPR compliance * const gdprStatus = service.getFrameworkStatus('GDPR', 'High', 'High', 'High'); * console.log('GDPR Status:', gdprStatus); // "compliant" * * // Check HIPAA with moderate levels * const hipaaStatus = service.getFrameworkStatus('HIPAA', 'Moderate', 'Moderate', 'Moderate'); * console.log('HIPAA Status:', hipaaStatus); // "partially-compliant" or "non-compliant" * * // Evaluate all frameworks * const frameworks = ['NIST 800-53', 'ISO 27001', 'GDPR', 'HIPAA']; * frameworks.forEach(framework => { * const status = service.getFrameworkStatus(framework, 'High', 'High', 'Moderate'); * console.log(`${framework}: ${status}`); * }); * ``` */ getFrameworkStatus(framework: string, availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel): ComplianceStatusType; /** * Get required security level for a specific framework and component * * @param framework - Framework name * @param component - CIA component * @returns Required security level */ getFrameworkRequiredLevel(framework: string, component: CIAComponentType): SecurityLevel; /** * Calculate compliance score based on compliant, partially compliant, and non-compliant frameworks * * @param compliantCount - Number of compliant frameworks * @param partiallyCompliantCount - Number of partially compliant frameworks * @param nonCompliantCount - Number of non-compliant frameworks * @returns Compliance score (0-100) */ private calculateComplianceScore; /** * Generate remediation steps based on security levels and non-compliant frameworks * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level * @param confidentialityLevel - Confidentiality security level * @param nonCompliantFrameworks - List of non-compliant frameworks * @param partiallyCompliantFrameworks - List of partially compliant frameworks * @returns Array of remediation steps */ private generateRemediationSteps; /** * Generate requirements based on non-compliant and partially compliant frameworks * * @param nonCompliantFrameworks - List of non-compliant frameworks * @param partiallyCompliantFrameworks - List of partially compliant frameworks * @returns Array of requirements */ private generateRequirements; /** * Get compliance gap analysis between current and required security levels */ getComplianceGapAnalysis(availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel, framework?: string): ComplianceGapAnalysis; /** * Generate recommendations for a framework based on gaps */ private generateRecommendationsForFramework; /** * Get the gap between current and required security levels */ private getSecurityLevelGap; } /** * Create a ComplianceService with the provided data provider * * @param dataProvider - Data provider with CIA options (optional) * @returns ComplianceService instance */ export declare function createComplianceService(dataProvider?: CIADataProvider): ComplianceService; /** * Get compliance status based on security levels * * @param availabilityLevel - Availability security level * @param integrityLevel - Integrity security level * @param confidentialityLevel - Confidentiality security level * @returns Compliance status details */ export declare const getComplianceStatus: (availabilityLevel: SecurityLevel, integrityLevel: SecurityLevel, confidentialityLevel: SecurityLevel) => Promise; //# sourceMappingURL=complianceService.d.ts.map