import duckdb from '@duckdb/node-bindings'; import { DuckDBBlobType } from '../DuckDBType'; import { DuckDBBlobValue } from '../values'; import { DuckDBVector } from './DuckDBVector'; import { DuckDBValidity } from './DuckDBValidity'; export declare class DuckDBBlobVector extends DuckDBVector { private readonly dataView; private readonly validity; private readonly vector; private readonly itemOffset; private readonly _itemCount; private readonly itemCache; private readonly itemCacheDirty; constructor(dataView: DataView, validity: DuckDBValidity, vector: duckdb.Vector, itemOffset: number, itemCount: number); static fromRawVector(vector: duckdb.Vector, itemCount: number): DuckDBBlobVector; get type(): DuckDBBlobType; get itemCount(): number; getItem(itemIndex: number): DuckDBBlobValue | null; /** * Returns the raw bytes for the item at `itemIndex`, or null if the item * is SQL NULL. Avoids the `Buffer.from(...)` copy that `getItem` does. * * The returned `Uint8Array` is a view over the underlying string_t * backing buffer for inline payloads (≤12 bytes); for larger payloads * it's a fresh allocation returned by the native bindings. Treat the * result as read-only either way. */ getItemBytes(itemIndex: number): Uint8Array | null; setItem(itemIndex: number, value: DuckDBBlobValue | null): void; flush(): void; slice(offset: number, length: number): DuckDBBlobVector; }