import { type Watermarks } from "./watermark";
import { LogInfo } from "./log-info";
import { type ReadFile } from "./read-file";
import type { Reporter } from "./reporter";
import { OneDoubleZero as OneDoubleZeroCore, type CoverageMap } from "one-double-zero-core";
/**
 * One Double Zero, itself
 */
export interface OneDoubleZero extends OneDoubleZeroCore {
    /**
     * Reports a coverage map using some Istanbul reporters.
     *
     * @param coverageMap The coverage map to report
     * @param reporters The list of reporters to use to report the coverage map
     * @param outputDirectory The directory where the reports will be output to
     * @param watermarks The watermarks to apply to the reporters
     */
    report(coverageMap: CoverageMap, reporters: Array<Reporter>, outputDirectory: string, watermarks?: Watermarks): Promise<void>;
}
/**
 * Creates and returns an instance of One Double Zero.
 *
 * @param logInfo A function executed by the created instance whenever it needs to log some information
 * @param readFile A function executed by the created instance whenever it needs to read the content of a file
 * @return The newly created instance of One Double Zero
 */
export declare const createOneDoubleZero: (logInfo: LogInfo, readFile: ReadFile) => OneDoubleZero;
