/** * Migration result for a single file */ export interface MigrationResult { /** * Original file path */ oldPath: string; /** * New file path after migration */ newPath: string; /** * Whether the migration was performed */ migrated: boolean; /** * Error message if migration failed */ error?: string; } /** * Migration summary */ export interface MigrationSummary { /** * Total number of legacy files found */ totalLegacyFiles: number; /** * Number of files successfully migrated */ migratedCount: number; /** * Number of files that failed to migrate */ errorCount: number; /** * Individual migration results */ results: MigrationResult[]; /** * Whether this was a dry run */ dryRun: boolean; } /** * Migration options */ export interface MigrationOptions { /** * Base directory to search for test files * Default: process.cwd() */ baseDir?: string; /** * Glob pattern for finding test files * Default: '** /*test*.ts' (without space) */ pattern?: string; /** * Dry run mode - don't actually rename files * Default: true */ dryRun?: boolean; /** * Verbose output * Default: false */ verbose?: boolean; } /** * Migration class for renaming legacy test files to new naming convention * * Migrations: * - .browser.ts → .chromium.ts * - .both.ts → .node+chromium.ts * - .both.nonci.ts → .node+chromium.nonci.ts * - .browser.nonci.ts → .chromium.nonci.ts */ export declare class Migration { private options; constructor(options?: MigrationOptions); /** * Find all legacy test files in the base directory */ findLegacyFiles(): Promise; /** * Migrate a single file */ private migrateFile; /** * Check if a directory is a git repository */ private isGitRepository; /** * Run the migration */ run(): Promise; /** * Create a migration report without performing the migration */ generateReport(): Promise; }