import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data'; import { entityKind } from "../../entity.cjs"; import type { Logger } from "../../logger.cjs"; import { PgDatabase } from "../../pg-core/db.cjs"; import { PgDialect } from "../../pg-core/dialect.cjs"; import type { PgInsertConfig, PgTable, TableConfig } from "../../pg-core/index.cjs"; import type { PgRaw } from "../../pg-core/query-builders/raw.cjs"; import { type SQL, type SQLWrapper } from "../../sql/sql.cjs"; import type { DrizzleConfig, UpdateSet } from "../../utils.cjs"; import type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from "./session.cjs"; export interface PgDriverOptions { logger?: Logger; database: string; resourceArn: string; secretArn: string; } export interface DrizzleAwsDataApiPgConfig = Record> extends DrizzleConfig { database: string; resourceArn: string; secretArn: string; } export declare class AwsDataApiPgDatabase = Record> extends PgDatabase { static readonly [entityKind]: string; execute = Record>(query: SQLWrapper | string): PgRaw>; } export declare class AwsPgDialect extends PgDialect { static readonly [entityKind]: string; escapeParam(num: number): string; buildInsertQuery({ table, values, onConflict, returning, select, withList }: PgInsertConfig>): SQL; buildUpdateSet(table: PgTable, set: UpdateSet): SQL; } export declare function drizzle = Record, TClient extends AwsDataApiClient = RDSDataClient>(...params: [ TClient, DrizzleAwsDataApiPgConfig ] | [ ((DrizzleConfig & { connection: RDSDataClientConfig & Omit; }) | (DrizzleAwsDataApiPgConfig & { client: TClient; })) ]): AwsDataApiPgDatabase & { $client: TClient; }; export declare namespace drizzle { function mock = Record>(config: DrizzleAwsDataApiPgConfig): AwsDataApiPgDatabase & { $client: '$client is not available on drizzle.mock()'; }; }