/// <reference types="istanbul-reports" />
/// <reference types="istanbul-lib-report" />
/// <reference types="istanbul-lib-coverage" />
import Reporter, { ReporterProperties } from './Reporter';
import { CoverageMap } from 'istanbul-lib-coverage';
import { Watermarks } from 'istanbul-lib-report';
import { ReportType } from 'istanbul-reports';
import Node from '../executors/Node';
export { ReportType };
export default abstract class Coverage extends Reporter implements CoverageProperties {
    readonly reportType: ReportType;
    executor: Node;
    filename: string;
    watermarks: Watermarks;
    constructor(executor: Node, options?: CoverageOptions);
    createCoverageReport(type: ReportType, data: object | CoverageMap): void;
    runEnd(): void;
}
export interface CoverageProperties extends ReporterProperties {
    /** A filename to write coverage data to */
    filename?: string;
    /** Watermarks used to check coverage */
    watermarks?: Watermarks;
}
export declare type CoverageOptions = Partial<CoverageProperties>;
