"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
var Collector = require("istanbul/lib/collector");
var TextReport = require("istanbul/lib/report/text");
var Reporter_1 = require("./Reporter");
var Coverage = (function (_super) {
    __extends(Coverage, _super);
    function Coverage(executor, options) {
        if (options === void 0) { options = {}; }
        return _super.call(this, executor, options) || this;
    }
    Object.defineProperty(Coverage.prototype, "report", {
        get: function () {
            if (!this._report) {
                this._report = new (this.ReportClass || TextReport)({
                    file: this.filename,
                    watermarks: this.watermarks
                });
            }
            return this._report;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Coverage.prototype, "collector", {
        get: function () {
            if (!this._collector) {
                this._collector = new Collector();
            }
            return this._collector;
        },
        enumerable: true,
        configurable: true
    });
    return Coverage;
}(Reporter_1.default));
exports.default = Coverage;
//# sourceMappingURL=Coverage.js.map