/**
 * Adaptive Scope Control Service
 * Implements intelligent scope monitoring and control mechanisms following PMBOK standards
 *
 * @class AdaptiveScopeControlService
 * @description Provides adaptive scope control with real-time monitoring, scope creep detection,
 * and automated control mechanisms aligned with PMBOK 7th Edition standards
 *
 * @version 1.0.0
 * @since 3.2.0
 */
import { EventEmitter } from 'events';
import { IProject } from '../models/Project.js';
export interface ScopeChange {
    id: string;
    projectId: string;
    changeType: 'addition' | 'reduction' | 'modification' | 'clarification';
    description: string;
    requestedBy: string;
    requestDate: Date;
    impact: ScopeImpact;
    status: 'pending' | 'approved' | 'rejected' | 'implemented';
    approvedBy?: string;
    approvalDate?: Date;
    implementationDate?: Date;
    riskLevel: 'low' | 'medium' | 'high' | 'critical';
    pmbokCompliance: boolean;
}
export interface ScopeImpact {
    scheduleImpact: {
        days: number;
        percentage: number;
        criticalPath: boolean;
    };
    costImpact: {
        amount: number;
        percentage: number;
        budgetCategory: string;
    };
    resourceImpact: {
        additionalResources: string[];
        skillsRequired: string[];
        availabilityImpact: boolean;
    };
    qualityImpact: {
        riskToQuality: boolean;
        testingImpact: boolean;
        acceptanceCriteriaChanges: boolean;
    };
    stakeholderImpact: {
        affectedStakeholders: string[];
        communicationRequired: boolean;
        approvalRequired: boolean;
    };
}
export interface ScopeMetrics {
    totalChanges: number;
    approvedChanges: number;
    rejectedChanges: number;
    pendingChanges: number;
    scopeCreepIndex: number;
    changeVelocity: number;
    impactScore: number;
    pmbokComplianceScore: number;
    riskScore: number;
}
export interface AdaptiveControlSettings {
    autoApprovalThreshold: number;
    escalationThreshold: number;
    scopeCreepThreshold: number;
    monitoringFrequency: number;
    stakeholderNotificationEnabled: boolean;
    pmbokValidationEnabled: boolean;
    predictiveAnalyticsEnabled: boolean;
}
export interface ScopeAlert {
    id: string;
    projectId: string;
    alertType: 'scope_creep' | 'threshold_breach' | 'compliance_violation' | 'risk_escalation';
    severity: 'info' | 'warning' | 'critical';
    message: string;
    timestamp: Date;
    actionRequired: boolean;
    recommendedActions: string[];
}
export declare class AdaptiveScopeControlService extends EventEmitter {
    private pmbokValidator;
    private monitoringIntervals;
    private scopeChanges;
    private projectSettings;
    constructor();
    /**
     * Initialize monitoring for a project
     */
    initializeProjectMonitoring(project: IProject, settings?: Partial<AdaptiveControlSettings>): Promise<void>;
    /**
     * Submit a scope change request
     */
    submitScopeChange(change: Omit<ScopeChange, 'id' | 'status' | 'riskLevel' | 'pmbokCompliance'>): Promise<ScopeChange>;
    /**
     * Approve a scope change
     */
    approveScopeChange(changeId: string, approvedBy: string): Promise<ScopeChange>;
    /**
     * Detect scope creep using adaptive algorithms
     */
    detectScopeCreep(projectId: string, newChange?: ScopeChange): Promise<boolean>;
    /**
     * Get comprehensive scope metrics for a project
     */
    getScopeMetrics(projectId: string): Promise<ScopeMetrics>;
    /**
     * Get scope alerts for a project
     */
    getScopeAlerts(projectId: string): Promise<ScopeAlert[]>;
    /**
     * Stop monitoring for a project
     */
    stopProjectMonitoring(projectId: string): void;
    private initializeDefaultSettings;
    private mergeSettings;
    private startMonitoring;
    private performPeriodicCheck;
    private performInitialComplianceCheck;
    private assessRiskLevel;
    private validatePMBOKCompliance;
    private shouldAutoApprove;
    private calculateChangeImpactScore;
    private autoApproveChange;
    private findScopeChange;
    private updateProjectComplianceScore;
    private generateImplementationPlan;
    private calculateScopeMetrics;
    private calculateAdaptiveThreshold;
    private analyzeChangePatterns;
    private handleScopeCreepDetection;
    private generateChangeId;
    private generateAlertId;
}
//# sourceMappingURL=AdaptiveScopeControlService.d.ts.map