import { ConfigOptions } from "karma";
import { Threshold } from "../istanbul/threshold";
import { Configuration } from "../shared/configuration";
import { SharedProcessedFiles } from "../shared/shared-processed-files";
export declare class Reporter {
    create: (karmaConfig: ConfigOptions, helper: any, logger: any, emitter: any) => void;
    private log;
    private remap;
    private writeReport;
    constructor(config: Configuration, sharedProcessedFiles: SharedProcessedFiles, threshold: Threshold);
    private getReportDestination;
}
