/**
 * Compliance Validation Service
 *
 * Comprehensive service for validating documents against compliance considerations
 * and enterprise governance policies to ensure regulatory requirements are met.
 */
import { ProjectData, ComplianceStatus, DeviationSeverity, RiskLevel, Impact, Priority, ComplianceIssue, ComplianceRecommendation } from '../types/standardsCompliance.js';
export interface DocumentComplianceValidation {
    documentId: string;
    documentType: string;
    content: string;
    complianceScore: number;
    complianceStatus: ComplianceStatus;
    validationDate: Date;
    issues: ComplianceIssue[];
    recommendations: ComplianceRecommendation[];
    governancePolicyCompliance: GovernancePolicyValidation;
    regulatoryCompliance: RegulatoryComplianceValidation;
    enterpriseStandardsCompliance: EnterpriseStandardsValidation;
}
export interface GovernancePolicyValidation {
    overallCompliance: boolean;
    policyChecks: PolicyCheck[];
    missingPolicies: string[];
    policyViolations: PolicyViolation[];
}
export interface PolicyCheck {
    policyId: string;
    policyName: string;
    compliant: boolean;
    severity: DeviationSeverity;
    description: string;
    evidence: string[];
}
export interface PolicyViolation {
    violationId: string;
    policyId: string;
    severity: DeviationSeverity;
    description: string;
    impact: Impact;
    remediation: string;
}
export interface RegulatoryComplianceValidation {
    overallCompliance: boolean;
    applicableRegulations: ApplicableRegulation[];
    complianceGaps: ComplianceGap[];
    riskAssessment: RegulatoryRiskAssessment;
}
export interface ApplicableRegulation {
    regulationId: string;
    name: string;
    jurisdiction: string;
    compliant: boolean;
    requirements: RegulationRequirement[];
}
export interface RegulationRequirement {
    requirementId: string;
    description: string;
    compliant: boolean;
    evidence: string[];
    gaps: string[];
}
export interface ComplianceGap {
    gapId: string;
    regulationId: string;
    description: string;
    severity: DeviationSeverity;
    impact: Impact;
    remediation: string;
    timeline: string;
}
export interface RegulatoryRiskAssessment {
    overallRisk: RiskLevel;
    riskFactors: RiskFactor[];
    mitigationStrategies: MitigationStrategy[];
}
export interface RiskFactor {
    factorId: string;
    description: string;
    probability: number;
    impact: Impact;
    riskLevel: RiskLevel;
}
export interface MitigationStrategy {
    strategyId: string;
    description: string;
    effectiveness: number;
    implementationCost: number;
    timeline: string;
}
export interface EnterpriseStandardsValidation {
    overallCompliance: boolean;
    standardsChecks: StandardCheck[];
    deviations: StandardDeviation[];
    improvementAreas: ImprovementArea[];
}
export interface StandardCheck {
    standardId: string;
    standardName: string;
    category: string;
    compliant: boolean;
    score: number;
    requirements: StandardRequirement[];
}
export interface StandardRequirement {
    requirementId: string;
    description: string;
    compliant: boolean;
    evidence: string[];
}
export interface StandardDeviation {
    deviationId: string;
    standardId: string;
    description: string;
    severity: DeviationSeverity;
    justification: string;
    approved: boolean;
}
export interface ImprovementArea {
    areaId: string;
    description: string;
    priority: Priority;
    recommendations: string[];
    estimatedEffort: string;
}
export interface ComplianceValidationConfig {
    enabledStandards: string[];
    governancePolicies: GovernancePolicy[];
    regulatoryFrameworks: RegulatoryFramework[];
    enterpriseStandards: EnterpriseStandard[];
    validationRules: ValidationRule[];
    riskThresholds: RiskThreshold[];
}
export interface GovernancePolicy {
    policyId: string;
    name: string;
    category: string;
    mandatory: boolean;
    requirements: string[];
    validationCriteria: string[];
}
export interface RegulatoryFramework {
    frameworkId: string;
    name: string;
    jurisdiction: string;
    applicableIndustries: string[];
    requirements: RegulationRequirement[];
}
export interface EnterpriseStandard {
    standardId: string;
    name: string;
    category: string;
    version: string;
    requirements: StandardRequirement[];
}
export interface ValidationRule {
    ruleId: string;
    name: string;
    category: string;
    severity: DeviationSeverity;
    condition: string;
    action: string;
}
export interface RiskThreshold {
    category: string;
    low: number;
    medium: number;
    high: number;
    critical: number;
}
/**
 * Comprehensive Compliance Validation Service
 */
export declare class ComplianceValidationService {
    private standardsEngine;
    private pmbokValidator;
    private iso15408Validator;
    private config;
    constructor(config: ComplianceValidationConfig);
    /**
     * Validate document compliance against all configured standards and policies
     */
    validateDocumentCompliance(documentId: string, documentType: string, content: string, projectData?: ProjectData): Promise<DocumentComplianceValidation>;
    /**
     * Validate governance policies compliance
     */
    private validateGovernancePolicies;
    /**
     * Validate regulatory compliance
     */
    private validateRegulatoryCompliance;
    /**
     * Validate enterprise standards compliance
     */
    private validateEnterpriseStandards;
    /**
     * Calculate overall compliance score
     */
    private calculateOverallComplianceScore;
    /**
     * Determine compliance status based on score
     */
    private determineComplianceStatus;
    /**
     * Generate compliance findings (issues and recommendations)
     */
    private generateComplianceFindings;
    private isPolicyApplicable;
    private validatePolicy;
    private getApplicableRegulatoryFrameworks;
    private validateRegulation;
    private assessRegulatoryRisk;
    private isStandardApplicable;
    private validateEnterpriseStandard;
    private contentContainsRequirement;
    /**
     * Get default compliance validation configuration
     */
    static getDefaultConfig(): ComplianceValidationConfig;
}
//# sourceMappingURL=ComplianceValidationService.d.ts.map