/// <reference types="istanbul" />
import Executor from '../executors/Executor';
import Collector = require('istanbul/lib/collector');
import Report = require('istanbul/lib/report');
import { Watermarks } from 'istanbul';
import Reporter, { ReporterProperties } from './Reporter';
export interface CoverageProperties extends ReporterProperties {
    filename: string;
    watermarks: Watermarks;
    ReportClass: ReportConstructor;
}
export interface ReportConstructor {
    new (config?: any): Report;
}
export declare type CoverageOptions = Partial<CoverageProperties>;
declare abstract class Coverage extends Reporter implements CoverageProperties {
    watermarks: Watermarks;
    filename: string;
    ReportClass: ReportConstructor;
    protected _report: Report;
    protected _collector: Collector;
    constructor(executor: Executor, options?: CoverageOptions);
    readonly report: Report;
    readonly collector: Collector;
}
export default Coverage;
