import { Observable } from 'rxjs';
import TestableMutant from '../TestableMutant';
import { File } from 'stryker-api/core';
import { Transpiler } from 'stryker-api/transpile';
import { Disposable } from 'stryker-api/plugin';
import TranspiledMutant from '../TranspiledMutant';
export declare class MutantTranspileScheduler {
    private readonly transpiler;
    private readonly unMutatedFiles;
    private currentMutatedFile;
    private readonly concurrencyTicket$;
    static inject: ["transpiler", "transpiledFiles"];
    /**
     * Creates a mutant transpiler
     */
    constructor(transpiler: Transpiler & Disposable, unMutatedFiles: ReadonlyArray<File>);
    scheduleTranspileMutants(allMutants: ReadonlyArray<TestableMutant>): Observable<TranspiledMutant>;
    /**
     * Schedule next mutant to be transpiled
     */
    readonly scheduleNext: () => void;
    /**
     * Dispose all
     */
    dispose(): void;
    private createTranspiledMutant;
    private transpileMutant;
}
//# sourceMappingURL=MutantTranspileScheduler.d.ts.map