import type { Executor } from '../executor';
/**
 * Wraps an async executor factory, deferring connection until first use.
 * This lets flint() be synchronous even for async drivers.
 */
export declare class LazyExecutor implements Executor {
    #private;
    constructor(factory: () => Promise<Executor>);
    all(sql: string, params: unknown[]): Promise<unknown[]>;
    get(sql: string, params: unknown[]): Promise<unknown>;
    run(sql: string, params: unknown[]): Promise<{
        rowsAffected: number;
    }>;
    transaction(fn: () => void | Promise<void>): Promise<void>;
    close(): void;
}
