import type { ParallelTask, BatchResult } from './parallelExecutor.js';
import type { RepoUpgradeModule, UpgradeModuleReport, RepoUpgradeModeDefinition, RepoUpgradeMode } from './repoUpgradeOrchestrator.js';
interface RunModulesContext {
    concurrency: number;
    mode: RepoUpgradeMode;
    modeDefinition: RepoUpgradeModeDefinition;
    parallelVariants?: boolean;
    continueOnFailure: boolean;
    variantStats: Record<string, unknown>;
    processModule: (module: RepoUpgradeModule) => Promise<UpgradeModuleReport>;
    emit: (event: unknown) => void;
}
export declare class ParallelCoordinator {
    private readonly createRunner;
    constructor(createRunner: () => {
        execute: (tasks: ParallelTask<UpgradeModuleReport>[]) => Promise<BatchResult<UpgradeModuleReport>>;
    });
    runModules(context: RunModulesContext, modules: RepoUpgradeModule[]): Promise<UpgradeModuleReport[]>;
}
export {};
//# sourceMappingURL=parallelCoordinator.d.ts.map