import { type CreatePoolOptions } from './createPool.js'; import { getDBClient } from './getDBClient.js'; import { type SeedDefinition, type TriggerDefinition } from './zero.js'; import type { AnyRelations, EmptyRelations } from 'drizzle-orm'; import type { Pool } from 'pg'; export type DatabaseConfig, TRelations extends AnyRelations | Record = EmptyRelations> = { /** * The PG connection string. Required unless a pre-built `pool` is provided * (it is still used by `migrate()` / `waitForDatabase()`, which need a string). */ connectionString?: string; schema: TSchema; relations?: TRelations; /** * Optional pre-built Pool-like client (e.g. a DoBackend-backed Pool for the * Cloudflare Durable Object runtime, where there is no external Postgres). * When provided, `createPool` is skipped and this pool is used directly. * `connectionString` is then only needed for the migration helpers. */ pool?: Pool; /** Options forwarded to the default `createPool` (ignored when `pool` is set). */ poolOptions?: Omit; zero?: { publicationName: string; publicTables: string[]; triggers?: TriggerDefinition[]; seeds?: SeedDefinition[]; }; }; export type MigrateOptions = { migrations: Record Promise>; cvrDb?: string; changeDb?: string; createDatabases?: string[]; gitSha?: string; defaultTimeout?: number; onMigrationComplete?: () => Promise; }; export declare function createDatabase, TRelations extends AnyRelations = EmptyRelations>(config: DatabaseConfig): { pool: Pool; drizzle: import("drizzle-orm/node-postgres").NodePgDatabase & import("./createDrizzle.js").DrizzleHelpers>; sql: (strings: TemplateStringsArray, ...values: any[]) => Promise; getDBClient: (options?: Omit) => ReturnType; close: () => Promise; migrate: (options: MigrateOptions) => Promise; privateTableNames: string[]; config: DatabaseConfig; }; //# sourceMappingURL=createDatabase.d.ts.map