import { SqlResult, SqlField } from '../models/SqlResult'; /** The known string column names of a row shape. */ export type ColumnOf = Extract; /** Known columns get autocomplete; (string & {}) keeps arbitrary names legal (case-insensitive/Oracle-UPPERCASE access). */ type ColumnArg = ColumnOf | (string & {}); /** A single result row with case-insensitive, type-coercing accessors. */ export declare class Row> { private data; constructor(data: T); get(column: ColumnArg): unknown; string(column: ColumnArg): string | null | undefined; number(column: ColumnArg): number | null | undefined; boolean(column: ColumnArg): boolean | null | undefined; has(column: ColumnArg): boolean; raw(): Record; } /** Ergonomic wrapper over a result's rows. */ export declare class ResultSet> { private _rows; private _rowCount; private _fields; constructor(_rows: T[], _rowCount: number, _fields: SqlField[]); get length(): number; get rowCount(): number; isEmpty(): boolean; at(index: number): Row | undefined; first(): Row | undefined; one(): Row; maybeOne(): Row | undefined; scalar(column?: string): V | null | undefined; column(name: string): unknown[]; find(where: Record | ((row: Row) => boolean)): Row | undefined; where(where: Record | ((row: Row) => boolean)): ResultSet; map(fn: (row: Row, index: number) => R): R[]; all(): Row[]; raw(): T[]; } /** Wrap a SqlResult (or a raw rows array) for ergonomic access. */ export declare function rows(source: SqlResult | T[]): ResultSet; export {};