import type { EndE2edReason, ExitCode } from '../constants/internal';
import type { ApiStatistics } from './apiStatistics';
import type { FullPackConfig } from './config';
import type { UtcTimeInMs } from './date';
import type { StartInfo } from './startInfo';
import type { LiteTestRun } from './testRun';
import type { CustomPackPropertiesPlaceholder, CustomReportPropertiesPlaceholder, SkipTestsPlaceholder, TestMetaPlaceholder } from './userland';
/**
 * The lite report data (for printing lite JSON report) with userland meta.
 */
export type LiteReport<CustomPackProperties = CustomPackPropertiesPlaceholder, CustomReportProperties = CustomReportPropertiesPlaceholder, SkipTests = SkipTestsPlaceholder, TestMeta = TestMetaPlaceholder> = Readonly<{
    afterPackExecutionTimeWithUnits: string;
    apiStatistics: ApiStatistics;
    customReportProperties: CustomReportProperties | undefined;
    endE2edReason: EndE2edReason;
    endTimeInMs: UtcTimeInMs;
    errors: readonly string[];
    exitCode: ExitCode;
    failedTestsMainParams: readonly string[];
    liteReportFileName: string;
    retries: readonly LiteRetry<TestMeta>[];
    startInfo: StartInfo<FullPackConfig<CustomPackProperties, CustomReportProperties, SkipTests, TestMeta>>;
    summaryPackResults: string;
}>;
/**
 * Lite retry object with all his lite test runs.
 */
export type LiteRetry<TestMeta = TestMetaPlaceholder> = Readonly<{
    brokenLiteTestRuns: readonly LiteTestRun<TestMeta>[];
    concurrency: number;
    endTimeInMs: UtcTimeInMs;
    /**
     * Test runs of all statuses except broken.
     */
    liteTestRuns: readonly LiteTestRun<TestMeta>[];
    retryIndex: number;
    startTimeInMs: UtcTimeInMs;
}>;
