import { Effect } from "@effect/core/io/Effect/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Schedule } from "@effect/core/io/Schedule/definition";
/**
 * Retries with the specified schedule, until it fails, and then both the
 * value produced by the schedule together with the last error are passed to
 * the recovery function.
 * @tsplus fluent ets/Effect retryOrElse
 * @tsplus location "@effect/core/io/Effect/operations/retryOrElse"
 */
export declare function retryOrElse_<R, E, A, S, R1, A1, R2, E2, A2>(self: Effect<R, E, A>, policy: LazyArg<Schedule<S, R1, E, A1>>, orElse: (e: E, out: A1) => Effect<R2, E2, A2>, __tsplusTrace?: string): Effect<R | R1 | R2, E | E2, A | A2>;
/**
 * Retries with the specified schedule, until it fails, and then both the
 * value produced by the schedule together with the last error are passed to
 * the recovery function.
 * @tsplus static ets/Effect/Aspects retryOrElse
 * @tsplus location "@effect/core/io/Effect/operations/retryOrElse"
 */
export declare function retryOrElse<S, R1, E, A1, R2, E2, A2>(policy: LazyArg<Schedule<S, R1, E, A1>>, orElse: (e: E, out: A1) => Effect<R2, E2, A2>, __tsplusTrace?: string): <R, A>(self: Effect<R, E, A>) => Effect<R | R1 | R2, E | E2, A | A2>;
//# sourceMappingURL=retryOrElse.d.ts.map