import pg from 'pg'; import { ConnectionOptions } from './connectionOptions.js'; import { Notification, PostProcessResultFunc, ResultFieldType, TransactionIsolationLevel } from "./pgDbInterface.js"; import { PgDbLogger } from './pgDbLogger.js'; import { PgSchema } from "./pgSchema.js"; import { PgTable } from "./pgTable.js"; import { QueryAble } from "./queryAble.js"; export declare enum FieldType { JSON = 0, ARRAY = 1, TIME = 2, TSVECTOR = 3 } export declare class PgDb extends QueryAble { protected static instances: { [index: string]: Promise; }; pool: pg.Pool; connection: (pg.PoolClient & { processID?: string; }) | null; config: ConnectionOptions; defaultSchemas: string[]; db: PgDb; schemas: { [name: string]: PgSchema; }; tables: { [name: string]: PgTable; }; fn: { [name: string]: (...args: any[]) => any; }; [name: string]: any | PgSchema; pgdbTypeParsers: Record any>; knownOids: Record; postProcessResult: PostProcessResultFunc | undefined | null; private constructor(); setPostProcessResult(f: null | ((res: any[], fields: ResultFieldType[], logger: PgDbLogger) => void)): void; static getInstance(config: ConnectionOptions): Promise; close(): Promise; static connect(config: ConnectionOptions): Promise; private init; reload(): Promise; private initSchemasAndTables; private setDefaultTablesAndFunctions; private initFieldTypes; setTypeParser(typeName: string, parser: (s: string) => any, schemaName?: string): Promise; setPgDbTypeParser(typeName: string, parser: (s: string) => any, schemaName?: string): Promise; resetMissingParsers(connection: pg.PoolClient, oidList: number[]): Promise; dedicatedConnectionBegin(): Promise; dedicatedConnectionEnd(): Promise; savePoint(name: string): Promise; savePointRelease(name: string): Promise; transactionBegin(options?: { isolationLevel?: TransactionIsolationLevel; deferrable?: boolean; readOnly?: boolean; }): Promise; transactionCommit(): Promise; transactionRollback(options?: { savePoint?: string; }): Promise; isTransactionActive(): boolean; execute(fileName: string, statementTransformerFunction?: (s: string) => string): Promise; private listeners; private connectionForListen; private _needToRestartConnectionForListen; private restartConnectionForListen; listen(channel: string, callback: (notification: Notification) => void): Promise; unlisten(channel: string, callback?: (notification: Notification) => void): Promise; notify(channel: string, payload?: string): Promise; runRestartConnectionForListen(): Promise; needToFixConnectionForListen(): boolean; private tryToFixConnectionForListenActively; notificationListener: (notification: Notification) => boolean; errorListener: (e: Error) => void; private initConnectionForListen; } export default PgDb;