import React from "react";
import { type ColorRepresentation, type Material } from "three";
import { MeshBasicNodeMaterial, MeshLambertNodeMaterial } from "three/webgpu";
import type { SelectableMeshProps } from "./SelectableMesh";
type NodeSelectableMaterial = (MeshBasicNodeMaterial | MeshLambertNodeMaterial) & Material & {
    colorNode?: unknown;
    defaultAttributeValues?: Record<string, number[]>;
    opacityNode?: unknown;
};
export declare function createWebGpuSelectableMaterial({ colorPaletteTexture, material, materialMode, preselectionColor, selectionColor, useDoubleSideMaterial, }: Pick<SelectableMeshProps, "colorPaletteTexture" | "material" | "materialMode" | "useDoubleSideMaterial"> & {
    preselectionColor: ColorRepresentation;
    selectionColor: ColorRepresentation;
}): NodeSelectableMaterial;
export declare function updateWebGpuSelectableMaterialColors(material: Material, { preselectionColor, selectionColor, }: {
    preselectionColor: ColorRepresentation;
    selectionColor: ColorRepresentation;
}): void;
export declare const WebGpuSelectableMesh: React.MemoExoticComponent<({ colorPaletteTexture, material, materialMode, data, isIfcSpace, meshMatrix, useDoubleSideMaterial, }: SelectableMeshProps) => import("react/jsx-runtime").JSX.Element>;
export {};
