import { HeftLifecycle } from './HeftLifecycle';
import { HeftPhaseSession } from './HeftPhaseSession';
import { HeftPhase } from './HeftPhase';
import { type IHeftConfigurationJsonActionReference } from '../utilities/CoreConfigFiles';
import type { MetricsCollector } from '../metrics/MetricsCollector';
import type { LoggingManager } from './logging/LoggingManager';
import type { HeftConfiguration } from '../configuration/HeftConfiguration';
import type { HeftParameterManager } from './HeftParameterManager';
import type { IHeftParsedCommandLine } from './HeftTaskSession';
export interface IInternalHeftSessionOptions {
    heftConfiguration: HeftConfiguration;
    loggingManager: LoggingManager;
    metricsCollector: MetricsCollector;
    debug: boolean;
}
export declare class InternalHeftSession {
    private readonly _phaseSessionsByPhase;
    private readonly _heftConfigurationJson;
    private _actionReferencesByAlias;
    private _lifecycle;
    private _phases;
    private _phasesByName;
    private _parameterManager;
    readonly heftConfiguration: HeftConfiguration;
    readonly loggingManager: LoggingManager;
    readonly metricsCollector: MetricsCollector;
    parsedCommandLine: IHeftParsedCommandLine | undefined;
    readonly debug: boolean;
    private constructor();
    static initializeAsync(options: IInternalHeftSessionOptions): Promise<InternalHeftSession>;
    get parameterManager(): HeftParameterManager;
    set parameterManager(value: HeftParameterManager);
    get actionReferencesByAlias(): ReadonlyMap<string, IHeftConfigurationJsonActionReference>;
    get lifecycle(): HeftLifecycle;
    get phases(): ReadonlySet<HeftPhase>;
    get phasesByName(): ReadonlyMap<string, HeftPhase>;
    getSessionForPhase(phase: HeftPhase): HeftPhaseSession;
    private _ensurePhases;
}
//# sourceMappingURL=InternalHeftSession.d.ts.map