import { Task, Status } from "task-api"; export interface MyTaskController { setStatus: (status: Status) => void; setError: (error: any) => void; } export declare class MyTask implements Task { private _end?; private _status; private _error; private promise; private isPromiseCatched; constructor(func: () => TResult | PromiseLike, controller?: MyTaskController); private isPromiseLike; private createTaskPromise; private setStatusByError; static succeded(result: TResult): MyTask; static failed(reason?: any): MyTask; static cancelled(): MyTask; readonly status: Status; readonly error: any; readonly end: Promise; readonly isEnded: boolean; readonly isRunning: boolean; readonly isSucceded: boolean; readonly isFailed: boolean; readonly isCancelled: boolean; then: (onfulfilled?: ((value: TResult) => TResult1 | PromiseLike) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null) => Promise; catch: (onrejected?: ((reason: any) => TResult2 | PromiseLike) | null) => Promise; readonly [Symbol.toStringTag]: "Promise"; private ensureCatched; }