import { CoverageMap, CoverageMapData } from 'istanbul-lib-coverage';
import { Watermarks } from 'istanbul-lib-report';
import { ReportType } from 'istanbul-reports';
import Reporter, { ReporterProperties } from './Reporter';
import Node from '../executors/Node';
export { ReportType };
export default abstract class Coverage extends Reporter implements CoverageProperties {
    readonly abstract reportType: ReportType;
    readonly executor: Node;
    filename?: string;
    directory?: string;
    watermarks?: Watermarks;
    constructor(executor: Node, options?: CoverageOptions);
    getReporterOptions(): {
        [key: string]: any;
    };
    createCoverageReport(type: ReportType, data: CoverageMapData | CoverageMap): void;
    runEnd(): void;
}
export interface CoverageProperties extends ReporterProperties {
    filename?: string;
    directory?: string;
    watermarks?: Watermarks;
}
export declare type CoverageOptions = Partial<CoverageProperties>;
