import { STM } from "@effect/core/stm/STM/definition/base";
import { Either } from "@tsplus/stdlib/data/Either/definition";
/**
 * Returns a successful effect if the value is `Left`, or fails with the error e.
 * @tsplus fluent ets/STM leftOrFail
 * @tsplus location "@effect/core/stm/STM/operations/leftOrFail"
 */
export declare function leftOrFail_<R, E, B, C, E1>(self: STM<R, E, Either<B, C>>, orFail: (c: C) => E1): STM<R, E | E1, B>;
/**
 * Returns a successful effect if the value is `Left`, or fails with the error e.
 * @tsplus static ets/STM/Aspects leftOrFail
 * @tsplus pipeable ets/STM leftOrFail
 * @tsplus location "@effect/core/stm/STM/operations/leftOrFail"
 */
export declare const leftOrFail: <C, E1>(orFail: (c: C) => E1) => <R, E, B>(self: import("../definition").STM<R, E, import("@tsplus/stdlib/data/Either").Either<B, C>>) => import("../definition").STM<R, E | E1, B>;
//# sourceMappingURL=leftOrFail.d.ts.map