import type { Callback } from './Tool';
export declare type Task = (cb: Callback) => void;
export declare type SyncTask = () => void;
/**
 * A simple utility class for queuing up a series of async tasks to execute.
 */
export declare class TaskQueue {
    private tasks;
    /**
     * If true, the task list will stop executing if one of the tasks throws an error.
     */
    readonly stopOnError: boolean;
    /**
     * Adds a new async task to this queue. The provided callback should be executed when
     * the async task is complete.
     *
     * @param task - The async task to add.
     */
    add(task: Task): void;
    /**
     * Adds a synchronous task toi this queue.
     *
     * @param task - The sync task to add.
     */
    addSync(task: SyncTask): void;
    /**
     * Runs all tasks currently in this queue and empties the queue.
     *
     * @param cb - The optional callback to be executed when all tasks in this queue have
     * finished executing.
     */
    runAll(cb?: Callback): void;
}
