export type Cancelable = (res: (a: A) => void, rej: (e: any) => void) => (() => void); export type DeferredCancelable = { cancelable: Cancelable, cancel: () => void, resolve: (a: A) => void, reject: (e: any) => void } export type NodeCallback = (error: Error, result: A) => void; export function addFantasyLandInterface(ca: Cancelable): Cancelable; export function createDeferred(): DeferredCancelable; export function of(a: A): Cancelable; export function reject(e: any): Cancelable; export function never(): Cancelable; export function later(dt: number, a: A): Cancelable; export function later(dt: number): (a: A) => Cancelable; export function laterReject(dt: number, error: any): Cancelable; export function laterReject(dt: number): (error: any) => Cancelable; export function fetchResponse({url, spec}: {url: URL|string, spec: RequestInit|{[key: string]: any}}): Cancelable; export function fetchResponseIsoModule(spec: WindowOrWorkerGlobalScope): (params: {url: URL|string, init: RequestInit|{[key: string]: any}}) => Cancelable; export function cancelify(f: (...args: any[]) => Promise): (...args: any[]) => Cancelable; export function cancelifyWithArityAbortable(arity: number, f: (...args: any[]) => Promise): (...args: any[]) => Cancelable; // :: Number → ((*..., NodeCallback a) → ()) → *... → Cancelable a export function fromNodeCallbackWithArity(arity: number, f: (args: [...args: any[], callback: NodeCallback]) => void): (...args: any[]) => Cancelable; // Transformations export function coalesce(onFailure: (e: any) => B, onSuccess: (a?: A) => B, cc: Cancelable): Cancelable; export function coalesce(onFailure: (e: any) => B, onSuccess: (a?: A) => B): (cc: Cancelable) => Cancelable; export function map(fn: (a: A) => B, ma: Cancelable): Cancelable; export function map(fn: (a: A) => B): (ma: Cancelable) => Cancelable; export function biMap(fnLeft: (x: any) => any, fn: (a: A) => B, ma: Cancelable): Cancelable; export function biMap(fnLeft: (x: any) => any, fn: (a: A) => B): (ma: Cancelable) => Cancelable; export function pluck(propertyName: string, mKv: Cancelable>): Cancelable; export function pluck(propertyName: string): (mKv: Cancelable>) => Cancelable; export function pluck(index: number, mKv: Cancelable<[T]>): Cancelable; export function pluck(index: number): (mKv: Cancelable<[T]>) => Cancelable; export function biChain(fnLeft: (e:any) => Cancelable, fnRight: (x: A) => Cancelable, ma: Cancelable): Cancelable; export function biChain(fnLeft: (e:any) => Cancelable, fnRight: (x: A) => Cancelable): (ma: Cancelable) => Cancelable; export function biChain(fnLeft: (e:any) => Cancelable): (fnRight: (x: A) => Cancelable) => (ma: Cancelable) => Cancelable; export function chain(fn: (x: A) => Cancelable, ma: Cancelable): Cancelable; export function chain(fn: (x: A) => Cancelable): (ma: Cancelable) => Cancelable; // Side-Effects export function bi_tap(onFailure: (e: any) => any, onSuccess: (a: A) => any, ma: Cancelable): Cancelable; export function bi_tap(onFailure: (e: any) => any, onSuccess: (a: A) => any): (ma: Cancelable) => Cancelable; export function bi_tap(onFailure: (e: any) => any): (onSuccess: (a: A) => any, ma: Cancelable) => Cancelable; export function bi_tap(onFailure: (e: any) => any): (onSuccess: (a: A) => any) => (ma: Cancelable) => Cancelable; // Combinations export function ap(mfn: Cancelable<(a: A) => B>, mb: Cancelable): Cancelable; export function ap(mfn: Cancelable<(a: A) => B>): (mb: Cancelable) => Cancelable; export function liftA2(f: (a: A) => (b: B) => C, ma: Cancelable, mb: Cancelable): Cancelable; export function liftA2(f: (a: A) => (b: B) => C): (ma: Cancelable, mb: Cancelable) => Cancelable; export function liftA2(f: (a: A) => (b: B) => C): (ma: Cancelable) => (mb: Cancelable) => Cancelable; export function liftA3(f: (a: A) => (b: B) => (c: C) => D, ma: Cancelable, mb: Cancelable, mc: Cancelable): Cancelable; export function liftA3(f: (a: A) => (b: B) => (c: C) => D): (ma: Cancelable, mb: Cancelable, mc: Cancelable) => Cancelable; export function liftA3(f: (a: A) => (b: B) => (c: C) => D): (ma: Cancelable, mb: Cancelable) => (mc: Cancelable) => Cancelable; export function liftA4(f: (a: A) => (b: B) => (c: C) => (d: D) => E, ma: Cancelable, mb: Cancelable, mc: Cancelable, md: Cancelable): Cancelable; export function liftA4(f: (a: A) => (b: B) => (c: C) => (d: D) => E): (ma: Cancelable, mb: Cancelable, mc: Cancelable, md: Cancelable) => Cancelable; export function liftA4(f: (a: A) => (b: B) => (c: C) => (d: D) => E): (ma: Cancelable, mb: Cancelable, mc: Cancelable) => (md: Cancelable) => Cancelable; export function race(ma1: Cancelable, ma2: Cancelable): Cancelable; export function race(ma1: Cancelable): (ma2: Cancelable) => Cancelable; export function share(ma: Cancelable): Cancelable;