import type { CoverageData, CoverageManager, CoverageMetadata, Statement } from "./types.js";
type Line = number;
/**
 * @private exposed for testing purposes only
 */
export interface FileReport {
    lineExecutionCounts: Map<Line, number>;
    executedStatementsCount: number;
    unexecutedStatementsCount: number;
    executedLinesCount: number;
    unexecutedLines: Set<Line>;
}
export interface Report {
    [relativePath: string]: FileReport;
}
type FilesMetadata = Map<string, // relative path
Map<string, // composite key
Statement>>;
export declare class CoverageManagerImplementation implements CoverageManager {
    #private;
    /**
     * @private exposed for testing purposes only
     */
    filesMetadata: FilesMetadata;
    /**
     * @private exposed for testing purposes only
     */
    data: CoverageData;
    constructor(coveragePath: string);
    addData(data: CoverageData): Promise<void>;
    addMetadata(metadata: CoverageMetadata): Promise<void>;
    clearData(id: string): Promise<void>;
    saveData(id: string): Promise<void>;
    report(...ids: string[]): Promise<void>;
    enableReport(): void;
    disableReport(): void;
    /**
     * @private exposed for testing purposes only
     */
    loadData(...ids: string[]): Promise<void>;
    /**
     * @private exposed for testing purposes only
     */
    getReport(): Promise<Report>;
    /**
     * @private exposed for testing purposes only
     */
    formatLcovReport(report: Report): string;
    /**
     * @private exposed for testing purposes only
     */
    formatRelativePath(relativePath: string): string;
    /**
     * @private exposed for testing purposes only
     */
    formatCoverage(coverage: number): string;
    /**
     * @private exposed for testing purposes only
     */
    formatLines(lines: Set<number>): string;
    /**
     * @private exposed for testing purposes only
     */
    formatMarkdownReport(report: Report): string;
}
export {};
//# sourceMappingURL=coverage-manager.d.ts.map