import type { RunResult } from '@rocicorp/zero-sqlite3';
import { Database } from '../../../zqlite/src/db.ts';
import { StatementCache } from '../../../zqlite/src/internal/statement-cache.ts';
/**
 * A stateless wrapper around a {@link StatementCache} that facilitates single-line
 * `printf()` style invocations of cached prepared statement operations.
 */
export declare class StatementRunner {
    readonly db: Database;
    readonly statementCache: StatementCache;
    constructor(db: Database);
    /**
     * Prepares a statement (or retrieves it from the cache) and runs it
     * with the given args.
     */
    run(sql: string, ...args: unknown[]): RunResult;
    /**
     * Prepares a statement (or retrieves it from the cache) and returns
     * the first result.
     */
    get(sql: string, ...args: unknown[]): any;
    /**
     * Prepares a statement (or retrieves it from the cache) and returns
     * all of its results.
     */
    all(sql: string, ...args: unknown[]): any[];
    begin(): RunResult;
    beginConcurrent(): RunResult;
    beginImmediate(): RunResult;
    commit(): RunResult;
    rollback(): RunResult;
}
//# sourceMappingURL=statements.d.ts.map