import { Writable } from 'stream'; import { Configuration } from './Configuration'; import { MessageName } from './MessageName'; import { Report, SectionOptions, TimerOptions, ProgressIterable } from './Report'; export type StreamReportOptions = { configuration: Configuration; forceSectionAlignment?: boolean; includeFooter?: boolean; includeInfos?: boolean; includeLogs?: boolean; includeNames?: boolean; includeVersion?: boolean; includeWarnings?: boolean; includePrefix?: boolean; json?: boolean; stdout: Writable; }; export declare const SINGLE_LINE_CHAR = "\u00B7"; export declare const SUPPORTS_GROUPS: boolean; export declare function formatName(name: MessageName | null, { configuration, json }: { configuration: Configuration; json: boolean; }): string; export declare function formatNameWithHyperlink(name: MessageName | null, { configuration, json }: { configuration: Configuration; json: boolean; }): string; /** * @internal */ export declare function reportOptionDeprecations({ configuration, stdout, forceError }: { configuration: Configuration; stdout: Writable; forceError?: boolean; }, checks: Array<{ option: unknown; message: string; error?: boolean; callback?: () => void; }>): Promise<0 | 1 | null>; export declare class StreamReport extends Report { static start(opts: StreamReportOptions, cb: (report: StreamReport) => Promise): Promise; private configuration; private forceSectionAlignment; private includeNames; private includePrefix; private includeFooter; private includeInfos; private includeWarnings; private json; private stdout; private uncommitted; private warningCount; private errorCount; private timerFooter; private startTime; private indent; private level; private progress; private progressTime; private progressFrame; private progressTimeout; private progressStyle; private progressMaxScaledSize; constructor({ configuration, stdout, json, forceSectionAlignment, includeNames, includePrefix, includeFooter, includeLogs, includeInfos, includeWarnings, }: StreamReportOptions); hasErrors(): boolean; exitCode(): 0 | 1; getRecommendedLength(): number; startSectionSync({ reportHeader, reportFooter, skipIfEmpty }: SectionOptions, cb: () => T): T; startSectionPromise({ reportHeader, reportFooter, skipIfEmpty }: SectionOptions, cb: () => Promise): Promise; private startTimerImpl; startTimerSync(what: string, opts: TimerOptions, cb: () => T): T; startTimerSync(what: string, cb: () => T): T; startTimerPromise(what: string, opts: TimerOptions, cb: () => Promise): Promise; 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; reportErrorImpl(name: MessageName, text: string): void; reportFold(title: string, text: string): void; reportProgress(progressIt: ProgressIterable): { 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; finally(onfinally?: (() => void) | null | undefined): Promise; [Symbol.toStringTag]: string; }; reportJson(data: any): void; finalize(): Promise; private writeLine; private writeLines; private commit; private clearProgress; private writeProgress; private refreshProgress; private truncate; private formatName; private formatPrefix; private formatNameWithHyperlink; private formatIndent; }