import type { Either } from "../../Either"; import * as T from "../Task/_core"; import type { XRefM } from "./model"; /** * Folds over the error and value types of the `XRefM`. */ export declare const fold_: ( self: XRefM, ea: (_: EA) => EC, eb: (_: EB) => ED, ca: (_: C) => Either, bd: (_: B) => Either ) => XRefM; /** * Folds over the error and value types of the `XRefM`. */ export declare const fold: ( ea: (_: EA) => EC, eb: (_: EB) => ED, ca: (_: C) => Either, bd: (_: B) => Either ) => (self: XRefM) => XRefM; /** * Folds over the error and value types of the `XRefM`. This is a highly * polymorphic method that is capable of arbitrarily transforming the error * and value types of the `XRefM`. For most use cases one of the more * specific combinators implemented in terms of `foldM` will be more * ergonomic but this method is extremely useful for implementing new * combinators. */ export declare const foldM_: ( self: XRefM, ea: (_: EA) => EC, eb: (_: EB) => ED, ca: (_: C) => T.Task, bd: (_: B) => T.Task ) => XRefM; /** * Folds over the error and value types of the `XRefM`. This is a highly * polymorphic method that is capable of arbitrarily transforming the error * and value types of the `XRefM`. For most use cases one of the more * specific combinators implemented in terms of `foldM` will be more * ergonomic but this method is extremely useful for implementing new * combinators. */ export declare const foldM: ( ea: (_: EA) => EC, eb: (_: EB) => ED, ca: (_: C) => T.Task, bd: (_: B) => T.Task ) => (self: XRefM) => XRefM; /** * Folds over the error and value types of the `XRefM`, allowing access to * the state in transforming the `set` value. This is a more powerful version * of `foldM` but requires unifying the environment and error types. */ export declare const foldAllM_: ( self: XRefM, ea: (_: EA) => EC, eb: (_: EB) => ED, ec: (_: EB) => EC, ca: (_: C) => (_: B) => T.Task, bd: (_: B) => T.Task ) => XRefM; /** * Folds over the error and value types of the `XRefM`, allowing access to * the state in transforming the `set` value. This is a more powerful version * of `foldM` but requires unifying the environment and error types. */ export declare const foldAllM: ( ea: (_: EA) => EC, eb: (_: EB) => ED, ec: (_: EB) => EC, ca: (_: C) => (_: B) => T.Task, bd: (_: B) => T.Task ) => (self: XRefM) => XRefM; //# sourceMappingURL=fold.d.ts.map