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 { AsyncOption, TAsyncOption } from './async-option.types';
export declare const some: (a: A) => AsyncOption;
export declare const none: () => AsyncOption;
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 of: (a: A) => AsyncOption;
export declare const map: (args_0: (args_0: A1) => A2) => (args_0: AsyncOption) => AsyncOption;
export declare const mapCompose: (args_0: (args_0: A1) => A2) => (args_0: AsyncOption>) => AsyncOption>;
export declare const flap: (args_0: A1) => (args_0: AsyncOption<(args_0: A1) => B1>) => AsyncOption;
export declare const as: (args_0: A1) => (args_0: AsyncOption) => AsyncOption;
export declare const tap: (args_0: (args_0: A1) => void) => (args_0: AsyncOption) => AsyncOption;
export declare const ap: (args_0: AsyncOption) => (args_0: AsyncOption<(args_0: A1) => B1>) => AsyncOption;
export declare const liftA2: (args_0: (args_0: A1, args_1: A2) => A3) => (args_0: AsyncOption) => (args_0: AsyncOption) => AsyncOption;
export declare const product: (args_0: AsyncOption) => (args_0: AsyncOption) => AsyncOption<[A1, B1]>;
export declare const productMany: (args_0: AsyncOption) => (args_0: AsyncOption[]) => AsyncOption;
export declare const flatMap: (args_0: (args_0: A1) => AsyncOption) => (args_0: AsyncOption) => AsyncOption;
export declare const chain: (args_0: (args_0: A1) => AsyncOption) => (args_0: AsyncOption) => AsyncOption;
export declare const andThen: (args_0: (args_0: A1) => AsyncOption) => (args_0: AsyncOption) => AsyncOption;
export declare const flatten: (args_0: AsyncOption>) => AsyncOption;
export declare const orElse: (args_0: () => AsyncOption) => (args_0: AsyncOption) => AsyncOption;
export declare const alt: (args_0: () => AsyncOption) => (args_0: AsyncOption) => AsyncOption;
export declare const or: (args_0: AsyncOption) => (args_0: AsyncOption) => AsyncOption;