import { Services } from "@distilled.cloud/hetzner"; import type { GetActionResponseAction } from "@distilled.cloud/hetzner/actions"; import * as Effect from "effect/Effect"; declare const ActionPending_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "ActionPending"; } & Readonly; export declare class ActionPending extends ActionPending_base<{ actionId: number; status: string; }> { } declare const ActionFailed_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "ActionFailed"; } & Readonly; export declare class ActionFailed extends ActionFailed_base<{ actionId: number; command: string; code?: string; message: string; }> { } declare const ActionTimeout_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "ActionTimeout"; } & Readonly; export declare class ActionTimeout extends ActionTimeout_base<{ actionId: number; status: string; }> { } export type ActionRef = number | Pick | GetActionResponseAction; /** * Poll a Hetzner Action until it reaches `success` or `error`. * * Bounded: at most 10 polls, exponential backoff starting at 500ms and * capped at 5s (under 60s total). Already-finished actions return * immediately. */ export declare const waitForAction: (ref: ActionRef) => Effect.Effect; /** * Wait for every Action in `refs` (in order). Empty input is a no-op. */ export declare const waitForActions: (refs: ReadonlyArray) => Effect.Effect; /** * Poll a Hetzner Cloud DNS Zone Action (`GET /zones/actions/{id}`) until it * reaches `success` or `error`. Zone actions live in a separate namespace * from compute `/actions/{id}` — do not use {@link waitForAction} for them. * * Bounded: at most 10 polls, exponential backoff starting at 500ms and * capped at 5s (under 60s total). Already-finished actions return * immediately. */ export declare const waitForZoneAction: (ref: ActionRef) => Effect.Effect; export {}; //# sourceMappingURL=actions.d.ts.map