import { Transpiler } from 'stryker-api/transpile';
import { StrykerOptions, File } from 'stryker-api/core';
import { Range } from 'istanbul-lib-coverage';
export interface CoverageMaps {
    statementMap: {
        [key: string]: Range;
    };
    fnMap: {
        [key: string]: Range;
    };
}
export interface CoverageMapsByFile {
    [file: string]: CoverageMaps;
}
export default class CoverageInstrumenterTranspiler implements Transpiler {
    private readonly settings;
    private readonly filesToInstrument;
    private readonly instrumenter;
    fileCoverageMaps: CoverageMapsByFile;
    constructor(settings: StrykerOptions, filesToInstrument: ReadonlyArray<string>);
    transpile(files: ReadonlyArray<File>): Promise<ReadonlyArray<File>>;
    /**
     * Coverage variable *must* have the name '__coverage__'. Only that variable
     * is reported back to the TestRunner process when using one of the karma
     * test framework adapters (karma-jasmine, karma-mocha, ...).
     *
     * However, when coverageAnalysis is 'perTest' we don't choose that variable name right away,
     * because we need that variable to hold all coverage results per test. Instead, we use __strykerCoverageCurrentTest__
     * and after each test copy over the value of that current test to the global coverage object __coverage__
     */
    private readonly coverageVariable;
    private patchRanges;
    private instrumentFileIfNeeded;
    private instrumentFile;
    private retrieveCoverageMaps;
}
//# sourceMappingURL=CoverageInstrumenterTranspiler.d.ts.map