import Monad from "../../specifications/Monad"; import Bifunctor from "../../specifications/Bifunctor"; declare type CB = (i?: I) => any; declare type Action = (l: CB, r: CB) => any; export default class Task implements Monad, Bifunctor { protected readonly action: Action; constructor(action: Action); static rejected(a: L): Task; static resolved(a: R): Task; map(fn: (a: R) => R2): Task; ap(other: Task): R extends (r: R2) => infer R3 ? Task : any; chain(fn: (right: R) => Task): Task; static of(a: R): Task; bimap(fnLeft: (left: L) => L2, fnRight: (right: R) => R2): Task; bichain(fnL: (left: L) => Task, fnR: (right: R) => Task): Task; fork(reject: CB, resolve: CB): ReturnType>; get(): Action; join(): Task; inspect(): string; } export {};