import type { ProjectGraph, TaskGraph } from '@nrwl/devkit';
import { Hasher } from '../core/hasher/hasher';
import { DefaultTasksRunnerOptions } from './default-tasks-runner';
import { AffectedEvent } from './tasks-runner';
export declare class TaskOrchestrator {
    private readonly hasher;
    private readonly initiatingProject;
    private readonly projectGraph;
    private readonly taskGraph;
    private readonly options;
    private readonly hideCachedOutput;
    private cache;
    private workspace;
    private forkedProcessTaskRunner;
    private tasksSchedule;
    private reverseTaskDeps;
    timings: {
        [target: string]: {
            start: number;
            end: number;
        };
    };
    private completedTasks;
    private startedTasks;
    private waitingForTasks;
    constructor(hasher: Hasher, initiatingProject: string | undefined, projectGraph: ProjectGraph, taskGraph: TaskGraph, options: DefaultTasksRunnerOptions, hideCachedOutput: boolean);
    run(): Promise<AffectedEvent[]>;
    private executeNextBatchOfTasksUsingTaskSchedule;
    private applyCachedResults;
    private applyCachedResult;
    private applyFromCacheOrRunBatch;
    private runBatch;
    private applyFromCacheOrRunTask;
    private runTaskInForkedProcess;
    private preRunSteps;
    private storeStartTime;
    private postRunSteps;
    private complete;
    private storeEndTime;
    private hashTask;
    private pipeOutputCapture;
    private shouldCacheTaskResult;
    private shouldForwardOutput;
    private isCacheableTask;
    private longRunningTask;
    private covertCompletedTasksToOutputFormat;
}
