/** * The reader monad transformer, which adds a read-only environment to the given monad. * * The `of` function ignores the environment, while `chain` passes the inherited environment to both subcomputations. * * @since 2.0.0 */ import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply.js'; import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain.js'; import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor.js'; import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT.js'; import { Monad, Monad1, Monad2, Monad2C, Monad3 } from './Monad.js'; import { NaturalTransformation, NaturalTransformation11, NaturalTransformation12, NaturalTransformation22, NaturalTransformation23R, NaturalTransformation24S } from './NaturalTransformation.js'; import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed.js'; import { Reader } from './Reader.js'; /** * @since 2.10.0 */ export declare function of(F: Pointed4): (a: A) => Reader>; export declare function of(F: Pointed3): (a: A) => Reader>; export declare function of(F: Pointed3C): (a: A) => Reader>; export declare function of(F: Pointed2): (a: A) => Reader>; export declare function of(F: Pointed2C): (a: A) => Reader>; export declare function of(F: Pointed1): (a: A) => Reader>; export declare function of(F: Pointed): (a: A) => Reader>; /** * @since 2.10.0 */ export declare function map(F: Functor4): (f: (a: A) => B) => (fa: Reader>) => Reader>; export declare function map(F: Functor3): (f: (a: A) => B) => (fa: Reader>) => Reader>; export declare function map(F: Functor3C): (f: (a: A) => B) => (fa: Reader>) => Reader>; export declare function map(F: Functor2): (f: (a: A) => B) => (fa: Reader>) => Reader>; export declare function map(F: Functor2C): (f: (a: A) => B) => (fa: Reader>) => Reader>; export declare function map(F: Functor1): (f: (a: A) => B) => (fa: Reader>) => Reader>; export declare function map(F: Functor): (f: (a: A) => B) => (fa: Reader>) => Reader>; /** * @since 2.10.0 */ export declare function ap(F: Apply4): (fa: Reader>) => (fab: Reader B>>) => Reader>; export declare function ap(F: Apply3): (fa: Reader>) => (fab: Reader B>>) => Reader>; export declare function ap(F: Apply3C): (fa: Reader>) => (fab: Reader B>>) => Reader>; export declare function ap(F: Apply2): (fa: Reader>) => (fab: Reader B>>) => Reader>; export declare function ap(F: Apply2C): (fa: Reader>) => (fab: Reader B>>) => Reader>; export declare function ap(F: Apply1): (fa: Reader>) => (fab: Reader B>>) => Reader>; export declare function ap(F: Apply): (fa: Reader>) => (fab: Reader B>>) => Reader>; /** * @since 2.10.0 */ export declare function chain(M: Chain4): (f: (a: A) => Reader>) => (ma: Reader>) => Reader>; export declare function chain(M: Chain3): (f: (a: A) => Reader>) => (ma: Reader>) => Reader>; export declare function chain(M: Chain3C): (f: (a: A) => Reader>) => (ma: Reader>) => Reader>; export declare function chain(M: Chain2): (f: (a: A) => Reader>) => (ma: Reader>) => Reader>; export declare function chain(M: Chain2C): (f: (a: A) => Reader>) => (ma: Reader>) => Reader>; export declare function chain(M: Chain1): (f: (a: A) => Reader>) => (ma: Reader>) => Reader>; export declare function chain(M: Chain): (f: (a: A) => Reader>) => (ma: Reader>) => Reader>; /** * @since 2.10.0 */ export declare function fromReader(F: Pointed4): (ma: Reader) => Reader>; export declare function fromReader(F: Pointed3): (ma: Reader) => Reader>; export declare function fromReader(F: Pointed3C): (ma: Reader) => Reader>; export declare function fromReader(F: Pointed2): (ma: Reader) => Reader>; export declare function fromReader(F: Pointed2C): (ma: Reader) => Reader>; export declare function fromReader(F: Pointed1): (ma: Reader) => Reader>; export declare function fromReader(F: Pointed): (ma: Reader) => Reader>; /** * @category constructors * @since 2.11.0 */ export declare function fromNaturalTransformation(nt: NaturalTransformation24S): (f: (r: R) => Kind2) => Reader>; export declare function fromNaturalTransformation(nt: NaturalTransformation23R): (f: (r: R) => Kind2) => Reader>; export declare function fromNaturalTransformation(nt: NaturalTransformation22): (f: (r: R) => Kind2) => Reader>; export declare function fromNaturalTransformation(nt: NaturalTransformation12): (f: (r: R) => Kind) => Reader>; export declare function fromNaturalTransformation(nt: NaturalTransformation11): (f: (r: R) => Kind) => Reader>; export declare function fromNaturalTransformation(nt: NaturalTransformation): (f: (r: R) => HKT) => Reader>; /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT { (r: R): HKT; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM { readonly map: (ma: ReaderT, f: (a: A) => B) => ReaderT; readonly of: (a: A) => ReaderT; readonly ap: (mab: ReaderT B>, ma: ReaderT) => ReaderT; readonly chain: (ma: ReaderT, f: (a: A) => ReaderT) => ReaderT; readonly ask: () => ReaderT; readonly asks: (f: (r: R) => A) => ReaderT; readonly local: (ma: ReaderT, f: (d: R2) => R1) => ReaderT; readonly fromReader: (ma: Reader) => ReaderT; readonly fromM: (ma: HKT) => ReaderT; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT1 { (r: R): Kind; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM1 { readonly map: (ma: ReaderT1, f: (a: A) => B) => ReaderT1; readonly of: (a: A) => ReaderT1; readonly ap: (mab: ReaderT1 B>, ma: ReaderT1) => ReaderT1; readonly chain: (ma: ReaderT1, f: (a: A) => ReaderT1) => ReaderT1; readonly ask: () => ReaderT1; readonly asks: (f: (r: R) => A) => ReaderT1; readonly local: (ma: ReaderT1, f: (d: R2) => R1) => ReaderT1; readonly fromReader: (ma: Reader) => ReaderT1; readonly fromM: (ma: Kind) => ReaderT1; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT2 { (r: R): Kind2; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM2 { readonly map: (ma: ReaderT2, f: (a: A) => B) => ReaderT2; readonly of: (a: A) => ReaderT2; readonly ap: (mab: ReaderT2 B>, ma: ReaderT2) => ReaderT2; readonly chain: (ma: ReaderT2, f: (a: A) => ReaderT2) => ReaderT2; readonly ask: () => ReaderT2; readonly asks: (f: (r: R) => A) => ReaderT2; readonly local: (ma: ReaderT2, f: (d: R2) => R1) => ReaderT2; readonly fromReader: (ma: Reader) => ReaderT2; readonly fromM: (ma: Kind2) => ReaderT2; } /** * @category zone of death * @since 2.2.0 * @deprecated */ export interface ReaderM2C { readonly map: (ma: ReaderT2, f: (a: A) => B) => ReaderT2; readonly of: (a: A) => ReaderT2; readonly ap: (mab: ReaderT2 B>, ma: ReaderT2) => ReaderT2; readonly chain: (ma: ReaderT2, f: (a: A) => ReaderT2) => ReaderT2; readonly ask: () => ReaderT2; readonly asks: (f: (r: R) => A) => ReaderT2; readonly local: (ma: ReaderT2, f: (d: R2) => R1) => ReaderT2; readonly fromReader: (ma: Reader) => ReaderT2; readonly fromM: (ma: Kind2) => ReaderT2; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT3 { (r: R): Kind3; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM3 { readonly map: (ma: ReaderT3, f: (a: A) => B) => ReaderT3; readonly of: (a: A) => ReaderT3; readonly ap: (mab: ReaderT3 B>, ma: ReaderT3) => ReaderT3; readonly chain: (ma: ReaderT3, f: (a: A) => ReaderT3) => ReaderT3; readonly ask: () => ReaderT3; readonly asks: (f: (r: R) => A) => ReaderT3; readonly local: (ma: ReaderT3, f: (d: R2) => R1) => ReaderT3; readonly fromReader: (ma: Reader) => ReaderT3; readonly fromM: (ma: Kind3) => ReaderT3; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export declare function getReaderM(M: Monad3): ReaderM3; /** @deprecated */ export declare function getReaderM(M: Monad2): ReaderM2; /** @deprecated */ export declare function getReaderM(M: Monad2C): ReaderM2C; /** @deprecated */ export declare function getReaderM(M: Monad1): ReaderM1; /** @deprecated */ export declare function getReaderM(M: Monad): ReaderM;