import * as pg from "pg";
import { HotDB, HotDBType } from "../HotDB";
import { HotDBConnectionInterface } from "../HotDBConnectionInterface";
import { PostgresSchema } from "./postgres/PostgresSchema";
/**
 * The database results.
 */
export interface PostgresResults {
    error: any;
    results: any;
    rawResults: any;
    fields: pg.FieldDef[];
}
/**
 * The Postgres database connection.
 */
export declare class HotDBPostgres extends HotDB<pg.Pool, PostgresResults, PostgresSchema> {
    constructor(db?: pg.Pool, type?: HotDBType, schema?: PostgresSchema);
    /**
     * Connect to the database.
     */
    connect(connectionInfo: HotDBConnectionInterface): Promise<any[]>;
    /**
     * Checks to see if this has a database connection.
     */
    protected dbCheck(): void;
    /**
     * Synchronize all tables.
     */
    /**
     * Synchronize a table. This will create/modify the table based on whether it
     * exists, and if there's been any changes to any fields.
     */
    /**
     * Sync the migrations table tracker. This keeps track of all database table migrations.
     * If the "migrations" table is missing, it will be created.
     */
    /**
     * Checks if the table exists.
     */
    tableCheck(tableName: string): Promise<boolean>;
    /**
     * The query to make.
     */
    query(queryString: string, values?: any[]): Promise<PostgresResults>;
    /**
     * Make a single query. If there are no results, null will be in MySQLResults.results
     */
    queryOne(queryString: string, values?: any[]): Promise<PostgresResults>;
    /**
     * Make multiple queries.
     *
     * This is not implemented, and will not be.
     *
     * @deprecated
     */
    multiQuery(queryStrings: string[] | {
        query: string;
        values: any[];
    }[]): Promise<PostgresResults[]>;
    /**
     * Disconnect from the server.
     */
    disconnect(): Promise<void>;
}
//# sourceMappingURL=HotDBPostgres.d.ts.map