import * as THREE from 'three';
import { PBMMaterial, PBMPointCloudShaderType, PBMClipperParameter, PBMCustomShader, PBMPointSize, PBMPointShape, PBMPointBack, PBMColorStyle, PBMRoofStyle, PBMFloorStyle } from "./pbmMaterial";
export interface PBMPointCloudMaterialParameters extends THREE.MaterialParameters {
    vertexMarks?: boolean;
    pointScale?: number;
    pointMinPixel?: number;
    pointMaxPixel?: number;
    pointSize?: PBMPointSize;
    pointShape?: PBMPointShape;
    pointBack?: PBMPointBack;
    modelAlpha?: number;
    colorStyle?: PBMColorStyle;
    constantColor?: THREE.Vector3;
    floorIndex?: number;
    shownFloorIndex?: number;
    roofStyle?: PBMRoofStyle;
    floorStyle?: PBMFloorStyle;
    gradientTexture?: THREE.Texture | null;
    brightness?: number;
    colorSaturation?: number;
    colorBrightness?: number;
    outlineGain?: number;
    distanceGain?: number;
    useHQWeight?: boolean;
    useHQDepth?: boolean;
    depthOffset?: number;
    modelBoundingMin?: THREE.Vector3;
    modelBoundingMax?: THREE.Vector3;
    clippers?: PBMClipperParameter[];
    customShaders?: PBMCustomShader[];
}
declare class PBMPointCloudMaterial extends PBMMaterial {
    readonly isPBMPointCloudMaterial: true;
    readonly isShaderMaterial: true;
    readonly shaderType: PBMPointCloudShaderType;
    vertexMarks: boolean;
    pointScale: number;
    pointMinPixel: number;
    pointMaxPixel: number;
    pointSize: PBMPointSize;
    pointShape: PBMPointShape;
    pointBack: PBMPointBack;
    modelAlpha: number;
    colorStyle: PBMColorStyle;
    constantColor: THREE.Vector3;
    floorIndex: number;
    shownFloorIndex: number;
    roofStyle: PBMRoofStyle;
    floorStyle: PBMFloorStyle;
    gradientTexture: THREE.Texture | null;
    brightness: number;
    colorSaturation: number;
    colorBrightness: number;
    outlineGain: number;
    distanceGain: number;
    useHQWeight: boolean;
    useHQDepth: boolean;
    depthOffset: number;
    modelBoundingMin: THREE.Vector3;
    modelBoundingMax: THREE.Vector3;
    clipping: boolean;
    clippers: readonly PBMClipperParameter[];
    customShaders: readonly PBMCustomShader[];
    onBeforeRender?: (renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera, geometry: THREE.BufferGeometry | THREE.Geometry, object: THREE.Object3D, group: THREE.Group) => void;
    constructor(parameters?: PBMPointCloudMaterialParameters);
    copy(source: PBMPointCloudMaterial): this;
    clone(): this;
    /**
     * @deprecated
     * 已经不需要再被调用了
     */
    refreshUniforms(): void;
}
export { PBMPointCloudMaterial };
