import { Client, QueryResult } from 'pg'; import { PgConfig } from 'pg-env'; import { AuthOptions, PgTestConnectionOptions } from '@launchql/types'; export type PgTestClientOpts = { deferConnect?: boolean; trackConnect?: (p: Promise) => void; } & Partial; export declare class PgTestClient { config: PgConfig; client: Client; private opts; private ctxStmts; private contextSettings; private _ended; private connectPromise; constructor(config: PgConfig, opts?: PgTestClientOpts); private ensureConnected; close(): Promise; begin(): Promise; savepoint(name?: string): Promise; rollback(name?: string): Promise; commit(): Promise; beforeEach(): Promise; afterEach(): Promise; setContext(ctx: Record): void; /** * Set authentication context for the current session. * Configures role and user ID using cascading defaults from options → opts.auth → RoleMapping. */ auth(options?: AuthOptions): void; /** * Commit current transaction to make data visible to other connections, then start fresh transaction. * Maintains test isolation by creating a savepoint and reapplying session context. */ publish(): Promise; /** * Clear all session context variables and reset to default anonymous role. */ clearContext(): void; any(query: string, values?: any[]): Promise; one(query: string, values?: any[]): Promise; oneOrNone(query: string, values?: any[]): Promise; many(query: string, values?: any[]): Promise; manyOrNone(query: string, values?: any[]): Promise; none(query: string, values?: any[]): Promise; result(query: string, values?: any[]): Promise; query(query: string, values?: any[]): Promise>; ctxQuery(): Promise; }