///
import { Writable } from 'stream';
import { Configuration } from './Configuration';
import { MessageName } from './MessageName';
import { Report } from './Report';
import { Locator } from './types';
export declare type StreamReportOptions = {
configuration: Configuration;
forgettableBufferSize?: number;
forgettableNames?: Set;
includeFooter?: boolean;
includeInfos?: boolean;
includeLogs?: boolean;
includeWarnings?: boolean;
json?: boolean;
stdout: Writable;
};
export declare function formatName(name: MessageName | null, { configuration, json }: {
configuration: Configuration;
json: boolean;
}): any;
export declare function formatNameWithHyperlink(name: MessageName | null, { configuration, json }: {
configuration: Configuration;
json: boolean;
}): any;
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;
private progress;
private progressTime;
private progressFrame;
private progressTimeout;
private forgettableBufferSize;
private forgettableNames;
private forgettableLines;
constructor({ configuration, stdout, json, includeFooter, includeLogs, includeInfos, includeWarnings, forgettableBufferSize, forgettableNames, }: StreamReportOptions);
hasErrors(): boolean;
exitCode(): 0 | 1;
reportCacheHit(locator: Locator): void;
reportCacheMiss(locator: Locator, message?: string): void;
startTimerSync(what: string, cb: () => T): T;
startTimerPromise(what: string, cb: () => Promise): Promise;
startCacheReport(cb: () => Promise): Promise;
reportSeparator(): void;
reportInfo(name: MessageName | null, text: string): void;
reportWarning(name: MessageName, text: string): void;
reportError(name: MessageName, text: string): void;
reportProgress(progressIt: AsyncIterable<{
progress: number;
title?: string;
}>): {
stop: () => void;
then(onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined): Promise;
catch(onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined): Promise;
[Symbol.toStringTag]: string;
finally(onfinally?: (() => void) | null | undefined): Promise;
};
reportJson(data: any): void;
finalize(): Promise;
private writeLine;
private writeLineWithForgettableReset;
private writeLines;
private reportCacheChanges;
private clearProgress;
private writeProgress;
private refreshProgress;
private formatTiming;
private truncate;
private formatName;
private formatNameWithHyperlink;
private formatIndent;
}