import * as appsync from "@distilled.cloud/aws/appsync"; import * as Effect from "effect/Effect"; /** * AppSync serializes control-plane mutations per API; concurrent resolver / * data-source / schema operations surface as `ConcurrentModificationException`. * Ride out the contention window with a bounded retry (~40s). * * The helper carries an EXPLICIT return annotation so the conditional type * of `Effect.retry` never leaks into declaration emit (which would widen the * provider layer to `unknown` for every consumer of `AWS.providers()`). */ export declare const retryConcurrentModification: (effect: Effect.Effect) => Effect.Effect; /** * IAM changes (fresh service roles, updated trust policies) propagate to * AppSync eventually; a `createDataSource` right after `createRole` can * transiently fail with a `BadRequestException` complaining that AppSync * is not authorized to assume the role. Bounded retry (~20s), scoped to * role-assumption messages so genuine validation errors fail fast. */ export declare const retryWhileRolePropagates: (effect: Effect.Effect) => Effect.Effect; /** * AppSync data-source and pipeline-function names must match * `[_A-Za-z][_0-9A-Za-z]*` (no dashes). Deterministic physical names are * generated with dashes, so sanitize into the allowed alphabet. */ export declare const sanitizeAppSyncName: (name: string) => string; /** * Normalize the wire tag map (values may be `undefined`) to a plain record. */ export declare const tagRecord: (tags: { [key: string]: string | undefined; } | undefined) => Record; /** * Diff observed tags against desired tags and apply only the delta via the * AppSync `tagResource`/`untagResource` operations. */ export declare const syncAppSyncTags: (args_0: { resourceArn: string; oldTags: Record; newTags: Record; }) => Effect.Effect; //# sourceMappingURL=common.d.ts.map