/** * @since 0.3.0 */ import { Contravariant1 } from 'fp-ts/es6/Contravariant' import { Predicate } from 'fp-ts/es6/function' import { IO } from 'fp-ts/es6/IO' import { Monoid } from 'fp-ts/es6/Monoid' import { URIS3, Kind3, URIS2, Kind2, URIS, Kind, HKT } from 'fp-ts/es6/HKT' import { MonadIO3, MonadIO2C, MonadIO2, MonadIO1, MonadIO } from 'fp-ts/es6/MonadIO' declare module 'fp-ts/es6/HKT' { interface URItoKind { LoggerIO: LoggerIO } } /** * @since 0.3.0 */ export declare const URI = 'LoggerIO' /** * @since 0.3.0 */ export declare type URI = typeof URI /** * @since 0.3.0 */ export interface LoggerIO { (a: A): IO } /** * @since 0.3.0 */ export declare const filter: (logger: LoggerIO, predicate: Predicate) => LoggerIO /** * @since 0.3.0 */ export declare const getMonoid: () => Monoid> /** * @since 0.3.0 */ export declare const loggerIO: Contravariant1 /** * @category Combinator * * @since 0.3.4 * * @example * import { pipe } from 'fp-ts/es6/pipeable' * import * as IO from 'fp-ts/es6/IO' * import * as C from 'fp-ts/es6/Console' * import { withLogger } from 'logging-ts/lib/IO' * import { equal } from 'assert' * * const log = withLogger(IO.io)(C.log) * * const result = pipe( * IO.of(3), * log(n => `lifted "${n}" to the IO monad`), // n === 3 * IO.map(n => n * n), * log(n => `squared the value, which is "${n}"`), // n === 9 * ) * * equal(result(), 9) */ export declare function withLogger( M: MonadIO3 ): (logger: LoggerIO) => (message: (a: A) => B) => (ma: Kind3) => Kind3 export declare function withLogger( M: MonadIO2 ): (logger: LoggerIO) => (message: (a: A) => B) => (ma: Kind2) => Kind2 export declare function withLogger( M: MonadIO2C ): (logger: LoggerIO) => (message: (a: A) => B) => (ma: Kind2) => Kind2 export declare function withLogger( M: MonadIO1 ): (logger: LoggerIO) => (message: (a: A) => B) => (ma: Kind) => Kind export declare function withLogger( M: MonadIO ): (logger: LoggerIO) => (message: (a: A) => B) => (ma: HKT) => HKT declare const contramap: (f: (b: B) => A) => (fa: LoggerIO) => LoggerIO export { /** * @since 0.3.0 */ contramap }