import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; import { type AppError, type AppErrorMetadata } from "../app-error/index.js"; export interface RegistryRequestPolicy { readonly requestTimeout: Duration.Input; readonly totalDeadline: Duration.Input; readonly maxAttempts: number; readonly initialBackoff: Duration.Input; readonly maxBackoff: Duration.Input; } export declare const DEFAULT_REGISTRY_REQUEST_POLICY: RegistryRequestPolicy; export type RegistryRequestReplaySafety = { readonly kind: "safe"; } | { readonly kind: "mutation"; } | { readonly kind: "idempotency-keyed"; readonly idempotencyKey: string; }; export declare const executeRegistryRequest: (effect: Effect.Effect, args: { readonly operation: string; readonly request: NonNullable; readonly replaySafety: RegistryRequestReplaySafety; readonly mapError: (error: E) => AppError; readonly policy?: RegistryRequestPolicy; }) => Effect.Effect; //# sourceMappingURL=request-policy.d.ts.map