import { STM } from "@effect/core/stm/STM/definition/base";
/**
 * Effectfully folds over the `STM` effect, handling both failure and
 * success.
 * @tsplus fluent ets/STM foldSTM
 * @tsplus location "@effect/core/stm/STM/operations/foldSTM"
 */
export declare function foldSTM_<R, E, A, R1, E1, B, R2, E2, C>(self: STM<R, E, A>, g: (e: E) => STM<R2, E2, C>, f: (a: A) => STM<R1, E1, B>): STM<R1 | R2 | R, E1 | E2, B | C>;
/**
 * Effectfully folds over the `STM` effect, handling both failure and
 * success.
 * @tsplus static ets/STM/Aspects foldSTM
 * @tsplus pipeable ets/STM foldSTM
 * @tsplus location "@effect/core/stm/STM/operations/foldSTM"
 */
export declare const foldSTM: <E, A, R1, E1, B, R2, E2, C>(g: (e: E) => import("../definition").STM<R2, E2, C>, f: (a: A) => import("../definition").STM<R1, E1, B>) => <R>(self: import("../definition").STM<R, E, A>) => import("../definition").STM<R | R1 | R2, E1 | E2, B | C>;
//# sourceMappingURL=foldSTM.d.ts.map