/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
import { FastTransform } from '../math/FastTransform';
import { IBimIfcLoaderElement } from './bim-ifc-loader-element';
import { BimProductMesh } from './BimProductMesh';
import { Matrix } from './babylonjs-maths-import';
import { BimTransform } from './bim-format-types';
/**
 * Represents a repository for calculating and caching transforms for
 * a IFC file.
 */
export declare class BimTransformsRepository {
    private readonly _loaderElement;
    private _fastTransformsLookup;
    private _matrixLookup;
    private static readonly _tmp;
    /**
     * Constructs a new instance of the {@link BimTransformsRepository} class.
     * @param _loaderElement The {@link IBimIfcLoaderElement} used for loading IFC data.
     */
    constructor(_loaderElement: IBimIfcLoaderElement);
    /**
     * Retrieves the {@link FastTransform} for the given {@link BimProductMesh}.
     * If the {@link FastTransform} is already cached, it is returned directly.
     * Otherwise, a new {@link FastTransform} is created, cached, and returned.
     * @param m The {@link BimProductMesh} for which to retrieve the {@link FastTransform}.
     * @param noCache If `true`, the created {@link FastTransform} will not be cached for future use. Defaults to `true`. Call {@link clear} to remove cached transforms.
     * @returns The {@link FastTransform} for the given {@link BimProductMesh}.
     */
    getTransform(m: BimProductMesh, noCache?: boolean): FastTransform;
    /**
     * Converts a {@link BimTransform} to a Matrix and assigns the result to the provided outMatrix.
     * @param wt - The {@link BimTransform} to convert.
     * @param outMatrix - The Matrix to assign the converted result to.
     * @returns The converted Matrix. Same as `outMatrix`.
     */
    convertBimTransformToMatrixToRef(wt: BimTransform, outMatrix: Matrix): Matrix;
    /**
     * Retrieves the matrix associated with the given {@link BimProductMesh}.
     * If the matrix is already cached, it is returned directly.
     * Otherwise, the matrix is calculated, cached, and returned.
     * @param m The {@link BimProductMesh} for which to retrieve the matrix.
     * @param noCache If `true`, the calculated matrix will be not be cached for future use. Defaults to `true`. Call {@link clear} to remove cached matrices.
     * @returns The matrix associated with the given BimProductMesh.
     */
    getMatrix(m: BimProductMesh, noCache?: boolean): Matrix;
    /**
     * Clears the transforms repository by removing all cached transforms.
     */
    clear(): void;
}
//# sourceMappingURL=bim-transforms-repository.d.ts.map