import { ApexTestResultOutcome, TestResult } from '@salesforce/apex-node';
export type CliJsonFormat = {
    summary: object;
    tests: CliTestResult[];
    coverage?: CliCoverageResult;
};
type CliTestResult = {
    Id: string;
    QueueItemId: string;
    StackTrace: string;
    Message: string;
    AsyncApexJobId: string;
    MethodName: string;
    Outcome: ApexTestResultOutcome;
    ApexClass: {
        Id: string;
        Name: string;
        NamespacePrefix: string;
    };
    RunTime: number;
    FullName: string;
};
type ClassCoverage = {
    id: string;
    name: string;
    totalLines: number;
    lines: {};
    totalCovered: number;
    coveredPercent: number;
};
type PerClassCoverage = {
    ApexTestClass: {
        Id: string;
        Name: string;
    };
    Coverage?: {
        coveredLines: number[];
        uncoveredLines: number[];
    };
    TestMethodName: string;
    NumLinesCovered: number;
    ApexClassOrTrigger: {
        Id: string;
        Name: string;
    };
    NumLinesUncovered: number;
};
type CliCoverageResult = {
    coverage: ClassCoverage[];
    records: PerClassCoverage[];
    summary: {
        totalLines: number;
        coveredLines: number;
        testRunCoverage: string;
        orgWideCoverage: string;
    };
};
export declare class JsonReporter {
    format(result: TestResult): {
        summary: object;
        tests: CliTestResult[];
        coverage?: CliCoverageResult;
    };
    private formatSummary;
    private formatTestResults;
    private formatCoverage;
}
export {};
