import duckdb from '@duckdb/node-bindings'; import { DuckDBStructType } from '../DuckDBType'; import { DuckDBStructValue, DuckDBValue } from '../values'; import { DuckDBVector } from './DuckDBVector'; import { DuckDBValidity } from './DuckDBValidity'; export declare class DuckDBStructVector extends DuckDBVector { private readonly structType; private readonly _itemCount; private readonly entryVectors; private readonly validity; private readonly vector; constructor(structType: DuckDBStructType, itemCount: number, entryVectors: readonly DuckDBVector[], validity: DuckDBValidity, vector: duckdb.Vector); static fromRawVector(structType: DuckDBStructType, vector: duckdb.Vector, itemCount: number): DuckDBStructVector; get type(): DuckDBStructType; get itemCount(): number; getItem(itemIndex: number): DuckDBStructValue | null; getItemValue(itemIndex: number, entryIndex: number): DuckDBValue | null; /** * Returns the underlying child vector for entry `index`. Useful for * callers that want direct access to a child's flat backing storage * (e.g. when decoding a physical-layout type that overlays a STRUCT). */ entryVectorAt(index: number): DuckDBVector; /** * Returns whether the top-level row at `itemIndex` is non-NULL. Useful * for callers overlaying a logical type on a STRUCT vector that need to * distinguish a SQL-NULL row from a row whose children just happen to * be NULL. */ isItemValid(itemIndex: number): boolean; setItem(itemIndex: number, value: DuckDBStructValue | null): void; setItemValue(itemIndex: number, entryIndex: number, value: DuckDBValue): void; flush(): void; slice(offset: number, length: number): DuckDBStructVector; }