import stream = require("stream"); declare interface TlsOptions { rejectUnauthorized?: boolean; ca?: string; key?: string; cert?: string; } declare interface Config { user?: string; database?: string; password?: string | (() => string | Promise); port?: number; host?: string; connectionString?: string; allowCredentialsDiffing?: boolean; keepAlive?: boolean; stream?: stream.Duplex; statement_timeout?: false | number; parseInputDatesAsUTC?: boolean; ssl?: boolean | TlsOptions; query_timeout?: number; keepAliveInitialDelayMillis?: number; idle_in_transaction_session_timeout?: number; application_name?: string; connectionTimeoutMillis?: number; manualMaxConnections?: boolean; maxConnsFreqMs?: number; maxConnections?: number; processCountFreqMs?: number; processCountCacheEnabled?: boolean; strategy?: string; debug?: boolean; maxIdleConnectionsToKill?: number; minConnectionIdleTimeSec?: number; connUtilization?: number; capMs?: number; baseMs?: number; delayMs?: number; maxRetries?: number; library?: typeof import("pg").default; plugin?: Plugin; } declare interface Plugin { getIdleProcessesListByMinimumTimeout(self: ServerlessClient): Promise>; getIdleProcessesListOrderByDate(self: ServerlessClient): Promise>; processCount(self: ServerlessClient): Promise>; killProcesses(self: ServerlessClient, pids: string[]): Promise>; showMaxConnections(self: ServerlessClient): Promise>; } declare interface ProcessList { pid: string; } declare interface Count { count: number; } declare interface MaxConnections { max_connections: number; } declare interface NodePgClientResponse { rows: T[]; } declare namespace ServerlessClient { export { TlsOptions, Config }; } declare class ServerlessClient { constructor(config: Config) clean(): Promise setConfig(config: Config): void connect(): Promise query(...args): Promise end(): Promise on(...args): void } export = ServerlessClient