export declare const $u8: unique symbol, $i8: unique symbol, $u16: unique symbol, $i16: unique symbol, $u32: unique symbol, $i32: unique symbol, $f32: unique symbol, $f64: unique symbol, $ref: unique symbol, $str: unique symbol, $arr: unique symbol; export type TypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array; export type TypeSymbol = typeof $u8 | typeof $i8 | typeof $u16 | typeof $i16 | typeof $u32 | typeof $i32 | typeof $f32 | typeof $f64 | typeof $str | typeof $ref; export type PrimitiveBrand = ((number[] | string[]) & { [key: symbol]: true; }) | TypedArray; export type ComponentRef = Record; export type ArrayType = T[] & { [$arr]: TypeSymbol | TypeFunction | ArrayType; }; export declare const u8: (a?: number[]) => number[], i8: (a?: number[]) => number[], u16: (a?: number[]) => number[], i16: (a?: number[]) => number[], u32: (a?: number[]) => number[], i32: (a?: number[]) => number[], f32: (a?: number[]) => number[], f64: (a?: number[]) => number[], ref: (a?: number[]) => number[], str: (a?: string[]) => string[]; type TypeFunction = typeof u8 | typeof i8 | typeof u16 | typeof i16 | typeof u32 | typeof i32 | typeof f32 | typeof f64 | typeof str | typeof ref; export declare const typeSetters: Record number>; export declare const typeGetters: Record { value: any; size: number; }>; export declare function array(type: typeof $str | typeof str): ArrayType; export declare function array(type?: TypeSymbol | TypeFunction): ArrayType; export declare function array(type: ArrayType): ArrayType; export declare function getTypeForArray(arr: PrimitiveBrand | TypedArray | ArrayType): TypeSymbol; export declare function isArrayType(value: any): value is ArrayType; export declare function getArrayElementType(arrayType: ArrayType): TypeSymbol | TypeFunction | ArrayType; export declare function serializeArrayValue(elementType: ArrayType | TypeSymbol | TypeFunction, value: any[], view: DataView, offset: number): number; export declare function deserializeArrayValue(elementType: ArrayType | TypeSymbol | TypeFunction, view: DataView, offset: number, entityIdMapping?: Map): { size: number; value?: undefined; } | { value: any; size: number; }; export declare const createComponentSerializer: (component: ComponentRef | PrimitiveBrand | TypedArray | ArrayType, diff?: boolean, shadowMap?: Map, epsilon?: number) => (view: DataView, offset: number, index: number, componentId: number) => number; export declare const createComponentDeserializer: (component: ComponentRef | PrimitiveBrand | TypedArray | ArrayType, diff?: boolean) => (view: DataView, offset: number, entityIdMapping?: Map) => number; export type SoASerializerOptions = { diff?: boolean; buffer?: ArrayBuffer; epsilon?: number; }; export declare const createSoASerializer: (components: (ComponentRef | PrimitiveBrand | TypedArray | ArrayType)[], options?: SoASerializerOptions) => (indices: number[] | readonly number[]) => ArrayBuffer; export type SoADeserializerOptions = { diff?: boolean; }; export declare const createSoADeserializer: (components: (ComponentRef | PrimitiveBrand | TypedArray | ArrayType)[], options?: SoADeserializerOptions) => (packet: ArrayBuffer, entityIdMapping?: Map) => void; export {}; //# sourceMappingURL=SoASerializer.d.ts.map