import ts from "typescript";
import { ProcessingStats, AnalysisOptions, QualityMetrics } from "./types/main.types";
import { ContextualSummariesAnalysisResult, ContextualSummary, ProjectContext } from "./types/contextualSummaries.types";
import { PromptPersonalization } from "./types/summaryBuilder.types";
import { ScanResult } from "../../types";
export declare class ContextualSummariesAnalyzer {
    private scanResult;
    private srcDir;
    private typeChecker?;
    private options;
    private cache;
    private stats;
    private summaryBuilder;
    constructor(scanResult: ScanResult, srcDir: string, typeChecker?: ts.TypeChecker);
    /**
     * Main analysis method that orchestrates the entire contextual summaries generation process
     */
    analyze(options?: Partial<AnalysisOptions>): Promise<ContextualSummariesAnalysisResult>;
    /**
     * Analyzes files in parallel or sequential based on configuration
     */
    private analyzeFiles;
    /**
     * Analyzes a single file and generates its contextual summary
     */
    private analyzeFile;
    /**
     * Generates project-level context from all summaries
     */
    private generateProjectContext;
    /**
     * Generates relationships between files
     */
    private generateFileRelationships;
    /**
     * Calculates final analysis statistics
     */
    private calculateFinalStatistics;
    /**
     * Generates reusable prompt templates from analysis
     */
    private generatePromptTemplates;
    /**
     * Creates a prompt template from a group of similar summaries
     */
    private createPromptTemplate;
    private filterRelevantFiles;
    private hasSignificantContent;
    private shouldIncludeTestFiles;
    private isRelevantFileType;
    private createBatches;
    private reportProgress;
    private estimateCompletion;
    private handleFileError;
    private handleCriticalError;
    private determineSeverity;
    private isRecoverableError;
    private isCachedAndValid;
    private cacheResult;
    private updateProcessingStats;
    private generateMetadata;
    private inferArchitectureType;
    private inferProjectType;
    private inferProjectStructure;
    private identifyModules;
    private inferModulePurpose;
    private extractModuleDependencies;
    private calculateRelationshipStrength;
    private deduplicateRelationships;
    private calculateAverageComplexity;
    private getMostCommonValue;
    private getTopValues;
    private getCommonWords;
    private groupSummariesForTemplates;
    private extractCommonStructure;
    private findCommonHeaderPattern;
    private findCommonKeyPointPatterns;
    private findCommonSections;
    private findCommonPrefix;
    private findCommonSuffix;
    private extractPatterns;
    private identifyVariableFields;
    private buildTemplateString;
    private createEmptyResult;
    private getDefaultOptions;
    private initializeCache;
    private initializeStats;
    /**
     * Public methods for advanced usage
     */
    /**
     * Generates a single contextual summary for a specific file
     */
    analyzeSingleFile(filePath: string, options?: Partial<AnalysisOptions>): Promise<ContextualSummary | null>;
    /**
     * Regenerates summaries for files that have changed
     */
    analyzeChangedFiles(changedFiles: string[], options?: Partial<AnalysisOptions>): Promise<ContextualSummary[]>;
    /**
     * Updates project context after adding new files
     */
    updateProjectContext(existingSummaries: ContextualSummary[], newSummaries: ContextualSummary[]): ProjectContext;
    /**
     * Generates specialized summaries for specific use cases
     */
    generateSpecializedSummaries(filePaths: string[], personalization: PromptPersonalization, options?: Partial<AnalysisOptions>): Promise<ContextualSummary[]>;
    /**
     * Validates and optimizes existing summaries
     */
    optimizeSummaries(summaries: ContextualSummary[], constraints?: {
        maxTokens?: number;
        targetAudience?: string;
    }): ContextualSummary[];
    /**
     * Generates quality metrics for summaries
     */
    calculateQualityMetrics(summaries: ContextualSummary[]): QualityMetrics;
    /**
     * Exports summaries in various formats
     */
    exportSummaries(summaries: ContextualSummary[], format: "json" | "markdown" | "csv" | "xml"): string;
    private exportToMarkdown;
    private exportToCSV;
    private exportToXML;
    private escapeXml;
    private getPersonalizationForAudience;
    /**
     * Gets current analysis statistics
     */
    getAnalysisStatistics(): ProcessingStats;
    /**
     * Clears the analysis cache
     */
    clearCache(): void;
    /**
     * Gets cached summaries count
     */
    getCacheSize(): number;
}
