/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
import { Matrix } from './babylonjs-import';
import { Vertex3 } from '../math';
/**
 * Represents a coordinate system converter between the IFC and Babylon JS coordinate systems.
 */
declare class CoordinateSystems {
    /**
     * The transformation matrix used to convert coordinates from the IFC coordinate system to the Babylon JS coordinate system.
     */
    readonly toBabylonTransform: Matrix;
    /**
     * The transformation matrix used to convert coordinates from Babylon.js to IFC coordinate system.
     */
    readonly toIfcTransform: Matrix;
    /**
     * Constructs a new instance of the BabylonCoordinateSystem class.
     */
    constructor();
    /**
     * Converts an IFC coordinate to Babylon coordinate.
     * @param ifcVertex - The IFC vertex to be converted.
     * @returns The converted vertex.
     */
    convertIfcCoordinateToBabylon<T extends Vertex3>(ifcVertex: T): T;
    /**
     * Converts the coordinates between the IFC (Industry Foundation Classes) and Babylon JS coordinate systems.
     *
     * @template T - The type of the destination vertex.
     * @param x - The x-coordinate in the source coordinate system.
     * @param y - The y-coordinate in the source coordinate system.
     * @param z - The z-coordinate in the source coordinate system.
     * @param dst - The destination vertex to store the converted coordinates.
     * @returns The destination vertex with the converted coordinates.
     */
    convertCoordinateBetweenIfcAndBabylon<T extends Vertex3>(x: number, y: number, z: number, dst: T): T;
    /**
     * Converts an IFC transform matrix to a Babylon transform matrix in place.
     * The operations performed are equivalent to: bjsTransform = coordinateSystems.toBabylonTransform * m
     *
     * @param m The IFC transform matrix to be converted.
     * @returns The converted Babylon transform matrix.
     */
    convertIfcTransformToBabylonTransformInPlace(m: Matrix): Matrix;
}
/**
 * Helper to to transform between IFC and BabylonJS coordinate systems.
 */
export declare const coordinateSystems: CoordinateSystems;
export {};
//# sourceMappingURL=babylon-coordinate-system.d.ts.map