import { IScheduler } from "./scheduler"; export declare type TaskFn = (...args: any[]) => Promise; export interface ITaskDef { getTaskName(): string; getTaskFn(): TaskFn; create(...inputs: any[]): ITask; } export interface ITask { getTaskId(): string; getTaskDef(): ITaskDef; run(scheduler: IScheduler): Promise; } export declare class Task implements ITask { static register(taskName: string, taskFn: TaskFn): ITaskDef; static lookup(taskDefId: string): ITaskDef; static all(inputTasks: ITask[]): ITask; private static taskDefs; private taskId; private inputTasks; private taskDef; constructor(inputTasks: ITask[], taskDef: ITaskDef); getTaskId(): string; getTaskDef(): ITaskDef; run(scheduler: IScheduler): Promise; }