import type { DatabaseType } from "./QueryRunner";
import type { Database } from '@sqlite.org/sqlite-wasm';
import type { PromiseProvider, UnwrapPromiseTuple } from "../utils/PromiseProvider";
import { SqlTransactionQueryRunner } from "./SqlTransactionQueryRunner";
export interface Sqlite3WasmOO1QueryRunnerConfig {
    promise?: PromiseProvider;
}
export declare class Sqlite3WasmOO1QueryRunner extends SqlTransactionQueryRunner {
    readonly database: DatabaseType;
    readonly connection: Database;
    readonly promise: PromiseProvider;
    constructor(connection: Database, config?: Sqlite3WasmOO1QueryRunnerConfig);
    useDatabase(database: DatabaseType): void;
    getNativeRunner(): Database;
    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>;
    executeInsertReturningLastInsertedId(query: string, params?: any[]): Promise<any>;
    addParam(params: any[], value: any): string;
    createResolvedPromise<RESULT>(result: RESULT): Promise<RESULT>;
    protected createAllPromise<P extends Promise<any>[]>(promises: [...P]): Promise<UnwrapPromiseTuple<P>>;
}
