export interface LogOptions { quiet?: boolean; verbose?: boolean; noColor?: boolean; json?: boolean; logFile?: boolean; } export interface TestFileResult { file: string; passed: number; failed: number; total: number; duration: number; tests: Array<{ name: string; passed: boolean; duration: number; error?: string; }>; } export interface TestSummary { totalFiles: number; totalTests: number; totalPassed: number; totalFailed: number; totalSkipped: number; totalDuration: number; fileResults: TestFileResult[]; skippedFiles: string[]; } export declare class TsTestLogger { readonly options: LogOptions; private startTime; private fileResults; private currentFileResult; private currentTestLogFile; private currentTestLogs; private currentTestFailed; private isOutputMidLine; constructor(options?: LogOptions); private format; private log; private logToFile; private logToTestFile; private logJson; sectionStart(title: string): void; sectionEnd(): void; progress(current: number, total: number, message: string): void; beforeScriptStart(label: string, command: string): void; beforeScriptEnd(label: string, success: boolean, durationMs: number): void; testDiscovery(count: number, pattern: string, executionMode: string): void; environmentCheck(availability: Map): void; testFileStart(filename: string, runtime: string, index: number, total: number): void; testResult(testName: string, passed: boolean, duration: number, error?: string): void; testFileEnd(passed: number, failed: number, duration: number): void; tapOutput(message: string, _isError?: boolean): void; testConsoleOutput(message: string): void; testConsoleOutputStreaming(message: string): void; private logToTestFileRaw; testFileSkipped(filename: string, index: number, total: number, reason: string): void; browserConsole(message: string, level?: string): void; testErrorDetails(errorMessage: string): void; summary(skippedFiles?: string[]): void; warning(message: string): void; error(message: string, file?: string, stack?: string): void; private createDiff; watchModeStart(): void; watchModeWaiting(): void; watchModeRerun(changedFiles: string[]): void; watchModeStop(): void; }