import { IO } from "jabz/io"; import { Monad } from "jabz/monad"; import { Future } from "./future"; import { Behavior } from "./behavior"; import { Stream } from "./stream"; export declare abstract class Now implements Monad { abstract run(): A; of(b: B): Now; static of(b: B): Now; chain(f: (a: A) => Now): Now; static multi: boolean; multi: boolean; flatten: () => Now; map: (f: (a: A) => B) => Now; mapTo: (b: B) => Now; ap: (a: Now<(a: A) => B>) => Now; lift: (f: Function, ...ms: any[]) => Now; } export declare function async(comp: IO): Now>; export declare function sample(b: Behavior): Now; export declare function performStream(s: Stream>): Now>; export declare function performStreamLatest(s: Stream>): Now>; export declare function performStreamOrdered(s: Stream>): Now>; export declare function plan(future: Future>): Now>; export declare function runNow(now: Now>): Promise;