import { Pool } from '@neondatabase/serverless'; import type { BatchItem, BatchResponse } from "../batch.js"; import type { Cache } from "../cache/core/cache.js"; import { entityKind } from "../entity.js"; import type { Logger } from "../logger.js"; import type { NeonHttpClient, NeonHttpQueryResultHKT } from "../neon-http/session.js"; import { type NodePgDatabase } from "../node-postgres/driver.js"; import type { NodePgClient } from "../node-postgres/session.js"; import { PgDatabase } from "../pg-core/db.js"; import { PgDialect } from "../pg-core/dialect.js"; import * as V1 from "../relations.js"; import { type DrizzleConfig } from "../utils.js"; import { type NetlifyDbClient, NetlifyDbSession } from "./session.js"; export interface ServerlessDrizzleClient { driver: 'serverless'; httpClient: NeonHttpClient; pool: Pool; connectionString: string; } export interface ServerDrizzleClient { driver: 'server'; pool: NodePgClient; connectionString: string; } export type DrizzleClient = ServerlessDrizzleClient | ServerDrizzleClient; export interface NetlifyDbDriverOptions { logger?: Logger; cache?: Cache; } export declare class NetlifyDbDriver { private httpClient; private pool; private dialect; private options; static readonly [entityKind]: string; constructor(httpClient: NeonHttpClient, pool: Pool, dialect: PgDialect, options?: NetlifyDbDriverOptions); createSession(schema: V1.RelationalSchemaConfig | undefined): NetlifyDbSession, V1.TablesRelationalConfig>; initMappers(): void; } export declare class NetlifyDbDatabase = Record> extends PgDatabase { static readonly [entityKind]: string; batch, T extends Readonly<[U, ...U[]]>>(batch: T): Promise>; } export declare function drizzle = Record>(): (NetlifyDbDatabase & { $client: NetlifyDbClient; }) | (NodePgDatabase & { $client: NodePgClient; }); export declare function drizzle = Record>(config: DrizzleConfig): (NetlifyDbDatabase & { $client: NetlifyDbClient; }) | (NodePgDatabase & { $client: NodePgClient; }); export declare function drizzle = Record>(config: DrizzleConfig & { client: ServerlessDrizzleClient; }): NetlifyDbDatabase & { $client: NetlifyDbClient; }; export declare function drizzle = Record>(config: DrizzleConfig & { client: ServerDrizzleClient; }): NodePgDatabase & { $client: NodePgClient; }; export declare function drizzle = Record>(config: DrizzleConfig & { client: DrizzleClient; }): (NetlifyDbDatabase & { $client: NetlifyDbClient; }) | (NodePgDatabase & { $client: NodePgClient; }); export declare function drizzle = Record>(...params: [ string ] | [ string, DrizzleConfig ] | [ (DrizzleConfig & ({ connection: string | { connectionString: string; }; } | { client: NetlifyDbClient | DrizzleClient; })) ]): NetlifyDbDatabase & { $client: NetlifyDbClient; }; export declare namespace drizzle { function mock = Record>(config?: DrizzleConfig): NetlifyDbDatabase & { $client: '$client is not available on drizzle.mock()'; }; }