import { TestOptions } from './TestOptions';
import { CoverageOptions } from '../apex/coverage/IndividualClassCoverage';
import { Logger } from '@flxbl-io/sfp-logger';
import { Progress, ApexTestProgressValue, CancellationTokenSource } from '@salesforce/apex-node';
export default class TriggerApexTests {
    private target_org;
    private testOptions;
    private coverageOptions;
    private project_directory;
    private fileLogger?;
    private conn;
    protected cancellationTokenSource: CancellationTokenSource;
    constructor(target_org: string, testOptions: TestOptions, coverageOptions: CoverageOptions, project_directory: string, fileLogger?: any);
    exec(): Promise<{
        id: string;
        result: boolean;
        message: string;
    }>;
    private translateTestOptionToAPIVars;
    private removeDuplicateTestListing;
    private getTranslatedOptionsForSpecifiedTests;
    private getTranslatedOptionsForAllTestInPackageOptions;
    private triggerSecondRunInSerialForParallelFailedTests;
    private fixBadNamespaceClassFullNames;
    private combineTestResult;
    /**
     * Trigger tests asynchronously
     * @param  {TestService} testService
     * @param  {TestLevel} testLevel
     * @param  {string} tests?
     * @param  {string} suites?
     */
    private triggerTestAsynchronously;
    private validateForApexCoverage;
    private writeJUnit;
    private writeTestOutput;
    private formatResultInJson;
    private toggleParallelApexTesting;
    private reportMetrics;
}
export declare class ProgressReporter implements Progress<ApexTestProgressValue> {
    private logger;
    private lastExecutedTime;
    constructor(logger: Logger);
    report(value: ApexTestProgressValue): void;
}
