///
import { Writable } from 'stream';
import { Configuration } from './Configuration';
import { Report, MessageName } from './Report';
import { Locator } from './types';
export declare type StreamReportOptions = {
configuration: Configuration;
includeFooter?: boolean;
includeInfos?: boolean;
includeLogs?: boolean;
includeWarnings?: boolean;
json?: boolean;
stdout: Writable;
};
export declare class StreamReport extends Report {
static start(opts: StreamReportOptions, cb: (report: StreamReport) => Promise): Promise;
private configuration;
private includeFooter;
private includeInfos;
private includeWarnings;
private json;
private stdout;
private cacheHitCount;
private cacheMissCount;
private warningCount;
private errorCount;
private startTime;
private indent;
constructor({ configuration, stdout, json, includeFooter, includeLogs, includeInfos, includeWarnings }: StreamReportOptions);
hasErrors(): boolean;
exitCode(): 1 | 0;
reportCacheHit(locator: Locator): void;
reportCacheMiss(locator: Locator): void;
startTimerSync(what: string, cb: () => T): T;
startTimerPromise(what: string, cb: () => Promise): Promise;
reportSeparator(): void;
reportInfo(name: MessageName | null, text: string): void;
reportWarning(name: MessageName, text: string): void;
reportError(name: MessageName, text: string): void;
reportJson(data: any): void;
finalize(): Promise;
private formatTiming;
private formatName;
private formatIndent;
}