import * as A from '../async';
import * as IO from '../io';
import * as T from '../task';
import * as AO from '../async-option';
import * as AR from '../async-result';
import * as tFunctor from '../../typeclass/functor';
import * as tOf from '../../typeclass/of';
import * as tApplicative from '../../typeclass/applicative';
import * as tMonad from '../../typeclass/monad';
import * as tSemiAlternative from '../../typeclass/semialternative';
import * as tBiFunctor from '../../typeclass/bifunctor';
import * as tFlip from '../../typeclass/flip';
import * as tBiFlatMap from '../../typeclass/biflatmap';
import { TaskResult, TTaskResult } from './task-result.types';
export declare const ok: (a: A) => TaskResult;
export declare const err: (e: E) => TaskResult;
export declare const Of: tOf.Of;
export declare const Functor: tFunctor.Functor;
export declare const BiFunctor: tBiFunctor.BiFunctor;
export declare const Flip: tFlip.Flip;
export declare const Applicative: tApplicative.Applicative;
export declare const Monad: tMonad.Monad;
export declare const BiFlatMap: tBiFlatMap.BiFlatMap;
export declare const SemiAlternative: tSemiAlternative.SemiAlternative;
export declare const fromIO: (io: IO.IO) => TaskResult;
export declare const fromAsync: (a: A.Async) => TaskResult;
export declare const fromAsyncOption: (onErr: () => E) => (ao: AO.AsyncOption) => TaskResult;
export declare const fromAsyncResult: (a: AR.AsyncResult) => TaskResult;
export declare const fromTask: (a: T.Task) => TaskResult;
export declare const of: (a: A) => TaskResult;
export declare const map: (args_0: (args_0: A1) => A2) => (args_0: TaskResult) => TaskResult;
export declare const mapCompose: (args_0: (args_0: A1) => A2) => (args_0: TaskResult, B2>) => TaskResult, B2>;
export declare const flap: (args_0: A1) => (args_0: TaskResult<(args_0: A1) => B1, B2>) => TaskResult;
export declare const as: (args_0: A1) => (args_0: TaskResult) => TaskResult;
export declare const tap: (args_0: (args_0: A1) => void) => (args_0: TaskResult) => TaskResult;
export declare const bimap: (args_0: (args_0: A1) => A2, args_1: (args_0: A3) => A4) => (args_0: TaskResult) => TaskResult;
export declare const mapLeft: (args_0: (args_0: A1) => A2) => (args_0: TaskResult) => TaskResult;
export declare const mapRight: (args_0: (args_0: A1) => A2) => (args_0: TaskResult) => TaskResult;
export declare const mapErr: (args_0: (args_0: A1) => A2) => (args_0: TaskResult) => TaskResult;
export declare const bitap: (args_0: (args_0: A1) => void, args_1: (args_0: A2) => void) => (args_0: TaskResult) => TaskResult;
export declare const tapLeft: (args_0: (args_0: A1) => void) => (args_0: TaskResult) => TaskResult;
export declare const tapRight: (args_0: (args_0: A1) => void) => (args_0: TaskResult) => TaskResult;
export declare const tapErr: (args_0: (args_0: A1) => void) => (args_0: TaskResult) => TaskResult;
export declare const flip: (args_0: TaskResult) => TaskResult;
export declare const ap: (args_0: TaskResult) => (args_0: TaskResult<(args_0: A1) => B1, B2>) => TaskResult;
export declare const liftA2: (args_0: (args_0: A1, args_1: A2) => A3) => (args_0: TaskResult) => (args_0: TaskResult) => TaskResult;
export declare const product: (args_0: TaskResult) => (args_0: TaskResult) => TaskResult<[A1, B1], A2 | B2>;
export declare const productMany: (args_0: TaskResult) => (args_0: TaskResult[]) => TaskResult;
export declare const flatMap: (args_0: (args_0: A1) => TaskResult) => (args_0: TaskResult) => TaskResult;
export declare const chain: (args_0: (args_0: A1) => TaskResult) => (args_0: TaskResult) => TaskResult;
export declare const andThen: (args_0: (args_0: A1) => TaskResult) => (args_0: TaskResult) => TaskResult;
export declare const flatten: (args_0: TaskResult, A3>) => TaskResult;
export declare const biFlatMap: (args_0: (args_0: A1) => TaskResult, args_1: (args_0: A4) => TaskResult) => (args_0: TaskResult) => TaskResult;
export declare const orElse: (args_0: (args_0: A1) => TaskResult) => (args_0: TaskResult) => TaskResult;
export declare const alt: (args_0: () => TaskResult) => (args_0: TaskResult) => TaskResult;
export declare const or: (args_0: TaskResult) => (args_0: TaskResult) => TaskResult;