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 {};