import { DatabaseConnection } from './DatabaseConnection';
import * as MySQL from 'mysql';
import { Readable } from 'stream';
import { IsolationLevel } from './IsolationLevel';
import { IDatabasePosition } from './IDatabasePosition';
import { IQueryable } from './IQueryable';
export declare class MySQLConnection extends DatabaseConnection<MySQL.PoolConnection> {
    private $transaction;
    private $opened;
    private $isMasterConnection;
    constructor(connection: MySQL.PoolConnection, instantiationStack: string, isReadOnly?: boolean);
    /**
     * @internal - Do not use in application code
     */
    __internal_init(): Promise<void>;
    formatQuery(query: IQueryable<any>): string;
    isMaster(): boolean;
    isReplication(): boolean;
    isTransaction(): boolean;
    isOpen(): boolean;
    getCurrentDatabasePosition(): Promise<IDatabasePosition>;
    protected _query(query: string, params?: any): Promise<any>;
    protected _stream(query: string, params?: any, streamOptions?: any): Readable;
    startTransaction(isolationLevel?: IsolationLevel): Promise<void>;
    endTransaction(requiresRollback?: boolean): Promise<void>;
    rollback(): Promise<void>;
    commit(): Promise<void>;
    protected _close(forceClose: boolean): Promise<void>;
}
