import type { Dialect } from './Dialect.js';
import type { BatchedQuery, Driver, DriverSpecs, Statement } from './Driver.js';
import type { Emitter } from './Emitter.js';
import { type HasQuery, type HasSql } from './Internal.js';
import type { QueryMeta } from './MetaData.js';
import type { MapRowContext } from './Selection.js';
export declare class Resolver {
#private;
private brand;
constructor(driver: Driver, dialect: Dialect);
toSQL(query: HasQuery): {
sql: string;
params: Array;
};
prepare(query: HasQuery, name?: string): PreparedStatement;
batch(queries: Array): Batch;
}
type RowMapper = ((ctx: MapRowContext) => unknown) | undefined;
interface QueryWithMapRow extends BatchedQuery {
mapRow: RowMapper;
}
export declare class Batch {
#private;
private brand;
constructor(driver: Driver, queries: Array);
execute(): Array | Promise>;
}
export declare class PreparedStatement {
#private;
private brand;
constructor(emitter: Emitter, stmt: Statement, mapRow: RowMapper, specs: DriverSpecs);
all(inputs?: Record): Array | Promise>;
get(inputs?: Record): unknown | Promise;
run(inputs?: Record): unknown;
execute(inputs?: Record): Promise;
free(): void;
}
export {};