import { UnifiedPath, ProfilerConfig, ProjectReport, IProjectReportExecutionDetails, NanoSeconds_BigInt, MicroSeconds_number } from '@oaklean/profiler-core';
import { JestEnvironmentConfig, EnvironmentContext } from '@jest/environment';
import { PowerMetricsSensorInterface } from './interfaces/powermetrics/PowerMetricsSensorInterface';
import { PerfSensorInterface } from './interfaces/perf/PerfSensorInterface';
import { WindowsSensorInterface } from './interfaces/windows/WindowsSensorInterface';
export type TransformerAdapter = 'ts-jest';
export type ProfilerOptions = {
    transformerAdapter?: TransformerAdapter;
    jestAdapter: {
        config: JestEnvironmentConfig;
        context: EnvironmentContext;
    };
};
export declare class Profiler {
    subOutputDir: string | undefined;
    config: ProfilerConfig;
    options?: ProfilerOptions;
    executionDetails?: IProjectReportExecutionDetails;
    private _sensorInterface;
    private _traceEventSession;
    private _profilerStartTime;
    constructor(subOutputDir?: string, options?: ProfilerOptions);
    static getSensorInterface(config: ProfilerConfig): PowerMetricsSensorInterface | PerfSensorInterface | WindowsSensorInterface | undefined;
    loadSensorInterface(): void;
    static inject(subOutputDir?: string): Promise<Profiler>;
    startCapturingProfilerTracingEvents(): Promise<void>;
    stopCapturingProfilerTracingEvents(): Promise<void>;
    getCPUProfilerBeginTime(): Promise<MicroSeconds_number>;
    start(title: string, executionDetails?: IProjectReportExecutionDetails): Promise<void>;
    outputDir(): UnifiedPath;
    outputReportPath(title: string): UnifiedPath;
    outputMetricCollectionPath(title: string): UnifiedPath;
    outputProfilePath(title: string): UnifiedPath;
    finish(title: string, highResolutionStopTime?: NanoSeconds_BigInt): Promise<ProjectReport>;
}
