import { AbstractMesh, Scene } from '../babylonjs-import';
import { LazyResizableRawTexture } from '../LazyResizableRawTexture';
import { ProductMeshesGroupRenderInfo } from '../ProductMeshesGroupRenderInfo';
import { CullingMaterial, UniformsAndDefinesAndSamplers } from './CullingMaterial';
export declare const DISCARD_DITHER_TRANSPARENT = "discardDitherTransparent";
export declare const IS_BABYLON_MESH = "isBabylonMesh";
export declare const BABYLON_MESH_ALPHA = "babylonMeshAlpha";
/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
export declare abstract class CustomDepthMaterial extends CullingMaterial {
    readonly diffuseTexture: LazyResizableRawTexture;
    readonly propertiesTexture?: LazyResizableRawTexture | undefined;
    storeNonLinearDepth: boolean;
    private _requiresWorldSpace;
    private _shortFrustumProjectionMatrixState;
    getFragmentSource(): string;
    getVertexSource(): string;
    constructor(name: string, scene: Scene, renderingInfo: ProductMeshesGroupRenderInfo, diffuseTexture: LazyResizableRawTexture, propertiesTexture?: LazyResizableRawTexture | undefined);
    getUniformsAndDefinesAndSamplers(): UniformsAndDefinesAndSamplers;
    setLinearDepthMode(storeNonLinearDepth: boolean): void;
    bindFunction(mesh: AbstractMesh): void;
}
//# sourceMappingURL=CustomDepthMaterial.d.ts.map