///
import { Writable } from 'stream';
import InsertionLog from '../insertion_log';
import { TestPath } from '../test_path';
import { MessageWithSlowness } from './message';
import Reporter from './reporter';
export type InsertionLogLike = Pick;
/**
* SpecProgress is a reporter that emits the progress of tests while they run
* to a given stream. It does not print any test output other than the list of
* test names and their results coded as checkmarks or crosses. It does not
* print a summary of how the tests went at the end; for this reason it is
* typically used together with some other summary reporter.
*
* SpecProgress uses InsertionLog to print progress of tests as they run in
* parallel. This means that the output will be borked unless the stream is
* printed to a terminal that supports overwriting already written text. If
* the output does not support this, the Serializer reporter can be used to
* print tests as if they were run serially.
*/
export default class SpecProgress implements Reporter {
_log: InsertionLogLike;
_disableBreadcrumbs: boolean;
_lastLineIdForSuite: Map;
_isUnstable: Set;
_testStartTime: Map;
_stdio: Map;
constructor(streams: {
stdout: Writable;
disableBreadcrumbs?: boolean;
}, insertionLogFactory?: (stdout: Writable) => InsertionLogLike);
private makePipedStream;
gotMessage(testPath: TestPath, message: MessageWithSlowness, time: Date): void;
}