import { Logger } from '@flxbl-io/sfp-logger';
import SfpPackage from '../SfpPackage';
import { Connection } from '@salesforce/core';
export default class PackageTestCoverage {
    private pkg;
    private codeCoverage;
    private logger;
    private readonly conn;
    private individualClassCoverage;
    private packageTestCoverage;
    constructor(pkg: SfpPackage, codeCoverage: any, logger: Logger, conn: Connection);
    getCurrentPackageTestCoverage(): Promise<number>;
    validateTestCoverage(coverageThreshold?: number): Promise<{
        result: boolean;
        message?: string;
        packageTestCoverage: number;
        classesCovered?: {
            name: string;
            coveredPercent: number;
        }[];
        classesWithInvalidCoverage?: {
            name: string;
            coveredPercent: number;
        }[];
    }>;
    private getIndividualClassCoverageByPackage;
    /**
     * Returns names of triggers in the package that are not triggered by the execution of any test classes
     * Returns empty array if triggers is null or undefined
     * @param triggers
     * @param codeCoverageReport
     * @returns
     */
    private getTriggersNotTouchedByTestClass;
    /**
     * Returns name of classes in the package that are not touched by the execution of any test classes
     * Returns empty array if packageClasses is null or undefined
     * @param packageClasses
     * @param codeCoverageReport
     * @returns
     */
    private getClassesNotTouchedByTestClass;
    /**
     * Filter code coverage to classes and triggers in the package
     * @param codeCoverage
     * @param packageClasses
     * @param triggers
     */
    private filterCodeCoverageToPackageClassesAndTriggers;
}
