export class QConnection extends EventEmitter<any> {
    /**
   * @constructs socketArgs
   * @param  {Object}    socketArgs
   * @param  {string}    [socketArgs.host]
   * @param  {number}    socketArgs.port
   * @param  {string}    [socketArgs.user]
   * @param  {string}    [socketArgs.password]
   * @param  {boolean}   [socketArgs.useBigInt]
   * @param  {boolean}   [socketArgs.enableTLS]
   * @param  {boolean}   [socketArgs.socketTimeout]
   * @param  {boolean}   [socketArgs.socketNoDelay]
   * @param  {boolean}   [socketArgs.includeNanosecond]
   * @param  {boolean}   [socketArgs.dateToMillisecond]
   */
    constructor(socketArgs: {
        host?: string | undefined;
        port: number;
        user?: string | undefined;
        password?: string | undefined;
        useBigInt?: boolean | undefined;
        enableTLS?: boolean | undefined;
        socketTimeout?: boolean | undefined;
        socketNoDelay?: boolean | undefined;
        includeNanosecond?: boolean | undefined;
        dateToMillisecond?: boolean | undefined;
    });
    socketArgs: {
        host?: string | undefined;
        port: number;
        user?: string | undefined;
        password?: string | undefined;
        useBigInt?: boolean | undefined;
        enableTLS?: boolean | undefined;
        socketTimeout?: boolean | undefined;
        socketNoDelay?: boolean | undefined;
        includeNanosecond?: boolean | undefined;
        dateToMillisecond?: boolean | undefined;
    };
    host: string;
    port: number;
    user: string;
    password: string;
    useBigInt: boolean;
    /** @type {net.Socket|tls.TLSSocket|null} */
    socket: net.Socket | tls.TLSSocket | null;
    /** @type {function[]} */
    callbacks: Function[];
    socketTimeout: number | boolean;
    socketNoDelay: boolean;
    msgBuffer: Buffer<ArrayBuffer>;
    enableTLS: boolean;
    includeNanosecond: boolean;
    dateToMillisecond: boolean;
    isConnected: boolean;
    setSocket(socket: any): void;
    auth(socket: any, callback: any): void;
    /**
     *
     * @callback errorHandler
     * @param {Error} err
     */
    /**
     *
     * @param {errorHandler} callback
     */
    connect(callback: (err: Error) => any): any;
    /**
     *
     * @param {function()} [callback]
     */
    close(callback?: () => any): void;
    /**
     *
     * @param {Buffer} buffer
     */
    incomingMsgHandler(buffer: Buffer): void;
    /**
     *
     * @callback queryHandler
     * @param {Error} err
     * @param {any} res
     */
    /**
     *
     * @param {string|Array} param
     * @param {queryHandler} callback
     */
    sync(param: string | any[], callback: (err: Error, res: any) => any): any;
    /**
     *
     * @param {string|Array} param
     * @param {errorHandler} [callback]
     */
    asyn(param: string | any[], callback?: (err: Error) => any): void;
    /**
     * @returns {Promise<void>}
     */
    connectAsync(): Promise<void>;
    /**
     * @param {string|Array} param
     * @returns {Promise<any>}
     */
    syncAsync(param: string | any[]): Promise<any>;
    /**
     * @returns {Promise<void>}
     */
    closeAsync(): Promise<void>;
}
import { EventEmitter } from 'events';
import net from 'net';
import tls from 'tls';
import { Buffer } from 'buffer';
