import { entityKind, Query, Logger, SelectedFieldsOrdered, TablesRelationalConfig, RelationalSchemaConfig, ExtractTablesWithRelations, DrizzleConfig } from 'drizzle-orm'; import { SQLPluginResult, SQLQueryResult } from '@xata.io/client'; import { PreparedQueryConfig, PgPreparedQuery, PgColumn, PgSession, PgDialect, PgTransactionConfig, PgTransaction, PgQueryResultHKT, PgDatabase } from 'drizzle-orm/pg-core'; type XataHttpClient = { sql: SQLPluginResult; }; interface QueryResults { rowCount: number; rows: ArrayMode extends 'array' ? any[][] : Record[]; rowAsArray: ArrayMode extends 'array' ? true : false; } declare class XataHttpPreparedQuery extends PgPreparedQuery { private client; private logger; private fields; private _isResponseInArrayMode; private customResultMapper?; static readonly [entityKind]: string; constructor(client: XataHttpClient, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined); execute(placeholderValues?: Record | undefined): Promise; all(placeholderValues?: Record | undefined): Promise; values(placeholderValues?: Record | undefined): Promise; /** @internal */ isResponseInArrayMode(): boolean; } interface XataHttpSessionOptions { logger?: Logger; } declare class XataHttpSession, TSchema extends TablesRelationalConfig> extends PgSession { private client; private schema; private options; static readonly [entityKind]: string; private logger; constructor(client: XataHttpClient, dialect: PgDialect, schema: RelationalSchemaConfig | undefined, options?: XataHttpSessionOptions); prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery; query(query: string, params: unknown[]): Promise>; queryObjects(query: string, params: unknown[]): Promise>; transaction(_transaction: (tx: XataTransaction) => Promise, _config?: PgTransactionConfig): Promise; } declare class XataTransaction, TSchema extends TablesRelationalConfig> extends PgTransaction { static readonly [entityKind]: string; transaction(_transaction: (tx: XataTransaction) => Promise): Promise; } interface XataHttpQueryResultHKT extends PgQueryResultHKT { type: SQLQueryResult; } interface XataDriverOptions { logger?: Logger; } declare class XataHttpDriver { private client; private dialect; private options; static readonly [entityKind]: string; constructor(client: XataHttpClient, dialect: PgDialect, options?: XataDriverOptions); createSession(schema: RelationalSchemaConfig | undefined): XataHttpSession, TablesRelationalConfig>; initMappers(): void; } declare class XataHttpDatabase = Record> extends PgDatabase { static readonly [entityKind]: string; /** @internal */ readonly session: XataHttpSession>; } declare function drizzle = Record>(client: XataHttpClient, config?: DrizzleConfig): XataHttpDatabase; export { type QueryResults, type XataDriverOptions, type XataHttpClient, XataHttpDatabase, XataHttpDriver, XataHttpPreparedQuery, type XataHttpQueryResultHKT, XataHttpSession, type XataHttpSessionOptions, XataTransaction, drizzle };