export * from 'fluenture';
import { FutureInstance, Cancel } from 'fluture';
/**
* TODO: Offer these type definitions for inclusion in the fluenture package
*/
export declare type Future = FutureInstance | Fluenture;
export declare type Fluent = Fluenture & FutureInstance;
export declare function fluent(future: Future): Fluent;
export declare function functional(future: Future): FutureInstance;
export declare class Fluenture {
pipe(fn: (self: Fluent) => T): T extends Future ? Fluent : T;
alt(future: Future): Fluent;
and(future: Future): Fluent;
ap(future: Future C>): Fluent;
bimap(withLeft: (left: A) => C, withRight: (right: B) => D): Fluent;
both(future: Future): Fluent;
cache(): this;
chain(fn: (value: B) => Future): Fluent;
chainRej(fn: (reason: A) => Future): Fluent;
coalesce(withLeft: (left: A) => C, withRight: (right: B) => C): Fluent;
lastly(future: Future): Fluent;
map(fn: (value: B) => C): Fluent;
mapRej(fn: (reason: A) => C): Fluent;
race(future: Future): Fluent;
swap(): Fluent;
done(fn: (value: A) => any): Cancel;
fork(withLeft: (reason: A) => any, withRight: (value: B) => any): Cancel;
forkCatch(withError: (error: any) => any, withLeft: (reason: A) => any, withRight: (value: B) => any): Cancel;
promise(): Promise;
value(withRight: (value: B) => any): Cancel;
}
//# sourceMappingURL=fluenture.d.ts.map