import { Profiler } from 'node:inspector';
import { BaseCoverageProvider } from 'vitest/coverage';
import { CoverageProvider, AfterSuiteRunMeta, ReportContext, ResolvedCoverageOptions } from 'vitest';
import { Vitest } from 'vitest/node';

type Options = ResolvedCoverageOptions<'c8'>;
declare class C8CoverageProvider extends BaseCoverageProvider implements CoverageProvider {
    name: string;
    ctx: Vitest;
    options: Options;
    coverages: Profiler.TakePreciseCoverageReturnType[];
    initialize(ctx: Vitest): void;
    resolveOptions(): Options;
    clean(clean?: boolean): Promise<void>;
    onAfterSuiteRun({ coverage }: AfterSuiteRunMeta): void;
    reportCoverage({ allTestsRun }?: ReportContext): Promise<void>;
}

export { C8CoverageProvider };
