/** * E57 (ASTM E2807-11) reader — top-level orchestrator. * * Pulls the file-header / page-CRC handling from `e57-page.ts`, the * XML model from `e57-xml.ts`, and the per-scan binary decoder from * `e57-decode.ts`. Re-exports the public surface so existing callers * (`@ifc-lite/pointcloud` index, the streaming source, tests) keep * working. * * Scope: * - Single-scan + multi-scan files. Per-Data3D pose (quaternion + * translation) is applied before merging so registered scans * line up in the file's global frame. * - Float (single/double) AND ScaledInteger (bit-packed integer * with scale/offset per E57 §6.3.4) for cartesian fields. * - Integer / Float / ScaledInteger colour + intensity channels. * * Out of scope (deferred — see issue #611): * - Spherical coordinate prototypes. */ import type { DecodedPointChunk } from '../types.js'; import { type E57Pose } from './e57-xml.js'; /** * Decode all Data3D scans in an E57 file. Combines them into a single * DecodedPointChunk (positions concatenated). Returns null when the * file has no scans. */ export declare function decodeE57(bytes: Uint8Array): DecodedPointChunk | null; /** * Apply a per-scan pose (rotation quaternion + translation) to a * positions buffer in place: `out = R · in + T`. * * Quaternion is in Hamilton convention (w + xi + yj + zk); we derive * the 3×3 rotation matrix once and reuse across every point in the * chunk. Translation is added after rotation. */ export declare function applyPoseInPlace(positions: Float32Array, pointCount: number, pose: E57Pose): void; export { parseE57FileHeader, stripPageCrc, resolveCompressedVectorDataOffset, type E57FileHeader, } from './e57-page.js'; export { parseE57Xml, type Data3DEntry, type E57Pose, } from './e57-xml.js'; export { decodeE57Scan } from './e57-decode.js'; //# sourceMappingURL=e57.d.ts.map