export type TaskFunction<T> = () => T | Promise<T>;
export default class Task<T> {
    taskFn: TaskFunction<T>;
    pendingPromise: Promise<T>;
    resolve?: (res: T) => void;
    reject?: (err: Error) => void;
    constructor(fn: TaskFunction<T>);
    getPromise(): Promise<T>;
    start(): Promise<void>;
}
