import { HeftTaskSession } from './HeftTaskSession';
import { HeftPluginHost } from './HeftPluginHost';
import type { ScopedLogger } from './logging/ScopedLogger';
import type { InternalHeftSession } from './InternalHeftSession';
import type { HeftPhase } from './HeftPhase';
import type { HeftTask } from './HeftTask';
export interface IHeftPhaseSessionOptions {
    internalHeftSession: InternalHeftSession;
    phase: HeftPhase;
}
export declare class HeftPhaseSession extends HeftPluginHost {
    readonly phaseLogger: ScopedLogger;
    readonly cleanLogger: ScopedLogger;
    private readonly _options;
    private readonly _taskSessionsByTask;
    constructor(options: IHeftPhaseSessionOptions);
    /**
     * Get a task session for the given task.
     */
    getSessionForTask(task: HeftTask): HeftTaskSession;
    /**
     * Apply all task plugins specified by the phase.
     */
    protected applyPluginsInternalAsync(): Promise<void>;
}
//# sourceMappingURL=HeftPhaseSession.d.ts.map