/**
 * Copyright (c) Microsoft Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { CommonReporterOptions } from './base';
import type { ReporterV2 } from './reporterV2';
import type { JsonReporterOptions } from '../../types/test';
import type { FullConfig, FullResult, Suite, TestError } from '../../types/testReporter';
declare class JSONReporter implements ReporterV2 {
    config: FullConfig;
    suite: Suite;
    private _errors;
    private _resolvedOutputFile;
    constructor(options: JsonReporterOptions & CommonReporterOptions);
    version(): 'v2';
    printsToStdio(): boolean;
    onConfigure(config: FullConfig): void;
    onBegin(suite: Suite): void;
    onError(error: TestError): void;
    onEnd(result: FullResult): Promise<void>;
    private _serializeReport;
    private _mergeSuites;
    private _relativeLocation;
    private _locationMatches;
    private _mergeTestsFromSuite;
    private _serializeSuite;
    private _serializeTestSpec;
    private _serializeTest;
    private _serializeTestResult;
    private _serializeError;
    private _serializeTestStep;
}
export declare function serializePatterns(patterns: string | RegExp | (string | RegExp)[]): string[];
export default JSONReporter;
//# sourceMappingURL=json.d.ts.map