/**
 * Business Context Preserver
 *
 * System to preserve developer enhancements and business context during re-analysis.
 * Handles conflict resolution, context merging, and enhancement tracking.
 */
import { EventEmitter } from 'events';
export interface BusinessContextConfig {
    preservationEnabled: boolean;
    backupEnabled: boolean;
    backupDirectory: string;
    conflictResolution: 'preserve' | 'merge' | 'prompt';
    enhancementMarkers: string[];
    businessContextPatterns: RegExp[];
    maxBackupVersions: number;
}
export interface EnhancementMetadata {
    id: string;
    filePath: string;
    type: 'business_context' | 'documentation' | 'custom_property' | 'relationship';
    content: string;
    author?: string;
    timestamp: Date;
    version: string;
    hash: string;
    preservationPriority: 'high' | 'medium' | 'low';
}
export interface ConflictResolution {
    conflictId: string;
    filePath: string;
    conflictType: 'content_mismatch' | 'structure_change' | 'property_conflict';
    originalContent: string;
    newContent: string;
    enhancedContent: string;
    resolution: 'keep_original' | 'keep_new' | 'merge' | 'manual';
    resolvedContent?: string | undefined;
    timestamp: Date;
}
export interface PreservationResult {
    success: boolean;
    preservedEnhancements: number;
    conflictsDetected: number;
    conflictsResolved: number;
    backupsCreated: number;
    errors: PreservationError[];
    warnings: string[];
    processingTime: number;
    statistics: PreservationStatistics;
}
export interface PreservationError {
    type: 'EXTRACTION_ERROR' | 'MERGE_ERROR' | 'BACKUP_ERROR' | 'VALIDATION_ERROR';
    message: string;
    filePath?: string;
    enhancementId?: string;
    details?: any;
}
export interface PreservationStatistics {
    totalFilesProcessed: number;
    enhancementsExtracted: number;
    enhancementsPreserved: number;
    enhancementsLost: number;
    conflictsAutoResolved: number;
    conflictsRequiringManualResolution: number;
    backupFilesCreated: number;
}
/**
 * Business Context Preserver
 *
 * Preserves developer enhancements and business context during automatic re-analysis
 * with intelligent conflict resolution and enhancement tracking.
 */
export declare class BusinessContextPreserver extends EventEmitter {
    private config;
    private enhancementCache;
    private conflictQueue;
    private backupFilesCreated;
    private isInitialized;
    constructor(config?: Partial<BusinessContextConfig>);
    /**
     * Initialize the business context preserver
     */
    initialize(): Promise<void>;
    /**
     * Preserve business context before re-analysis
     */
    preserveContext(filePaths: string[]): Promise<PreservationResult>;
    /**
     * Restore business context after re-analysis
     */
    restoreContext(filePaths: string[]): Promise<PreservationResult>;
    /**
     * Get pending conflicts requiring manual resolution
     */
    getPendingConflicts(): ConflictResolution[];
    /**
     * Resolve a conflict manually
     */
    resolveConflict(conflictId: string, resolution: 'keep_original' | 'keep_new' | 'merge', resolvedContent?: string): Promise<boolean>;
    /**
     * Get preservation statistics
     */
    getStatistics(): PreservationStatistics;
    /**
     * Preserve business context (alias for preserveContext)
     */
    preserveBusinessContext(filePaths: string[]): Promise<PreservationResult>;
    private preserveFileContext;
    private restoreFileContext;
    private extractEnhancements;
    private mergeEnhancements;
    private mergeEnhancement;
    private extractCommentEnhancements;
    private createBackup;
    private cleanupOldBackups;
    private findInsertionPoint;
    private determineEnhancementType;
    private determinePriority;
    private generateEnhancementId;
    private generateConflictId;
    private generateHash;
    private initializeStats;
}
//# sourceMappingURL=BusinessContextPreserver.d.ts.map