import * as lf from "@distilled.cloud/aws/lakeformation"; import * as Effect from "effect/Effect"; /** * Bounded retry through `ConcurrentModificationException` — Lake Formation * serializes grant/revoke/settings mutations and rejects concurrent writers. * Explicitly typed so declaration emit does not widen the provider layer (see * PATTERNS §7 on inlined `Effect.retry`). */ export declare const retryWhileConcurrentModification: (self: Effect.Effect) => Effect.Effect; /** * Bounded retry through `InvalidLakeFormationPrincipal` — a freshly-created * IAM role/user takes ~10s to propagate before Lake Formation accepts it as a * principal ("Invalid principal, arn: ..." surfaced as a typed synthetic * error via the distilled patch). Explicitly typed for the same * declaration-emit reason as above. */ export declare const retryWhileInvalidPrincipal: (self: Effect.Effect) => Effect.Effect; /** * Observe the permissions a specific principal holds on a resource. * * IMPORTANT: this deliberately lists by `Resource` only and filters entries * client-side by exact principal identifier. Listing with a `Principal` * filter makes Lake Formation fold the `IAM_ALLOWED_PRINCIPALS` group grant * (typically `ALL`) into the principal's effective permissions, which would * make the reconciler believe `ALL` was granted directly (verified live). */ export declare const observePrincipalPermissions: (principal: string, resource: lf.Resource, catalogId: string | undefined) => Effect.Effect<{ permissions: lf.Permission[]; permissionsWithGrantOption: lf.Permission[]; }, lf.ListPermissionsError, import("@distilled.cloud/aws/Credentials").Credentials | import("effect/unstable/http/HttpClient").HttpClient>; //# sourceMappingURL=internal.d.ts.map