/**
 * Modification Preview
 *
 * Preview changes before they are applied:
 * - Diff visualization
 * - Impact analysis
 * - Rollback information
 * - Interactive approval
 */
export type ModificationType = 'create' | 'modify' | 'delete' | 'rename' | 'move';
export interface FileModification {
    type: ModificationType;
    filePath: string;
    targetPath?: string;
    originalContent?: string;
    newContent?: string;
    description?: string;
}
export interface ModificationPreview {
    id: string;
    modifications: FileModification[];
    summary: {
        totalFiles: number;
        creates: number;
        modifies: number;
        deletes: number;
        renames: number;
        moves: number;
        linesAdded: number;
        linesRemoved: number;
    };
    risks: RiskAssessment[];
    createdAt: Date;
}
export interface RiskAssessment {
    level: 'low' | 'medium' | 'high' | 'critical';
    message: string;
    file?: string;
}
export interface DiffLine {
    type: 'context' | 'addition' | 'deletion' | 'header';
    content: string;
    oldLineNumber?: number;
    newLineNumber?: number;
}
/**
 * Create a modification preview
 */
export declare function createPreview(modifications: FileModification[]): ModificationPreview;
/**
 * Generate unified diff for a modification
 */
export declare function generateDiff(mod: FileModification): DiffLine[];
/**
 * Format diff for terminal display
 */
export declare function formatDiff(lines: DiffLine[]): string;
/**
 * Format modification preview for display
 */
export declare function formatPreview(preview: ModificationPreview): string;
/**
 * Format detailed preview with diffs
 */
export declare function formatDetailedPreview(preview: ModificationPreview): string;
/**
 * Check if preview has critical risks
 */
export declare function hasCriticalRisks(preview: ModificationPreview): boolean;
/**
 * Check if preview has high risks
 */
export declare function hasHighRisks(preview: ModificationPreview): boolean;
/**
 * Get files by modification type
 */
export declare function getFilesByType(preview: ModificationPreview, type: ModificationType): FileModification[];
export default createPreview;
