export default TaskGroup;
declare class TaskGroup {
    /**
     *
     * @param {(Task|TaskGroup)[]} subtasks
     * @param {string} [name]
     * @constructor
     */
    constructor(subtasks: (Task | TaskGroup)[], name?: string);
    /**
     *
     * @type {string}
     */
    name: string;
    /**
     *
     * @type {(Task|TaskGroup)[]}
     */
    children: (Task | TaskGroup)[];
    on: {
        started: Signal<any, any, any, any, any, any, any, any>;
        completed: Signal<any, any, any, any, any, any, any, any>;
        failed: Signal<any, any, any, any, any, any, any, any>;
    };
    /**
     *
     * @type {ObservedInteger}
     */
    state: ObservedInteger;
    /**
     * Time in milliseconds that the task has been executing for, suspended time does not count
     * @returns {number}
     */
    getExecutedCpuTime(): number;
    /**
     *
     * @param {Task|TaskGroup} child
     * @returns {boolean}
     */
    addChild(child: Task | TaskGroup): boolean;
    /**
     *
     * @param {(Task|TaskGroup)[]} children
     */
    addChildren(children: (Task | TaskGroup)[]): void;
    /**
     *
     * @param {Task|TaskGroup} dependency
     */
    addDependency(dependency: Task | TaskGroup): void;
    addDependencies(dependencies: any): void;
    /**
     *
     * @returns {number}
     */
    getEstimatedDuration(): number;
    /**
     * Dumps task group tree along with state of each task
     * @returns {string}
     */
    getVerboseStatusMessage(): string;
    computeProgress(): number;
    /**
     *
     * @param resolve
     * @param reject
     */
    join(resolve: any, reject: any): void;
    /**
     *
     * @returns {Promise<unknown>}
     */
    promise(): Promise<unknown>;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isTaskGroup: boolean;
}
import Task from "./Task.js";
import Signal from "../../events/signal/Signal.js";
import ObservedInteger from "../../model/ObservedInteger.js";
//# sourceMappingURL=TaskGroup.d.ts.map