import * as tFunctor from '../../typeclass/functor';
import * as tOf from '../../typeclass/of';
import * as tTo from '../../typeclass/to';
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 * as tAlternative from '../../typeclass/alternative';
import type { TIO, IO } from './io.types';
export declare const run: (io: IO) => A;
export declare const None: tNone.None;
export declare const Of: tOf.Of;
export declare const To: tTo.To;
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 Alternative: tAlternative.Alternative;
export declare const fromIO: (io: IO) => IO;
export declare const of: (a: A) => IO;
export declare const none: () => IO;
export declare const getOrElse: (f: () => A1) => (fa: IO) => A1 | A;
export declare const getOr: (args_0: A1) => (args_0: IO) => A1 | B1;
export declare const map: (args_0: (args_0: A1) => A2) => (args_0: IO) => IO;
export declare const mapCompose: (args_0: (args_0: A1) => A2) => (args_0: IO>) => IO>;
export declare const flap: (args_0: A1) => (args_0: IO<(args_0: A1) => B1>) => IO;
export declare const as: (args_0: A1) => (args_0: IO) => IO;
export declare const tap: (args_0: (args_0: A1) => void) => (args_0: IO) => IO;
export declare const ap: (args_0: IO) => (args_0: IO<(args_0: A1) => B1>) => IO;
export declare const liftA2: (args_0: (args_0: A1, args_1: A2) => A3) => (args_0: IO) => (args_0: IO) => IO;
export declare const product: (args_0: IO) => (args_0: IO) => IO<[A1, B1]>;
export declare const productMany: (args_0: IO) => (args_0: IO[]) => IO;
export declare const flatMap: (args_0: (args_0: A1) => IO) => (args_0: IO) => IO;
export declare const andThen: (args_0: (args_0: A1) => IO) => (args_0: IO) => IO;
export declare const chain: (args_0: (args_0: A1) => IO) => (args_0: IO) => IO;
export declare const flatten: (args_0: IO>) => IO;
export declare const orElse: (args_0: () => IO) => (args_0: IO) => IO;
export declare const or: (args_0: IO) => (args_0: IO) => IO;
export declare const pluck: (k: K) => (args_0: IO) => IO;