import type { AssociatedArrayType, ParameterizedMessage, Payload, PayloadHandler } from 'wtd-core'; import { BufferAttribute, BufferGeometry, InterleavedBufferAttribute, Mesh } from 'three'; export type AssociatedBufferAttributeArrayType = { [key: string]: BufferAttribute | InterleavedBufferAttribute; }; export type MeshPayloadAdditions = Payload & { message: MeshPayloadMessageAdditions; }; export type MeshPayloadMessageAdditions = ParameterizedMessage & { geometryType: GeometryType; bufferGeometry: BufferGeometry | AssociatedArrayType | undefined; meshName: string; }; export declare enum GeometryType { MESH = 0, LINE = 1, POINT = 2 } export declare class MeshPayload implements MeshPayloadAdditions { $type: string; message: MeshPayloadMessageAdditions; /** * Set the {@link BufferGeometry} and geometry type that can be used when a mesh is created. * * @param {BufferGeometry} bufferGeometry * @param {number} geometryType [0=Mesh|1=LineSegments|2=Points] */ setBufferGeometry(bufferGeometry: BufferGeometry, geometryType: GeometryType): void; /** * Sets the mesh and the geometry type [0=Mesh|1=LineSegments|2=Points] * @param {Mesh} mesh * @param {number} geometryType */ setMesh(mesh: Mesh, geometryType: GeometryType): void; } export declare class MeshPayloadHandler implements PayloadHandler { pack(payload: Payload, transferables: Transferable[], cloneBuffers: boolean): Transferable[]; unpack(transportObject: Payload, cloneBuffers: boolean): MeshPayload; } export declare const packGeometryBuffers: (cloneBuffers: boolean, bufferGeometry: BufferGeometry | undefined, buffers: Map) => void; export declare const addAttributeToBuffers: (name: string, input: BufferAttribute | InterleavedBufferAttribute | null | undefined, cloneBuffer: boolean, buffers: Map) => void; export declare const reconstructBuffer: (cloneBuffers: boolean, transferredGeometry: BufferGeometry | AssociatedArrayType | undefined) => BufferGeometry; export declare const assignAttributeFromTransfered: (bufferGeometry: BufferGeometry, input: BufferAttribute | InterleavedBufferAttribute | undefined, attrName: string, cloneBuffer: boolean) => void; //# sourceMappingURL=MeshPayload.d.ts.map