import { Task, TaskGraph } from '@nrwl/devkit';
import { Workspaces } from '@nrwl/tao/src/shared/workspace';
import { DefaultTasksRunnerOptions } from './default-tasks-runner';
export interface Batch {
    executorName: string;
    taskGraph: TaskGraph;
}
export declare class TasksSchedule {
    private taskGraph;
    private workspace;
    private options;
    private notScheduledTaskGraph;
    private reverseTaskDeps;
    private scheduledBatches;
    private scheduledTasks;
    private completedTasks;
    constructor(taskGraph: TaskGraph, workspace: Workspaces, options: DefaultTasksRunnerOptions);
    scheduleNextTasks(): void;
    hasTasks(): boolean;
    complete(taskIds: string[]): void;
    nextTask(): Task;
    nextBatch(): Batch;
    private scheduleTask;
    private scheduleBatches;
    private scheduleBatch;
    private processTaskForBatches;
    private canBeScheduled;
}
