import { Effect } from "@effect/core/io/Effect/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Cause } from "@effect/core/io/Cause/definition";
import { Duration } from "@tsplus/stdlib/data/Duration";
/**
 * The same as `timeout`, but instead of producing a `None` in the event of
 * timeout, it will produce the specified failure.
 * @tsplus fluent ets/Effect timeoutFailCause
 * @tsplus location "@effect/core/io/Effect/operations/timeoutFailCause"
 */
export declare function timeoutFailCause_<R, E, E1, A>(self: Effect<R, E, A>, cause: LazyArg<Cause<E1>>, duration: LazyArg<Duration>, __tsplusTrace?: string): Effect<R, E | E1, A>;
/**
 * The same as `timeout`, but instead of producing a `None` in the event of
 * timeout, it will produce the specified failure.
 * @tsplus static ets/Effect/Aspects timeoutFailCause
 * @tsplus pipeable ets/Effect timeoutFailCause
 * @tsplus location "@effect/core/io/Effect/operations/timeoutFailCause"
 */
export declare const timeoutFailCause: <E1>(cause: import("@tsplus/stdlib/data/Function").LazyArg<import("../../Cause").Cause<E1>>, duration: LazyArg<Duration>, __tsplusTrace?: string) => <R, E, A>(self: import("../definition").Effect<R, E, A>) => import("../definition").Effect<R, E | E1, A>;
//# sourceMappingURL=timeoutFailCause.d.ts.map