import { TestResult } from '@salesforce/apex-node';
import { Ux } from '@salesforce/sf-plugins-core';
import { Connection } from '@salesforce/core';
import { Duration } from '@salesforce/kit';
import { RunResult } from './jsonReporter.js';
export declare class TestReporter {
    private readonly ux;
    private readonly connection;
    /**
     * Create a TestReporter that will format test results
     *
     * @param ux a new Ux instance based on if the command is in json mode
     * @param connection a connection to the org the tests are being run against - used for getting username for hints
     */
    constructor(ux: Ux, connection: Connection);
    report(result: TestResult, options: {
        wait?: Duration;
        'output-dir'?: string;
        'result-format'?: string;
        'detailed-coverage'?: boolean;
        synchronous?: boolean;
        json?: boolean;
        'code-coverage'?: boolean;
        concise: boolean;
    }): Promise<RunResult>;
    /**
     * Builds output directory configuration with CLI format result files
     *
     * @param result Test results from async/sync test run
     * @param jsonOutput JSON CLI format of test results
     * @param outputDir Output directory for result files
     * @param resultFormat Result format for output files
     * @param detailedCoverage Boolean to control detailed coverage reporting
     * @param synchronous Whether the test run was synchronous
     * @returns Output directory configuration
     */
    private buildOutputDirConfig;
    private formatResultInJson;
    private logHuman;
    private logTap;
    private logJUnit;
    private formatReportHint;
}
