import type { ComponentDef, ComponentId, EntityHandle, Schema } from '@ecsia/schema'; import type { Buffers, Column } from '../memory/index.js'; import type { AccessorInstanceBase, AccessorWorld } from './accessor.js'; export interface ColumnSet { readonly archetypeId: number; readonly componentId: ComponentId; readonly columns: readonly Column[]; /** The monomorphic accessor singleton for this (archetype, component). */ readonly accessor: AccessorInstanceBase; } export interface BuildColumnSetParams { readonly buffers: Buffers; readonly archetypeId: number; readonly def: ComponentDef; readonly world: AccessorWorld; readonly initialCapacity: number; } export declare function buildColumnSet(params: BuildColumnSetParams): ColumnSet; /** * Re-default every column-backed field of `row` to the component's defaults — UNCONDITIONALLY * (archetype-storage.md §5.7): zero-init covers only never-used rows, but a reused row (a swap-pop, a * free list) holds the previous tenant's bytes. Array defaults (vecs) encode per lane; a scalar uses * the column's single `fillOnInit`, which cannot represent non-uniform lanes. The single source of * truth for row defaulting: storage's row-init and the relations overflow table both call this. */ export declare function initColumnSetRow(set: ColumnSet, def: ComponentDef, row: number): void; export declare function bindAccessorRow(set: ColumnSet, row: number, eid: EntityHandle): AccessorInstanceBase; //# sourceMappingURL=column-set.d.ts.map