import { ParquetCodec, QueryExecutor, Row } from "./storage.mjs"; interface DuckDBHandle { query: (sql: string, params?: unknown[]) => Promise; registerFileBuffer: (name: string, bytes: Uint8Array) => Promise; copyFileToBuffer: (name: string) => Promise; dropFiles: (names: string[]) => Promise; /** * Returns a unique path suitable for `COPY TO '…'` + `copyFileToBuffer`. * In Node this is an absolute path under `os.tmpdir()` so DuckDB doesn't * litter the CWD; in browsers/Workers it's a plain virtual-FS name. */ makeTempPath: (ext: string) => string; } interface DuckDBFactory { getDuckDB: () => Promise; } interface DuckDBReadOptions { /** * Maximum non-URI parquet reads held in flight while registering DuckDB * buffers. Defaults to 16; callers handling unusually large files can lower * it to trade latency for peak JS memory. */ bufferReadConcurrency?: number; } declare function createDuckDBCodec(factory: DuckDBFactory, options?: DuckDBReadOptions): ParquetCodec; declare function createDuckDBExecutor(factory: DuckDBFactory, options?: DuckDBReadOptions): QueryExecutor; export { DuckDBFactory, DuckDBHandle, DuckDBReadOptions, createDuckDBCodec, createDuckDBExecutor };