import { Quaternion, TransformNode, Vector3 } from '@babylonjs/core'; import { QuatConfig, Vec3Config } from "../interfaces/level.d.ts"; /** * Convert a BabylonJS Vector3 to a plain { x, y, z } object. */ export declare function toVec3Object(vector: Vector3): Vec3Config; /** * Convert a plain { x, y, z } object to a BabylonJS Vector3. */ export declare function toVector3(vec: Vec3Config): Vector3; /** * Convert a BabylonJS Quaternion to a plain { x, y, z, w } object. */ export declare function toQuatObject(quat: Quaternion): QuatConfig; /** * Convert a plain { x, y, z, w } object to a BabylonJS Quaternion. */ export declare function toQuaternion(quat: QuatConfig): Quaternion; /** * Compute a node's transform in canonical Babylon space by walking the parent * chain and individually cancelling each import conversion ancestor. * * For each ancestor, computes its local contribution from BabylonJS's own world * matrices. If that local contribution has negative determinant (import conversion * node like glTF's __root__), it is individually cancelled from the running matrix * via left-multiplication by its inverse. * * Each conversion node is handled one at a time — no assumptions about hierarchy * depth or which node is "the" root. Handles arbitrarily nested import hierarchies. */ export declare function getCanonicalTransform(node: TransformNode): { position: Vector3; rotation: Quaternion; scaling: Vector3; };