export default interface Task { /** * Describes the task for the purpose of logging. */ name(): string; /** * Attempts to cancel the task. The task may still succeed if it is unable to * be canceled. If the task is canceled, then its [[run]] function will reject * the promise. If [[cancel]] is called before [[run]], then [[run]] * must immediately reject the returned promise. If [[cancel]] is called * after [[run]], then nothing happens. */ cancel(): void; /** * Runs the unit of work until it either succeeds and fulfills the promise or * fails and rejects the promise. Where possible it should listen for the * cancellation signal, stop working, and reject the promise. If run is called * more than once, it should immediately reject the promise. */ run(): Promise; /** * Sets the parent of this task for the purpose of logging. */ setParent(parentTask: Task): void; }