import mongoose, { Document } from 'mongoose';
export interface IScopeBaseline {
    version: string;
    description: string;
    deliverables: string[];
    acceptanceCriteria: string[];
    exclusions: string[];
    assumptions: string[];
    constraints: string[];
    approvedBy: string;
    approvalDate: Date;
    lastModified: Date;
}
export interface IScopeMetrics {
    totalChanges: number;
    approvedChanges: number;
    rejectedChanges: number;
    pendingChanges: number;
    scopeCreepIndex: number;
    changeVelocity: number;
    lastCalculated: Date;
}
export interface IProject extends Document {
    _id: string;
    name: string;
    description: string;
    status: 'draft' | 'active' | 'review' | 'completed' | 'archived';
    framework: 'babok' | 'pmbok' | 'multi';
    complianceScore: number;
    documents: number;
    stakeholders: number;
    owner?: string;
    tags?: string[];
    priority?: 'low' | 'medium' | 'high' | 'critical';
    startDate?: Date;
    endDate?: Date;
    budget?: number;
    currency?: string;
    scopeBaseline?: IScopeBaseline;
    scopeMetrics?: IScopeMetrics;
    scopeControlEnabled?: boolean;
    scopeControlSettings?: {
        autoApprovalThreshold: number;
        escalationThreshold: number;
        scopeCreepThreshold: number;
        monitoringFrequency: number;
        stakeholderNotificationEnabled: boolean;
        pmbokValidationEnabled: boolean;
    };
    lastScopeReview?: Date;
    scopeRiskLevel?: 'low' | 'medium' | 'high' | 'critical';
    createdAt: Date;
    updatedAt: Date;
}
export declare const Project: mongoose.Model<IProject, {}, {}, {}, mongoose.Document<unknown, {}, IProject, {}, {}> & IProject & Required<{
    _id: string;
}> & {
    __v: number;
}, any>;
//# sourceMappingURL=Project.d.ts.map