import * as tOf from '../../typeclass/of'; import * as tFunctor from '../../typeclass/functor'; import * as tApplicative from '../../typeclass/applicative'; import * as tMonad from '../../typeclass/monad'; import type { ReaderIO, TReaderIO } from './reader-io.types'; import * as IO from '../io'; import * as Reader from '../reader'; export declare const ask: () => ReaderIO; export declare const asks: (f: (env: Env) => A) => ReaderIO; export declare const local: (f: (env: Env2) => Env1) => (fa: ReaderIO) => ReaderIO; export declare const askReader: (f: (env: Env1) => ReaderIO) => ReaderIO; export declare const runReader: (fa: ReaderIO) => (env: Env) => A; export declare const Of: tOf.Of; export declare const Functor: tFunctor.Functor; export declare const Applicative: tApplicative.Applicative; export declare const Monad: tMonad.Monad; export declare const fromIO: (io: IO.IO) => ReaderIO; export declare const fromReader: (reader: Reader.Reader) => ReaderIO; export declare const of: (a: A) => ReaderIO; export declare const map: (args_0: (args_0: A1) => A2) => (args_0: ReaderIO) => ReaderIO; export declare const mapCompose: (args_0: (args_0: A1) => A2) => (args_0: ReaderIO, B2>) => ReaderIO, B2>; export declare const flap: (args_0: A1) => (args_0: ReaderIO<(args_0: A1) => B1, B2>) => ReaderIO; export declare const as: (args_0: A1) => (args_0: ReaderIO) => ReaderIO; export declare const tap: (args_0: (args_0: A1) => void) => (args_0: ReaderIO) => ReaderIO; export declare const ap: (args_0: ReaderIO) => (args_0: ReaderIO<(args_0: A1) => B1, B2>) => ReaderIO; export declare const liftA2: (args_0: (args_0: A1, args_1: A2) => A3) => (args_0: ReaderIO) => (args_0: ReaderIO) => ReaderIO; export declare const product: (args_0: ReaderIO) => (args_0: ReaderIO) => ReaderIO<[A1, B1], A2 & B2>; export declare const productMany: (args_0: ReaderIO) => (args_0: ReaderIO[]) => ReaderIO; export declare const flatMap: (args_0: (args_0: A1) => ReaderIO) => (args_0: ReaderIO) => ReaderIO; export declare const andThen: (args_0: (args_0: A1) => ReaderIO) => (args_0: ReaderIO) => ReaderIO; export declare const chain: (args_0: (args_0: A1) => ReaderIO) => (args_0: ReaderIO) => ReaderIO; export declare const flatten: (args_0: ReaderIO, A3>) => ReaderIO; export declare const pluck: (k: K) => (args_0: ReaderIO) => ReaderIO;