import { AIProcessor } from '../ai/AIProcessor.js';
import { ConfigurationManager } from '../ai/ConfigurationManager.js';
import { GenerationOptions, GenerationResult, ValidationResult } from './types';
/**
 * Class responsible for generating project documentation
 */
export declare class DocumentGenerator {
    private options;
    private context;
    private results;
    private aiProcessor;
    private configManager;
    /**
     * Create a new document generator
     * @param context Project context for document generation
     * @param options Options for document generation
     */ constructor(context: string, options?: GenerationOptions, aiProcessor?: AIProcessor, configManager?: ConfigurationManager); /**
     * Delegate to appropriate processor functions instead of hardcoded AI calls
     */
    getAiSummaryAndGoals(context: string): Promise<string>;
    getAiUserStories(context: string): Promise<string>;
    getAiUserPersonas(context: string): Promise<string>;
    getAiKeyRolesAndNeeds(context: string): Promise<string>;
    getAiProjectCharter(context: string): Promise<string>;
    getAiProjectStatementOfWork(context: string): Promise<string>;
    getAiBusinessCase(context: string): Promise<string>;
    getAiMissionVisionAndCoreValues(context: string): Promise<string>;
    getAiProjectPurpose(context: string): Promise<string>;
    getAiProjectManagementPlan(context: string): Promise<string>;
    getAiDirectAndManageProjectWorkProcess(context: string): Promise<string>;
    getAiPerformIntegratedChangeControlProcess(context: string): Promise<string>;
    getAiCloseProjectOrPhaseProcess(context: string): Promise<string>;
    getAiPlanScopeManagement(context: string): Promise<string>;
    getAiRequirementsManagementPlan(context: string): Promise<string>;
    getAiCollectRequirementsProcess(context: string): Promise<string>;
    getAiRequirementsDocumentation(context: string): Promise<string>;
    getAiRequirementsTraceabilityMatrix(context: string): Promise<string>;
    getAiDefineScopeProcess(context: string): Promise<string>;
    getAiProjectScopeStatement(context: string): Promise<string>;
    getAiCreateWbsProcess(context: string): Promise<string>;
    getAiScopeBaseline(context: string): Promise<string>;
    getAiValidateScopeProcess(context: string): Promise<string>;
    getAiControlScopeProcess(context: string): Promise<string>;
    getAiWorkPerformanceInformationScope(context: string): Promise<string>;
    getAiScopeManagementPlan(context: string): Promise<string>;
    getAiRiskManagementPlan(context: string): Promise<string>;
    getAiCostManagementPlan(context: string): Promise<string>;
    getAiQualityManagementPlan(context: string): Promise<string>;
    getAiResourceManagementPlan(context: string): Promise<string>;
    getAiCommunicationManagementPlan(context: string): Promise<string>;
    getAiProcurementManagementPlan(context: string): Promise<string>;
    getAiStakeholderEngagementPlan(context: string): Promise<string>;
    getAiStakeholderRegister(context: string): Promise<string>;
    getAiStakeholderAnalysis(context: string): Promise<string>;
    getAiWbs(context: string): Promise<string>;
    getAiWbsDictionary(context: string): Promise<string>;
    getAiActivityList(context: string): Promise<string>;
    getAiActivityDurationEstimates(context: string): Promise<string>;
    getAiActivityResourceEstimates(context: string): Promise<string>;
    getAiScheduleNetworkDiagram(context: string): Promise<string>;
    getAiMilestoneList(context: string): Promise<string>;
    getAiDevelopScheduleInput(context: string): Promise<string>;
    getAiDataModelSuggestions(context: string): Promise<string>;
    getAiTechStackAnalysis(context: string): Promise<string>;
    getAiRiskAnalysis(context: string): Promise<string>;
    getAiAcceptanceCriteria(context: string): Promise<string>;
    getAiComplianceConsiderations(context: string): Promise<string>;
    getAiUiUxConsiderations(context: string): Promise<string>;
    getProjectKickoffPreparationsChecklist(context: string): Promise<string>;
    /**
     * Filter and sort tasks based on options and dependencies
     */
    private filterTasks;
    /**
     * Generate a single document
     * @param task Task to generate document for
     * @returns Whether generation was successful
     */
    private generateSingleDocument;
    /**
     * Wait for a specified amount of time
     * @param ms Milliseconds to wait
     */
    private delay;
    /**
     * Generate all documents based on options
     * @returns Generation result
     */
    generateAll(): Promise<GenerationResult>;
    /**
     * Generate a single document by key
     * @param documentKey The key of the document to generate (e.g., 'summary', 'user-stories', 'project-charter')
     * @returns Whether generation was successful
     */
    generateOne(documentKey: string): Promise<boolean>;
    /**
     * Print generation summary
     */
    private printSummary;
    /**
     * Validate that all expected documents exist
     * @returns Validation result
     */
    validateGeneration(): Promise<ValidationResult>;
    /**
     * Generate a markdown file
     * @param outputDir Output directory
     * @param fileName File name
     * @param title Document title
     * @param content Document content
     */
    static generateMarkdownFile(outputDir: string, fileName: string, title: string, content: string): Promise<void>;
    /**
     * Generate core documents only
     * @param context Project context
     * @returns Generation result
     */
    static generateCoreDocuments(context: string): Promise<GenerationResult>;
    /**
     * Generate management plans only
     * @param context Project context
     * @returns Generation result
     */
    static generateManagementPlans(context: string): Promise<GenerationResult>;
    /**
     * Generate planning artifacts only
     * @param context Project context
     * @returns Generation result
     */
    static generatePlanningArtifacts(context: string): Promise<GenerationResult>; /**
     * Generate technical analysis including technical design documents
     * @param context Project context
     * @returns Generation result
     */
    static generateTechnicalAnalysis(context: string): Promise<GenerationResult>;
    /**
     * Generate stakeholder documents only
     * @param context Project context
     * @returns Generation result
     */
    static generateStakeholderDocuments(context: string): Promise<GenerationResult>; /**
     * Validate PMBOK compliance across documents using the real PMBOKValidator
     * @returns Comprehensive compliance validation result
     */
    validatePMBOKCompliance(): Promise<{
        compliance: boolean;
        consistencyScore: number;
        documentQuality: Record<string, any>;
        validationResult?: any;
    }>;
    /**
   * Determine overall compliance based on comprehensive validation results
   * @param validationResult Full validation result from PMBOKValidator
   * @returns Whether the documents meet compliance standards
   */
    private determineOverallCompliance;
    /**
     * Generate all documents and validate PMBOK compliance
     * @param context Project context
     * @returns Generation and compliance result
     */
    static generateAllWithPMBOKValidation(context: string): Promise<{
        result: GenerationResult;
        compliance: {
            score: number;
            details: string[];
            isCompliant: boolean;
            qualityReport: any;
            actionableInsights: string[];
            improvementRecommendations: string[];
        };
    }>;
    /**
     * Generate a comprehensive quality assessment report in markdown format
     */
    private static generateQualityReport;
}
/**
 * Version information
 */
export declare const documentGeneratorVersion = "2.1.3";
//# sourceMappingURL=DocumentGenerator.d.ts.map