import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as Context from "effect/Context";
export { makeDefault, jittered, capped, throttlingOptions, transientOptions, } from "@distilled.cloud/core/retry";
import { throttlingOptions, transientOptions, } from "@distilled.cloud/core/retry";
export class Retry extends Context.Service()("CloudflareRetry") {
}
export const policy = (optionsOrFactory) => Effect.provide(Layer.succeed(Retry, optionsOrFactory));
export const none = Effect.provide(Layer.succeed(Retry, { while: () => false }));
/** Apply throttling retry policy (retries throttling errors indefinitely) */
export const throttling = policy(throttlingOptions);
/** Apply transient retry policy (retries all transient errors indefinitely) */
export const transient = policy(transientOptions);
//# sourceMappingURL=retry.js.map