import { Reader } from 'fp-ts/lib/Reader'; import { Kind2, URIS2 } from 'fp-ts/lib/HKT'; import { Monad2 } from 'fp-ts/lib/Monad'; export declare type ReaderEnvType> = R extends Reader ? E : never; export declare type ReaderValueType> = R extends Reader ? A : never; export interface MonadReader extends Monad2 { readonly asks: (f: (e: E) => A) => Kind2; readonly runReader: (fa: Kind2, e: E) => A; } export declare function defer(F: MonadReader): (fa: Kind2, ...keys: K[]) => Kind2>, Kind2, A>>;