import * as ps from "@distilled.cloud/planetscale";
import * as Effect from "effect/Effect";
import { type NormalizedMigrationsInput, type StampedMigrationsState } from "../../SQL/Migrations/index.ts";
declare const PostgresMigrationError_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: "Planetscale::PostgresMigrationError";
} & Readonly;
export declare class PostgresMigrationError extends PostgresMigrationError_base<{
message: string;
cause?: unknown;
}> {
}
export interface PostgresMigrationTarget {
organization: string;
database: string;
branch: string;
}
/**
* PlanetScale Postgres's migration adaptation is exactly this: the shared
* pipeline with a temp-role-scoped pg client as its executor.
*/
export declare const runPostgresMigrations: (target: PostgresMigrationTarget, input: NormalizedMigrationsInput, stamped: StampedMigrationsState) => Effect.Effect;
export declare const runPostgresImports: (target: PostgresMigrationTarget, importFiles: ReadonlyArray, rootDir: string, previous: Record) => Effect.Effect, import("effect/PlatformError").PlatformError | PostgresMigrationError | ps.CreateRoleError, import("effect/FileSystem").FileSystem | import("effect/Path").Path | ps.PlanetScaleOpContext>;
export {};
//# sourceMappingURL=PostgresMigrations.d.ts.map