import * as IO from '../io';
import * as A from '../async';
import * as AO from '../async-option';
import * as T from '../task';
import * as tFunctor from '../../typeclass/functor';
import * as tOf from '../../typeclass/of';
import * as tNone from '../../typeclass/none';
import * as tApplicative from '../../typeclass/applicative';
import * as tMonad from '../../typeclass/monad';
import * as tSemiAlternative from '../../typeclass/semialternative';
import { TaskOption, TTaskOption } from './task-option.types';
export declare const some: (a: A) => TaskOption;
export declare const none: () => TaskOption;
export declare const Of: tOf.Of;
export declare const None: tNone.None;
export declare const Functor: tFunctor.Functor;
export declare const Applicative: tApplicative.Applicative;
export declare const Monad: tMonad.Monad;
export declare const SemiAlternative: tSemiAlternative.SemiAlternative;
export declare const fromIO: (io: IO.IO) => TaskOption;
export declare const fromAsync: (a: A.Async) => TaskOption;
export declare const fromAsyncOption: (a: AO.AsyncOption) => TaskOption;
export declare const fromTask: (a: T.Task) => TaskOption;
export declare const of: (a: A) => TaskOption;
export declare const map: (args_0: (args_0: A1) => A2) => (args_0: TaskOption) => TaskOption;
export declare const mapCompose: (args_0: (args_0: A1) => A2) => (args_0: TaskOption>) => TaskOption>;
export declare const flap: (args_0: A1) => (args_0: TaskOption<(args_0: A1) => B1>) => TaskOption;
export declare const as: (args_0: A1) => (args_0: TaskOption) => TaskOption;
export declare const tap: (args_0: (args_0: A1) => void) => (args_0: TaskOption) => TaskOption;
export declare const ap: (args_0: TaskOption) => (args_0: TaskOption<(args_0: A1) => B1>) => TaskOption;
export declare const liftA2: (args_0: (args_0: A1, args_1: A2) => A3) => (args_0: TaskOption) => (args_0: TaskOption) => TaskOption;
export declare const product: (args_0: TaskOption) => (args_0: TaskOption) => TaskOption<[A1, B1]>;
export declare const productMany: (args_0: TaskOption) => (args_0: TaskOption[]) => TaskOption;
export declare const flatMap: (args_0: (args_0: A1) => TaskOption) => (args_0: TaskOption) => TaskOption;
export declare const chain: (args_0: (args_0: A1) => TaskOption) => (args_0: TaskOption) => TaskOption;
export declare const andThen: (args_0: (args_0: A1) => TaskOption) => (args_0: TaskOption) => TaskOption;
export declare const flatten: (args_0: TaskOption>) => TaskOption;
export declare const orElse: (args_0: () => TaskOption) => (args_0: TaskOption) => TaskOption;
export declare const alt: (args_0: () => TaskOption) => (args_0: TaskOption) => TaskOption;
export declare const or: (args_0: TaskOption) => (args_0: TaskOption) => TaskOption;