import { AbstractMesh, IShaderMaterialOptions, Scene, ShaderMaterial, SubMesh } from '../babylonjs-import';
import { LazyResizableRawTexture } from '../LazyResizableRawTexture';
import { ProductMeshesGroupRenderInfo } from '../ProductMeshesGroupRenderInfo';
import { VisualSettings } from '../VisualSettings';
declare class ClipPlanesStrings {
    readonly MAX_CLIP_PLANES = 6;
    readonly CLIP_PLANES: string[];
    readonly CLIP_PLANES_COLORS: string[];
    readonly CLIP_PLANES_FADE_SIZES: string[];
    readonly CLIP_PLANE_UNIFORMS: string;
    readonly CLIP_PLANE_DISCARDING: string;
    readonly CLIP_PLANE_COLOR_BLENDING: string;
    readonly CLIP_PLANE_DEFINES: string[];
    constructor();
}
export declare const SIZE = "size";
export declare const DIFFUSE_SAMPLER = "diffuseSampler";
export declare const COLOR_BLENDING_ENABLED = "colorBlendingEnabled";
export declare const clipPlanesStrings: ClipPlanesStrings;
export type UniformsAndDefinesAndSamplers = Pick<IShaderMaterialOptions, 'uniforms'> & Pick<IShaderMaterialOptions, 'defines'> & Pick<IShaderMaterialOptions, 'samplers'>;
export declare abstract class CullingMaterial extends ShaderMaterial {
    private readonly _renderingInfo;
    private readonly _writeColorBlending;
    private readonly _excludeIgnoreDepthWriteCuttingPlanes;
    abstract getFragmentSource(): string;
    abstract getVertexSource(): string;
    protected isDirty: boolean;
    private _ignoreClipPlanesBitActive;
    private readonly _clipPlanes;
    constructor(name: string, scene: Scene, _renderingInfo: ProductMeshesGroupRenderInfo, options: Partial<IShaderMaterialOptions>, _writeColorBlending: boolean, _excludeIgnoreDepthWriteCuttingPlanes: boolean);
    isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances: boolean): boolean;
    protected get visualSettings(): VisualSettings;
    getUniformsAndDefinesAndSamplers(): UniformsAndDefinesAndSamplers;
    abstract readonly diffuseTexture: LazyResizableRawTexture;
    abstract readonly propertiesTexture?: LazyResizableRawTexture;
    bindFunction(mesh: AbstractMesh): void;
    updateShader(): void;
}
export {};
//# sourceMappingURL=CullingMaterial.d.ts.map