import type * as PHTypes from './types/pg-helper';
import * as sqlUtils from './utils/sql-utils';
import type * as SqlUtilsType from './types/sql-utils';
declare class PgHelper {
    private logger;
    private pooConfig;
    private autoHump;
    private returning;
    private pool;
    constructor(pooConfig: PHTypes.PoolConfig, options?: PHTypes.Options);
    private initPool;
    /**
     * get a poolClient
     * @returns
     */
    getClient(): Promise<any>;
    /**
     * get a transaction poolClient
     * @returns
     */
    getTransaction(): Promise<any>;
    /**
     *
     * @param sqlTemp the executed sql template
     * @param sqlParams template parameters, the key of Object needs to correspond to the value of {params} in the SQL template one-to-one
     * @param options
     * @returns
     */
    runSql(sqlTemp: PHTypes.SqlTemplate, sqlParams?: PHTypes.SqlTempParams, options?: PHTypes.SqlOptions): Promise<PHTypes.QueryResult>;
    /**
     * will auto commit or rollback
     */
    runTSql(sqlTemps: PHTypes.TSqlTempParams[], options?: PHTypes.SqlOptions): Promise<PHTypes.QueryResult[]>;
    /**
     * build insert sql
     */
    insert(params: SqlUtilsType.Insert, options: PHTypes.InsertOptions): Promise<PHTypes.QueryResult>;
    /**
     * build delete sql
     */
    delete(params: PHTypes.SqlTempParams, options: PHTypes.DeleteOptions): Promise<PHTypes.QueryResult>;
    /**
     * build update sql
     */
    update(params: PHTypes.SqlTempParams, options: PHTypes.UpdateOptions): Promise<PHTypes.QueryResult>;
    /**
     * build select sql
     */
    select(params: PHTypes.SqlTempParams, options: PHTypes.SelectOptions): Promise<PHTypes.QueryResult>;
}
export { PgHelper, sqlUtils };
