export type QueryResult = { rowCount: number; rows: T[]; }; export interface PgClient { query(query: string, params?: unknown[]): Promise>; exec?(query: string): Promise; } export interface PgReleasableClient extends PgClient { release: () => void; } export interface PgPoolLike extends PgClient { connect: () => Promise; on(ev: 'remove', handler: (cl: PgReleasableClient) => void): this; off(ev: 'remove', handler: (cl: PgReleasableClient) => void): this; } export type PgClientLike = PgClient | PgPoolLike;