import { type Runner, reporters } from 'mocha'; import { type CtrfTest, type CtrfEnvironment } from '../types/ctrf'; interface Options { reporter: string; reporterOptions: ReporterOptions; 'reporter-option': ReporterOptions; } interface ReporterOptions { outputFile?: string; outputDir?: string; minimal?: boolean; screenshot?: boolean; testType?: string; appName?: string | undefined; appVersion?: string | undefined; osPlatform?: string | undefined; osRelease?: string | undefined; osVersion?: string | undefined; buildName?: string | undefined; buildNumber?: string | undefined; buildUrl?: string | undefined; repositoryName?: string | undefined; repositoryUrl?: string | undefined; branchName?: string | undefined; testEnvironment?: string | undefined; } declare class GenerateCtrfReport extends reporters.Base { private readonly ctrfReport; readonly ctrfEnvironment: CtrfEnvironment; private readonly reporterOptions; readonly reporterName = "mocha-ctrf-json-reporter"; readonly defaultOutputFile = "ctrf-report.json"; readonly defaultOutputDir = "ctrf"; filename: string; private readonly projectRoot; private readonly mocharcJsPath; private readonly mocharcJsonPath; private currentTest; private pendingMessages; constructor(runner: Runner, options: Options); /** * Handle incoming runtime messages (extra() calls) * Messages are queued for current test */ private applyRuntimeMessage; handleStart(): void; /** * Track test begin for runtime context */ handleTestBegin(test: Mocha.Test): void; handleTestEnd(test: Mocha.Test, err?: Error): void; handleEnd(): void; private updateCtrfTestResultsFromTest; /** * Deep merge two objects following CTRF merge rules: * - Arrays: concatenated * - Objects: recursively merged * - Primitives: overwritten */ private deepMerge; private getReporterOptions; private getReporterOptionsFromMocharcJs; private getReporterOptionsFromMocharcJson; private getReporterOptionsFromCommandLine; private setFilename; private updateCtrfTotalsFromTest; private setEnvironmentDetails; private hasEnvironmentDetails; extractFailureDetails(testResult: Mocha.Test): Partial; private writeReportToFile; } export = GenerateCtrfReport;