import * as Effect from "effect/Effect";
import * as Context from "effect/Context";
export { type Options, type Factory, type Policy, makeDefault, jittered, capped, throttlingOptions, transientOptions, } from "@distilled.cloud/core/retry";
import { type Policy } from "@distilled.cloud/core/retry";
declare const Retry_base: Context.ServiceClass<Retry, "CloudflareRetry", Policy>;
export declare class Retry extends Retry_base {
}
export declare const policy: (optionsOrFactory: Policy) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Retry>>;
export declare const none: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Retry>>;
/** Apply throttling retry policy (retries throttling errors indefinitely) */
export declare const throttling: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Retry>>;
/** Apply transient retry policy (retries all transient errors indefinitely) */
export declare const transient: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Retry>>;
//# sourceMappingURL=retry.d.ts.map