/**
 * Checkpoint Manager for Generation Process
 * Enables rollback and recovery from partial failures
 */
export interface Checkpoint {
    id: string;
    timestamp: string;
    stage: GenerationStage;
    component?: string;
    filesCreated: string[];
    filesModified: Array<{
        path: string;
        backup: string;
    }>;
    directoriesCreated: string[];
    metadata: Record<string, any>;
}
export declare enum GenerationStage {
    VALIDATION = "validation",
    ANALYSIS = "analysis",
    INFRASTRUCTURE = "infrastructure",
    COMPONENT_GENERATION = "component_generation",
    CONFIGURATION = "configuration",
    FINALIZATION = "finalization",
    COMPLETE = "complete"
}
export declare class CheckpointManager {
    private outputDir;
    private checkpoints;
    private checkpointDir;
    private currentCheckpoint?;
    constructor(outputDir: string);
    /**
     * Initialize checkpoint system
     */
    initialize(): void;
    /**
     * Create a new checkpoint
     */
    createCheckpoint(stage: GenerationStage, component?: string, metadata?: Record<string, any>): string;
    /**
     * Record file creation
     */
    recordFileCreated(filePath: string): void;
    /**
     * Record file modification with backup
     */
    recordFileModified(filePath: string): void;
    /**
     * Record directory creation
     */
    recordDirectoryCreated(dirPath: string): void;
    /**
     * Rollback to a specific checkpoint
     */
    rollback(checkpointId?: string): RollbackResult;
    /**
     * Get generation progress
     */
    getProgress(): GenerationProgress;
    /**
     * Get last successful checkpoint
     */
    getLastSuccessfulCheckpoint(): Checkpoint | undefined;
    /**
     * Check if can resume from checkpoint
     */
    canResume(): boolean;
    /**
     * Get resume point
     */
    getResumePoint(): {
        stage: GenerationStage;
        component?: string;
    } | null;
    /**
     * Clean up checkpoints after successful completion
     */
    cleanup(): void;
    /**
     * Get checkpoint summary for user
     */
    getSummary(): string;
    private generateCheckpointId;
    private saveCheckpoint;
    private loadCheckpoints;
    private removeCheckpoint;
    private createBackup;
    private isDirectoryEmpty;
}
export interface RollbackResult {
    success: boolean;
    message: string;
    filesRemoved?: string[];
    filesRestored?: string[];
    directoriesRemoved?: string[];
}
export interface GenerationProgress {
    stage: GenerationStage;
    percentage: number;
    completedStages: GenerationStage[];
    currentComponent?: string;
}
//# sourceMappingURL=checkpoint-manager.d.ts.map