import { DuckDBDataChunk, DuckDBType, DuckDBValue, DuckDBValueConverter, JS } from '@duckdb/node-api'; /** Never receives null; the caller short-circuits those. */ export type ColumnConverter = (value: DuckDBValue) => unknown; export type Transform = { names: string[]; converters: Array; objectShape: Record | null; }; /** * Renders epoch millis as an ISO timestamp, matching `new Date(millis).toISOString()` * byte for byte across the whole range Date accepts, expanded years included. */ export declare function formatIsoFromMillis(millis: number): string; /** * Recursive converter for nested types (LIST, STRUCT, MAP, ...), where the legacy driver * kept JS built-ins. Nested cells go through the very same converters as top-level columns, * so a TIMESTAMP inside a STRUCT is the same ISO string as a TIMESTAMP column. */ export declare const convertNestedValue: DuckDBValueConverter; export declare function getColumnConverter(type: DuckDBType): ColumnConverter | null; export declare function buildTransform(names: string[], types: DuckDBType[]): Transform; /** * Column-major: each vector is decoded once and its converter is picked once, instead of * dispatching on the type for every cell. */ export declare function transformChunk(chunk: DuckDBDataChunk, transform: Transform): Record[]; export declare function convertDuckDBParams(values: unknown[] | null | undefined): DuckDBValue[]; //# sourceMappingURL=Transform.d.ts.map