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 retry policy. Retries are done following the
 * failure of the original `io` (up to a fixed maximum with `once` or `recurs`
 * for example), so that that `io.retry(Schedule.once)` means "execute `io`
 * and in case of failure, try again once".
 * @tsplus fluent ets/Effect retry
 * @tsplus location "@effect/core/io/Effect/operations/retry"
 */
export declare function retry_<R, E, A, S, R1, B>(self: Effect<R, E, A>, policy: LazyArg<Schedule<S, R1, E, B>>, __tsplusTrace?: string): Effect<R | R1, E, A>;
/**
 * Retries with the specified retry policy. Retries are done following the
 * failure of the original `io` (up to a fixed maximum with `once` or `recurs`
 * for example), so that that `io.retry(Schedule.once)` means "execute `io`
 * and in case of failure, try again once".
 * @tsplus static ets/Effect/Aspects retry
 * @tsplus location "@effect/core/io/Effect/operations/retry"
 */
export declare function retry<S, R1, E, B>(policy: LazyArg<Schedule<S, R1, E, B>>, __tsplusTrace?: string): <R, A>(self: Effect<R, E, A>) => Effect<R | R1, E, A>;
//# sourceMappingURL=retry.d.ts.map