import { AbstractMesh, Scene } from '../babylonjs-import';
import { UniformsAndDefinesAndSamplers } from './CullingMaterial';
import { LazyResizableRawTexture } from '../LazyResizableRawTexture';
import { DitheringMaterial } from './DitheringMaterial';
import { DitherTexture } from './DitherTexture';
import { ProductMeshesGroupRenderInfo } from '../ProductMeshesGroupRenderInfo';
export declare enum IfcMaterialRenderProperty {
    depthWriteIgnoresVisibility = 24,
    visibility = 25,
    highlight = 26,// 2 bits in size. See IfcMaterialHighlightIndex
    outline = 28,
    ignoreClipPlanes = 29
}
export declare enum IfcMaterialHighlightIndex {
    None = 0,// 0
    One = 1,// 1
    Two = 2,// 2
    Three = 3
}
export type ColoredHighlightIndexes = Exclude<IfcMaterialHighlightIndex, IfcMaterialHighlightIndex.None>;
export declare class IfcMaterial extends DitheringMaterial {
    readonly diffuseTexture: LazyResizableRawTexture;
    readonly propertiesTexture: LazyResizableRawTexture;
    readonly ditherTexture: DitherTexture;
    private static readonly _tmp;
    constructor(name: string, scene: Scene, renderingInfo: ProductMeshesGroupRenderInfo, diffuseTexture: LazyResizableRawTexture, propertiesTexture: LazyResizableRawTexture, ditherTexture: DitherTexture);
    getUniformsAndDefinesAndSamplers(): UniformsAndDefinesAndSamplers;
    bindFunction(mesh: AbstractMesh): void;
    getFragmentSource(): string;
    getVertexSource(): string;
}
//# sourceMappingURL=IfcMaterial.d.ts.map