/**
 * FrameworkMigration - Migrate workspaces to framework-scoped structure
 *
 * Handles migration from legacy workspaces to framework-scoped structure,
 * multi-framework setup, and duplicate resource merging.
 *
 * FID-007 Framework-Scoped Workspaces migration scenarios.
 *
 * @module src/plugin/framework-migration
 * @version 1.0.0
 * @since 2025-10-23
 */
export interface MigrationOptions {
    backup?: boolean;
    dryRun?: boolean;
    defaultFramework?: string;
    conflictStrategy?: 'skip' | 'overwrite' | 'keep-newest';
    preserveGitHistory?: boolean;
    rollbackOnError?: boolean;
    sourcePath?: string;
}
export interface MigrationResult {
    id: string;
    success: boolean;
    skipped?: boolean;
    reason?: string;
    backupPath?: string;
    validation: MigrationValidation;
    report: MigrationReport;
    errors: MigrationError[];
    conflicts: Conflict[];
    plan?: MigrationPlan;
    gitMoveUsed?: boolean;
    suggestions?: string[];
}
export interface MigrationValidation {
    safe?: boolean;
    warnings?: string[];
    frameworkSpecificMoved?: boolean;
    sharedResourcesMoved?: boolean;
    legacyCleanedUp?: boolean;
}
export interface MigrationReport {
    filesMoved: number;
    frameworkSpecificCount: number;
    sharedResourceCount: number;
    duplicatesFound?: number;
    mergedCount?: number;
    removedCount?: number;
}
export interface MigrationError {
    path: string;
    error: string;
    severity: 'warning' | 'error' | 'critical';
    context?: any;
}
export interface Conflict {
    type: 'file' | 'directory';
    path: string;
    resolution: string;
}
export interface MigrationPlan {
    frameworkSpecificMoves: number;
    sharedMoves: number;
}
export interface DuplicateInfo {
    path: string;
    frameworks: string[];
}
export interface MergeResult {
    conflicts: MergeConflict[];
    report: MergeReport;
}
export interface MergeConflict {
    path: string;
    resolution: string;
}
export interface MergeReport {
    duplicatesFound: number;
    mergedCount: number;
    removedCount: number;
}
export declare class FrameworkMigration {
    private projectRoot;
    constructor(projectRoot: string);
    /**
     * Migrate legacy workspace to framework-scoped structure
     *
     * @param options - Migration options
     * @returns Migration result
     */
    migrateLegacyToScoped(options?: MigrationOptions): Promise<MigrationResult>;
    /**
     * Detect target framework for migration
     *
     * @returns Framework name
     */
    detectTargetFramework(): Promise<string>;
    /**
     * Migrate to multi-framework setup
     *
     * @param newFrameworks - Frameworks to add
     */
    migrateToMultiFramework(newFrameworks: string[]): Promise<void>;
    /**
     * Detect duplicate shared content across frameworks
     *
     * @returns Array of duplicates
     */
    detectDuplicateShared(): Promise<DuplicateInfo[]>;
    /**
     * Merge duplicate shared resources
     *
     * @param options - Merge options
     * @returns Merge result
     */
    mergeDuplicateShared(options?: MigrationOptions): Promise<MergeResult>;
    /**
     * Rollback migration
     *
     * @param migrationId - Migration ID
     */
    rollback(migrationId: string): Promise<void>;
    private createBackup;
    private moveResource;
    private listFilesRecursive;
    private generateMigrationId;
}
//# sourceMappingURL=framework-migration.d.ts.map