import * as planetscale from "@distilled.cloud/planetscale"; import * as Effect from "effect/Effect"; /** * Available PlanetScale PostgreSQL cluster sizes. * * `PS_*` sizes are backed by network-attached storage (NAS) and can be * specified either as the short size (`"PS_10"`) or the API SKU * (`"PS_10_AWS_X86"`). Short NAS sizes are expanded to a SKU by * {@link toPostgresClusterSku} using the target region and arch. * * @see https://planetscale.com/docs/postgres/pricing */ export type PostgresClusterSize = "PS_DEV" | "PS_5" | "PS_10" | "PS_20" | "PS_40" | "PS_80" | "PS_160" | "PS_320" | "PS_640" | "PS_1280" | "PS_2560" | (string & {}); /** * Converts a {@link PostgresClusterSize} into the SKU string expected by * the PlanetScale API. * * For NAS-backed clusters, the API expects a suffixed name like * `PS___`. Short `PS_*` sizes are expanded using the * supplied region and arch. * * Metal-backed sizes (anything starting with `M`) are passed through * unchanged. The short `M_*` form is not a valid SKU on its own — the API * requires the full Metal SKU (e.g. `M6_640_AWS_INTEL_D_METAL_474`), which * encodes the CPU series, provider, arch, and storage size * * Already-suffixed NAS sizes are also passed through unchanged. */ export declare function toPostgresClusterSku(input: { size: PostgresClusterSize; arch?: "x86" | "arm"; region?: string; }): string; /** * Polls branch change requests until all visible changes are in a terminal * state (`completed` or `canceled`), or — if `changeId` is provided — until * that specific change reaches a terminal state. */ export declare const waitForPendingPostgresChanges: (organization: string, database: string, branch: string, changeId?: string | undefined) => Effect.Effect; /** * Ensures a PostgreSQL production branch has the expected cluster size, * queuing the change via the change-request API if it doesn't. */ export declare const ensurePostgresProductionBranchClusterSize: (organization: string, database: string, branch: string, expectedClusterSize: PostgresClusterSize) => Effect.Effect; //# sourceMappingURL=PostgresClusterSize.d.ts.map