import { TaskQueue } from 'power-tasks';
import { ConnectionState } from '../constants.js';
import type { ConnectionConfiguration } from '../interfaces/database-connection-params.js';
import type { ScriptExecuteOptions } from '../interfaces/script-execute-options.js';
import type { ScriptResult } from '../interfaces/script-result.js';
import { PgSocket } from '../protocol/pg-socket.js';
import { SafeEventEmitter } from '../safe-event-emitter.js';
import type { Maybe } from '../types.js';
import type { Connection } from './connection.js';
export declare class IntlConnection extends SafeEventEmitter {
    protected _refCount: number;
    protected _config: ConnectionConfiguration;
    protected _onErrorSavePoint: string;
    transactionStatus: string;
    socket: PgSocket;
    statementQueue: TaskQueue;
    constructor(config?: ConnectionConfiguration | string);
    get config(): ConnectionConfiguration;
    get inTransaction(): boolean;
    get state(): ConnectionState;
    get refCount(): number;
    get processID(): Maybe<number>;
    get secretKey(): Maybe<number>;
    get sessionParameters(): Record<string, string>;
    connect(): Promise<void>;
    close(): Promise<void>;
    execute(sql: string, options?: ScriptExecuteOptions, cb?: (event: string, ...args: any[]) => void): Promise<ScriptResult>;
    startTransaction(): Promise<void>;
    savepoint(name: string): Promise<void>;
    commit(): Promise<void>;
    rollback(): Promise<void>;
    rollbackToSavepoint(name: string): Promise<void>;
    releaseSavepoint(name: string): Promise<void>;
    ref(): void;
    unref(): boolean;
    assertConnected(): void;
    protected _execute(sql: string, options?: ScriptExecuteOptions, cb?: (event: string, ...args: any[]) => void): Promise<ScriptResult>;
    protected _onError(err: Error): void;
}
export declare function getIntlConnection(connection: Connection): IntlConnection;
