import { DataBufferBuilder } from './buffer.js'; import { Builder, BuilderOptions } from '../builder.js'; import { Union, SparseUnion, DenseUnion } from '../type.js'; export interface UnionBuilderOptions extends BuilderOptions { valueToChildTypeId?: (builder: UnionBuilder, value: any, offset: number) => number; } /** @ignore */ export declare abstract class UnionBuilder extends Builder { protected _typeIds: DataBufferBuilder; constructor(options: UnionBuilderOptions); get typeIdToChildIndex(): { [key: number]: number; }; append(value: T['TValue'] | TNull, childTypeId?: number): this; set(index: number, value: T['TValue'] | TNull, childTypeId?: number): this; setValue(index: number, value: T['TValue'], childTypeId?: number): void; addChild(child: Builder, name?: string): number; /** @ignore */ protected _valueToChildTypeId(builder: UnionBuilder, value: any, offset: number): number; } /** @ignore */ export declare class SparseUnionBuilder extends UnionBuilder { } /** @ignore */ export declare class DenseUnionBuilder extends UnionBuilder { protected _offsets: DataBufferBuilder; constructor(options: UnionBuilderOptions); /** @ignore */ setValue(index: number, value: T['TValue'], childTypeId?: number): void; }