import * as mysql from "mysql2";
import { HotDB, HotDBType } from "../HotDB";
import { HotDBConnectionInterface } from "../HotDBConnectionInterface";
import { MySQLSchema } from "./mysql/MySQLSchema";
/**
 * The database results.
 */
export interface MySQLResults {
    error: any;
    results: any;
    fields: mysql.FieldPacket[];
}
/**
 * The MySQL database connection.
 */
export declare class HotDBMySQL extends HotDB<mysql.Pool, MySQLResults, MySQLSchema> {
    constructor(db?: mysql.Pool, type?: HotDBType, schema?: MySQLSchema);
    /**
     * 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<MySQLResults>;
    /**
     * Make a single query. If there are no results, null will be in MySQLResults.results
     */
    queryOne(queryString: string, values?: any[]): Promise<MySQLResults>;
    /**
     * Make multiple queries. **Warning! This can be a security vulnerability
     * if misused! Ideally this should only be used when making changes to tables!
     * Additionally, this could overwhelm the server and each command sent is not
     * guaranteed to be done in order.**
     *
     * @deprecated
     */
    multiQuery(queryStrings: string[] | {
        query: string;
        values: any[];
    }[]): Promise<MySQLResults[]>;
    /**
     * Disconnect from the server.
     */
    disconnect(): Promise<void>;
}
//# sourceMappingURL=HotDBMySQL.d.ts.map