/** * Lift a computation from the `Reader` monad. * * @since 2.11.0 */ import { Chain, Chain2, Chain3, Chain3C, Chain4 } from './Chain.js'; import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT.js'; import * as R from './Reader.js'; type Reader = R.Reader; /** * @category model * @since 2.11.0 */ export interface FromReader { readonly URI: F; readonly fromReader: (fa: Reader) => HKT2; } /** * @category model * @since 2.11.0 */ export interface FromReader2 { readonly URI: F; readonly fromReader: (fa: Reader) => Kind2; } /** * @category model * @since 2.11.0 */ export interface FromReader3 { readonly URI: F; readonly fromReader: (fa: Reader) => Kind3; } /** * @category model * @since 2.11.0 */ export interface FromReader3C { readonly URI: F; readonly _E: E; readonly fromReader: (fa: Reader) => Kind3; } /** * @category model * @since 2.11.0 */ export interface FromReader4 { readonly URI: F; readonly fromReader: (fa: Reader) => Kind4; } /** * @category constructors * @since 2.11.0 */ export declare function ask(F: FromReader4): () => Kind4; export declare function ask(F: FromReader3): () => Kind3; export declare function ask(F: FromReader3C): () => Kind3; export declare function ask(F: FromReader2): () => Kind2; export declare function ask(F: FromReader): () => HKT2; /** * @category constructors * @since 2.11.0 */ export declare function asks(F: FromReader4): (f: (r: R) => A) => Kind4; export declare function asks(F: FromReader3): (f: (r: R) => A) => Kind3; export declare function asks(F: FromReader3C): (f: (r: R) => A) => Kind3; export declare function asks(F: FromReader2): (f: (r: R) => A) => Kind2; export declare function asks(F: FromReader): (f: (r: R) => A) => HKT2; /** * @since 2.11.0 */ export declare function fromReaderK(F: FromReader4): , R, B>(f: (...a: A) => Reader) => (...a: A) => Kind4; export declare function fromReaderK(F: FromReader3): , R, B>(f: (...a: A) => Reader) => (...a: A) => Kind3; export declare function fromReaderK(F: FromReader3C): , R, B>(f: (...a: A) => Reader) => (...a: A) => Kind3; export declare function fromReaderK(F: FromReader2): , R, B>(f: (...a: A) => Reader) => (...a: A) => Kind2; export declare function fromReaderK(F: FromReader): , R, B>(f: (...a: A) => Reader) => (...a: A) => HKT2; /** * @since 2.11.0 */ export declare function chainReaderK(F: FromReader4, M: Chain4): (f: (a: A) => Reader) => (ma: Kind4) => Kind4; export declare function chainReaderK(F: FromReader3, M: Chain3): (f: (a: A) => Reader) => (ma: Kind3) => Kind3; export declare function chainReaderK(F: FromReader3C, M: Chain3C): (f: (a: A) => Reader) => (ma: Kind3) => Kind3; export declare function chainReaderK(F: FromReader2, M: Chain2): (f: (a: A) => Reader) => (ma: Kind2) => Kind2; export declare function chainReaderK(F: FromReader, M: Chain): (f: (a: A) => Reader) => (ma: HKT2) => HKT2; /** * @since 2.11.0 */ export declare function chainFirstReaderK(F: FromReader4, M: Chain4): (f: (a: A) => Reader) => (ma: Kind4) => Kind4; export declare function chainFirstReaderK(F: FromReader3, M: Chain3): (f: (a: A) => Reader) => (ma: Kind3) => Kind3; export declare function chainFirstReaderK(F: FromReader3C, M: Chain3C): (f: (a: A) => Reader) => (ma: Kind3) => Kind3; export declare function chainFirstReaderK(F: FromReader2, M: Chain2): (f: (a: A) => Reader) => (ma: Kind2) => Kind2; export declare function chainFirstReaderK(F: FromReader, M: Chain): (f: (a: A) => Reader) => (ma: HKT2) => HKT2; export declare function tapReader(F: FromReader, M: Chain): (self: HKT2, f: (a: A) => Reader) => HKT2; export {};