import { HeftTask, type IHeftTask } from './HeftTask';
import type { InternalHeftSession } from './InternalHeftSession';
import type { IHeftConfigurationJsonPhaseSpecifier } from '../utilities/CoreConfigFiles';
import type { IDeleteOperation } from '../plugins/DeleteFilesPlugin';
/**
 * @public
 */
export interface IHeftPhase {
    readonly phaseName: string;
    readonly phaseDescription: string | undefined;
    cleanFiles: ReadonlySet<IDeleteOperation>;
    consumingPhases: ReadonlySet<IHeftPhase>;
    dependencyPhases: ReadonlySet<IHeftPhase>;
    tasks: ReadonlySet<IHeftTask>;
    tasksByName: ReadonlyMap<string, IHeftTask>;
}
/**
 * @internal
 */
export declare class HeftPhase implements IHeftPhase {
    private _internalHeftSession;
    private _phaseName;
    private _phaseSpecifier;
    private _consumingPhases;
    private _dependencyPhases;
    private _cleanFiles;
    private _tasks;
    private _tasksByName;
    constructor(internalHeftSession: InternalHeftSession, phaseName: string, phaseSpecifier: IHeftConfigurationJsonPhaseSpecifier);
    /**
     * The name of the phase.
     */
    get phaseName(): string;
    /**
     * The description of the phase.
     */
    get phaseDescription(): string | undefined;
    /**
     * Returns delete operations that are specified on the phase.
     */
    get cleanFiles(): ReadonlySet<IDeleteOperation>;
    /**
     * Returns the set of phases that depend on this phase.
     */
    get consumingPhases(): ReadonlySet<HeftPhase>;
    /**
     * Returns the set of phases that this phase depends on.
     */
    get dependencyPhases(): ReadonlySet<HeftPhase>;
    /**
     * Returns the set of tasks contained by this phase.
     */
    get tasks(): ReadonlySet<HeftTask>;
    /**
     * Returns a map of tasks by name.
     */
    get tasksByName(): ReadonlyMap<string, HeftTask>;
    private _ensureTasks;
    private _validate;
}
//# sourceMappingURL=HeftPhase.d.ts.map