import React from "react";
import { Matrix4, MeshBasicMaterial, MeshLambertMaterial, type ColorRepresentation, type DataTexture, type Material } from "three";
import type { BmtGeomData, BmtMaterialData } from "./Loaders/BmtLoader";
import type { ViewerMaterialMode } from "./types";
export type SelectableMeshProps = {
    colorPaletteTexture: DataTexture;
    data: BmtGeomData;
    isIfcSpace?: boolean;
    material: BmtMaterialData;
    materialMode?: ViewerMaterialMode;
    meshMatrix: Matrix4;
    useDoubleSideMaterial?: boolean;
};
export type SelectableMaterial = MeshBasicMaterial | MeshLambertMaterial;
export declare function createSelectableMaterial({ colorPaletteTexture, material, materialMode, preselectionColor, useDoubleSideMaterial, }: Pick<SelectableMeshProps, "colorPaletteTexture" | "material" | "materialMode" | "useDoubleSideMaterial"> & {
    preselectionColor: ColorRepresentation;
}): MeshBasicMaterial | MeshLambertMaterial;
export declare function updateSelectableMaterialPreselectionColor(material: Material, preselectionColor: ColorRepresentation): void;
export declare const SelectableMesh: React.MemoExoticComponent<({ colorPaletteTexture, material, materialMode, data, isIfcSpace, meshMatrix, useDoubleSideMaterial, }: SelectableMeshProps) => import("react/jsx-runtime").JSX.Element>;
