/** * @since 2.3.0 */ import { Applicative2 } from './Applicative' import { Functor2 } from './Functor' import { IO } from './IO' import { MonadTask2 } from './MonadTask' import { Monoid } from './Monoid' import * as R from './Reader' import { Semigroup } from './Semigroup' import * as T from './Task' import Task = T.Task import Reader = R.Reader /** * @category model * @since 2.3.0 */ export interface ReaderTask { (r: R): Task } /** * @category constructors * @since 2.3.0 */ export declare const fromTask: (ma: Task) => ReaderTask /** * @category constructors * @since 2.3.0 */ export declare const fromReader: (ma: Reader) => ReaderTask /** * @category constructors * @since 2.3.0 */ export declare const fromIO: (ma: IO) => ReaderTask /** * @category constructors * @since 2.3.0 */ export declare const ask: () => ReaderTask /** * @category constructors * @since 2.3.0 */ export declare const asks: (f: (r: R) => A) => ReaderTask /** * @category combinators * @since 2.3.0 */ export declare const local: (f: (f: Q) => R) => (ma: ReaderTask) => ReaderTask /** * @category combinators * @since 2.4.0 */ export declare function fromIOK, B>( f: (...a: A) => IO ): (...a: A) => ReaderTask /** * @category combinators * @since 2.4.0 */ export declare const chainIOK: (f: (a: A) => IO) => (ma: ReaderTask) => ReaderTask /** * @category combinators * @since 2.4.0 */ export declare function fromTaskK, B>( f: (...a: A) => Task ): (...a: A) => ReaderTask /** * @category combinators * @since 2.4.0 */ export declare const chainTaskK: (f: (a: A) => Task) => (ma: ReaderTask) => ReaderTask /** * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types * use the type constructor `F` to represent some computational context. * * @category Functor * @since 2.3.0 */ export declare const map: (f: (a: A) => B) => (fa: ReaderTask) => ReaderTask /** * Less strict version of [`ap`](#ap). * * @category Apply * @since 2.8.0 */ export declare const apW: ( fa: ReaderTask ) => (fab: ReaderTask B>) => ReaderTask /** * Apply a function to an argument under a type constructor. * * @category Apply * @since 2.3.0 */ export declare const ap: (fa: ReaderTask) => (fab: ReaderTask B>) => ReaderTask /** * Combine two effectful actions, keeping only the result of the first. * * Derivable from `Apply`. * * @category combinators * @since 2.3.0 */ export declare const apFirst: (fb: ReaderTask) => (fa: ReaderTask) => ReaderTask /** * Combine two effectful actions, keeping only the result of the second. * * Derivable from `Apply`. * * @category combinators * @since 2.3.0 */ export declare const apSecond: (fb: ReaderTask) => (fa: ReaderTask) => ReaderTask /** * Wrap a value into the type constructor. * * @category Applicative * @since 2.3.0 */ export declare const of: Applicative2['of'] /** * Less strict version of [`chain`](#chain). * * @category Monad * @since 2.6.7 */ export declare const chainW: ( f: (a: A) => ReaderTask ) => (ma: ReaderTask) => ReaderTask /** * Composes computations in sequence, using the return value of one computation to determine the next computation. * * @category Monad * @since 2.3.0 */ export declare const chain: (f: (a: A) => ReaderTask) => (ma: ReaderTask) => ReaderTask /** * Composes computations in sequence, using the return value of one computation to determine the next computation and * keeping only the result of the first. * * Derivable from `Monad`. * * @category combinators * @since 2.3.0 */ export declare const chainFirst: (f: (a: A) => ReaderTask) => (ma: ReaderTask) => ReaderTask /** * Derivable from `Monad`. * * @category combinators * @since 2.3.0 */ export declare const flatten: (mma: ReaderTask>) => ReaderTask /** * @category instances * @since 2.3.0 */ export declare const URI = 'ReaderTask' /** * @category instances * @since 2.3.0 */ export declare type URI = typeof URI declare module './HKT' { interface URItoKind2 { readonly [URI]: ReaderTask } } /** * @category instances * @since 2.3.0 */ export declare function getSemigroup(S: Semigroup): Semigroup> /** * @category instances * @since 2.3.0 */ export declare function getMonoid(M: Monoid): Monoid> /** * @category instances * @since 2.7.0 */ export declare const Functor: Functor2 /** * @category instances * @since 2.7.0 */ export declare const ApplicativePar: Applicative2 /** * @category instances * @since 2.7.0 */ export declare const ApplicativeSeq: Applicative2 /** * @category instances * @since 2.3.0 */ export declare const readerTask: MonadTask2 /** * Like `readerTask` but `ap` is sequential * * @category instances * @since 2.3.0 */ export declare const readerTaskSeq: typeof readerTask /** * @since 2.4.0 */ export declare function run(ma: ReaderTask, r: R): Promise /** * @since 2.9.0 */ export declare const Do: ReaderTask /** * @since 2.8.0 */ export declare const bindTo: ( name: N ) => (fa: ReaderTask) => ReaderTask /** * @since 2.8.0 */ export declare const bindW: ( name: Exclude, f: (a: A) => ReaderTask ) => (fa: ReaderTask) => ReaderTask /** * @since 2.8.0 */ export declare const bind: ( name: Exclude, f: (a: A) => ReaderTask ) => ( fa: ReaderTask ) => ReaderTask< R, { [K in keyof A | N]: K extends keyof A ? A[K] : B } > /** * @since 2.8.0 */ export declare const apSW: ( name: Exclude, fb: ReaderTask ) => (fa: ReaderTask) => ReaderTask /** * @since 2.8.0 */ export declare const apS: ( name: Exclude, fb: ReaderTask ) => ( fa: ReaderTask ) => ReaderTask< R, { [K in keyof A | N]: K extends keyof A ? A[K] : B } > /** * @since 2.9.0 */ export declare const traverseArrayWithIndex: ( f: (index: number, a: A) => ReaderTask ) => (arr: ReadonlyArray) => ReaderTask> /** * @since 2.9.0 */ export declare const traverseArray: ( f: (a: A) => ReaderTask ) => (arr: ReadonlyArray) => ReaderTask> /** * @since 2.9.0 */ export declare const sequenceArray: (arr: ReadonlyArray>) => ReaderTask>