import { Config } from './config'; export interface Task { capabilities: any; specs: Array; taskId: string; done: any; } /** * The taskScheduler keeps track of the spec files that needs to run next * and which task is running what. */ export declare class TaskQueue { capabilities: any; specLists: any; numRunningInstances: number; maxInstance: number; specsIndex: number; constructor(capabilities: any, specLists: any); } export declare class TaskScheduler { private config; taskQueues: Array; rotationIndex: number; /** * A scheduler to keep track of specs that need running and their associated * capabilities. It will suggest a task (combination of capabilities and spec) * to run while observing the following config rules: * multiCapabilities, shardTestFiles, and maxInstance. * Precondition: multiCapabilities is a non-empty array * (capabilities and getCapabilities will both be ignored) * * @constructor * @param {Object} config parsed from the config file */ constructor(config: Config); /** * Get the next task that is allowed to run without going over maxInstance. * * @return {{capabilities: Object, specs: Array., taskId: string, * done: function()}} */ nextTask(): Task; /** * Get the number of tasks left to run or are currently running. * * @return {number} */ numTasksOutstanding(): number; /** * Get maximum number of concurrent tasks required/permitted. * * @return {number} */ maxConcurrentTasks(): number; /** * Returns number of tasks currently running. * * @return {number} */ countActiveTasks(): number; }