/**
 * Selective File Rollback (Item 109)
 * Roll back individual files from checkpoints
 */
import { EventEmitter } from 'events';
export interface FileVersion {
    id: string;
    path: string;
    content: string;
    hash: string;
    timestamp: Date;
    source: 'checkpoint' | 'git' | 'manual';
}
export interface RollbackResult {
    success: boolean;
    path: string;
    fromVersion: string;
    toVersion: string;
    error?: string;
}
export declare class SelectiveRollbackManager extends EventEmitter {
    private versions;
    private maxVersionsPerFile;
    private computeHash;
    saveVersion(filePath: string, content: string, source?: FileVersion['source']): FileVersion;
    getVersions(filePath: string): FileVersion[];
    getVersion(filePath: string, versionId: string): FileVersion | undefined;
    rollbackFile(filePath: string, versionId: string): Promise<RollbackResult>;
    rollbackMultiple(files: Array<{
        path: string;
        versionId: string;
    }>): Promise<RollbackResult[]>;
    compareVersions(filePath: string, versionId1: string, versionId2: string): {
        added: number;
        removed: number;
        changed: number;
    } | null;
    getLatestVersion(filePath: string): FileVersion | undefined;
    clearVersions(filePath: string): void;
    getAllTrackedFiles(): string[];
    getStats(): {
        totalFiles: number;
        totalVersions: number;
    };
}
export declare function getSelectiveRollbackManager(): SelectiveRollbackManager;
export default SelectiveRollbackManager;
