import { PromiseBasedQueryRunner } from "./PromiseBasedQueryRunner";
import type { DatabaseType } from "./QueryRunner";
export interface Connection {
    query(sql: string, params?: any[], cb?: QueryCb): Query;
    beginTransaction(cb?: StatusCb): void;
    commit(cb?: StatusCb): void;
    rollback(cb?: StatusCb): void;
}
export interface Query {
    on(name: string, cb: SubmittedEventCb): void;
    on(name: string, cb: EventCb): void;
    on(name: string, cb: EventColumnCb): void;
}
export interface QueryCb {
    (err?: Error, rows?: any[], more?: boolean): void;
}
export interface StatusCb {
    (err?: Error): void;
}
export interface EventCb {
    (data: any): void;
}
export interface SubmittedEventCb {
    (sql: string, params: any[]): void;
}
export interface EventColumnCb {
    (colIndex: number, data: any, more: boolean): void;
}
/**
 * @deprecated Use mssql instead with MssqlPoolQueryRunner or MssqlPoolQueryRunner
 */
export declare class MsNodeSqlV8QueryRunner<CONNECTION extends Connection> extends PromiseBasedQueryRunner {
    readonly database: DatabaseType;
    readonly connection: CONNECTION;
    private transactionLevel;
    constructor(connection: CONNECTION);
    useDatabase(database: DatabaseType): void;
    getNativeRunner(): CONNECTION;
    getCurrentNativeTransaction(): undefined;
    execute<RESULT>(fn: (connection: unknown, transaction?: unknown) => Promise<RESULT>): Promise<RESULT>;
    protected executeQueryReturning(query: string, params: any[]): Promise<any[]>;
    protected executeMutation(query: string, params: any[]): Promise<number>;
    executeBeginTransaction(): Promise<void>;
    executeCommit(): Promise<void>;
    executeRollback(): Promise<void>;
    isTransactionActive(): boolean;
    addParam(params: any[], value: any): string;
}
