import * as aoss from "@distilled.cloud/aws/opensearchserverless";
import * as Effect from "effect/Effect";
declare const OpenSearchServerlessProvisioningFailed_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: "OpenSearchServerlessProvisioningFailed";
} & Readonly;
/**
* Raised when a collection (or VPC endpoint) provisioning terminates in a
* `FAILED` state or never reaches `ACTIVE` within the bounded polling budget.
*/
export declare class OpenSearchServerlessProvisioningFailed extends OpenSearchServerlessProvisioningFailed_base<{
readonly resource: string;
readonly id: string;
readonly status: string | undefined;
readonly failureCode: string | undefined;
readonly failureMessage: string | undefined;
}> {
}
/**
* Serialize a security/access policy document to the compact JSON string the
* OpenSearch Serverless API expects. Passing through a string is a no-op so
* callers may interpolate `Output`-derived collection names into the policy
* themselves.
*/
export declare const stringifyPolicy: (policy: string | Record | readonly unknown[]) => string;
/**
* Normalize a policy document (string or object) to a stable JSON string for
* drift comparison — parse-then-stringify so key ordering differences between
* the desired document and the API's echoed document do not force a spurious
* update.
*/
export declare const canonicalizePolicy: (policy: string | Record | readonly unknown[] | undefined) => string;
/** Convert the API's `[{ key, value }]` tag list into a plain record. */
export declare const tagsToRecord: (tags: aoss.Tag[] | undefined) => Record;
/** Convert a plain record into the API's `[{ key, value }]` tag list. */
export declare const recordToTagList: (tags: Record) => aoss.Tag[];
/**
* Await a collection reaching `ACTIVE`, failing with
* `OpenSearchServerlessProvisioningFailed` on a `FAILED` terminal status or a
* budget timeout.
*/
export declare const awaitCollectionActive: (id: string) => Effect.Effect;
/**
* Await a VPC endpoint reaching `ACTIVE`, failing with
* `OpenSearchServerlessProvisioningFailed` on a `FAILED` terminal status or a
* budget timeout.
*/
export declare const awaitVpcEndpointActive: (id: string) => Effect.Effect;
/**
* Bounded retry through the `ConflictException` window that AOSS raises while a
* dependent resource is still tearing down — e.g. deleting an encryption
* `SecurityPolicy` while its `Collection` deletion is still propagating.
* Explicitly typed for the same declaration-emit reason as above.
*/
export declare const retryWhileConflict: (self: Effect.Effect) => Effect.Effect;
export {};
//# sourceMappingURL=internal.d.ts.map