/// <reference types="istanbul" />
/// <reference types="charm" />
/// <reference types="node" />
import Executor from '../executors/Executor';
import Suite from '../Suite';
import Test from '../Test';
import Reporter, { ReporterProperties } from './Reporter';
import { CoverageMessage, DeprecationMessage } from '../executors/Executor';
import { TunnelMessage } from '../executors/WebDriver';
import charm = require('charm');
import Collector = require('istanbul/lib/collector');
import { Watermarks } from 'istanbul';
export default class Pretty extends Reporter implements PrettyProperties {
    colorReplacement: {
        [key: string]: string;
    };
    dimensions: any;
    titleWidth: number;
    maxProgressBarWidth: number;
    tunnelState: string;
    watermarks: Watermarks;
    protected _header: string;
    protected _log: string[];
    protected _reports: any;
    protected _spinnerOffset: number;
    protected _total: Report;
    protected _charm: charm.Charm;
    protected _renderTimeout: NodeJS.Timer;
    constructor(executor: Executor, config?: PrettyOptions);
    runStart(): void;
    runEnd(): void;
    coverage(data: CoverageMessage): void;
    suiteStart(suite: Suite): void;
    suiteEnd(suite: Suite): void;
    testEnd(test: Test): void;
    tunnelDownloadProgress(message: TunnelMessage): void;
    tunnelStatus(message: TunnelMessage): void;
    error(error: Error): void;
    deprecated(message: DeprecationMessage): void;
    private _getReporter(suite);
    private _newCharm();
    private _record(sessionId, result);
    private _drawProgressBar(report, width);
    private _drawSessionReport(report);
    private _abbreviateEnvironment(env);
    private _render(omitLogs?);
    private _drawTotalReporter(report);
    private _getColor(value);
}
export interface PrettyProperties extends ReporterProperties {
    colorReplacement: {
        [key: string]: string;
    };
    dimensions: any;
    maxProgressBarWidth: number;
    titleWidth: number;
    watermarks: Watermarks;
}
export declare type PrettyOptions = Partial<PrettyProperties>;
export declare class Report {
    environment: string;
    sessionId: string;
    numTotal: number;
    numPassed: number;
    numFailed: number;
    numSkipped: number;
    results: number[];
    coverage: Collector;
    constructor(environment?: string, sessionId?: string);
    readonly finished: number;
    record(result: number): void;
    getCompressedResults(maxWidth: number): number[];
}
