import * as ag from "@distilled.cloud/aws/api-gateway";
import * as Effect from "effect/Effect";
/**
* Wraps an API Gateway mutation so that recoverable 4xx responses are
* retried with backoff:
*
* - `BadRequestException` with `apiStatus is UPDATING` or
* `already an update in progress` (transient, clears in seconds)
*
* Drop-in usage:
*
* ```ts
* yield* retryOnApiStatusUpdating(
* ag.createDeployment({ ... }),
* );
* ```
*/
export declare const retryOnApiStatusUpdating: (effect: Effect.Effect) => Effect.Effect;
declare const RestApiStillExists_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: "RestApiStillExists";
} & Readonly;
declare class RestApiStillExists extends RestApiStillExists_base<{
readonly restApiId: string;
}> {
}
/**
* Idempotently delete a REST API and observe it disappear.
*
* Every provider/test cleanup path uses this helper so nuke, normal destroy,
* and interrupted-run reapers all share the same bounded throttle handling.
*/
export declare const deleteRestApiAndWait: (restApiId: string) => Effect.Effect;
export declare const restApiArn: (region: string, restApiId: string) => string;
export declare const stageArn: (region: string, restApiId: string, stageName: string) => string;
export declare const apiKeyArn: (region: string, apiKeyId: string) => string;
export declare const usagePlanArn: (region: string, usagePlanId: string) => string;
export declare const domainNameArn: (region: string, domainName: string) => string;
export declare const vpcLinkArn: (region: string, vpcLinkId: string) => string;
export declare const syncTags: (args_0: {
resourceArn: string;
oldTags: Record;
newTags: Record;
}) => Effect.Effect;
export {};
//# sourceMappingURL=common.d.ts.map