/**
 * @since 4.0.0
 */
import * as Context from "../../Context.ts";
import type { Effect } from "../../Effect.ts";
import type { Scope } from "../../Scope.ts";
import type { Stream } from "../../Stream.ts";
import type { SqlError } from "./SqlError.ts";
/**
 * @category model
 * @since 4.0.0
 */
export interface Connection {
    readonly execute: (sql: string, params: ReadonlyArray<unknown>, transformRows: (<A extends object>(row: ReadonlyArray<A>) => ReadonlyArray<A>) | undefined) => Effect<ReadonlyArray<any>, SqlError>;
    /**
     * Execute the specified SQL query and return the raw results directly from
     * underlying SQL client.
     */
    readonly executeRaw: (sql: string, params: ReadonlyArray<unknown>) => Effect<unknown, SqlError>;
    readonly executeStream: (sql: string, params: ReadonlyArray<unknown>, transformRows: (<A extends object>(row: ReadonlyArray<A>) => ReadonlyArray<A>) | undefined) => Stream<any, SqlError>;
    readonly executeValues: (sql: string, params: ReadonlyArray<unknown>) => Effect<ReadonlyArray<ReadonlyArray<unknown>>, SqlError>;
    readonly executeUnprepared: (sql: string, params: ReadonlyArray<unknown>, transformRows: (<A extends object>(row: ReadonlyArray<A>) => ReadonlyArray<A>) | undefined) => Effect<ReadonlyArray<any>, SqlError>;
}
/**
 * @category model
 * @since 4.0.0
 */
export type Acquirer = Effect<Connection, SqlError, Scope>;
/**
 * @category tag
 * @since 4.0.0
 */
export declare const Connection: Context.Service<Connection, Connection>;
/**
 * @category model
 * @since 4.0.0
 */
export type Row = {
    readonly [column: string]: unknown;
};
//# sourceMappingURL=SqlConnection.d.ts.map