import * as THREE from "three";
import { PBMMaterial, PBMMeshShaderType, PBMPanoPicture, PBMPanoFilterValue, PBMPanoDepth, PBMRefinedScreen, PBMClipperParameter, PBMCustomShader, PBMAlphaMode, PBMTransition, PBMColorStyle, PBMRoofStyle, PBMFloorStyle } from "./pbmMaterial";
export interface PBMMeshMaterialParameters extends THREE.MaterialParameters, THREE.MaterialParameters, THREE.MeshBasicMaterialParameters, THREE.MeshPhongMaterialParameters, THREE.MeshStandardMaterialParameters {
    shaderType?: PBMMeshShaderType;
    vertexMarks?: boolean;
    colorAlpha?: number;
    alphaMode?: PBMAlphaMode;
    pano0?: PBMPanoPicture | null;
    pano1?: PBMPanoPicture | null;
    pano0Depth?: PBMPanoDepth | null;
    pano1Depth?: PBMPanoDepth | null;
    panoFilter?: PBMPanoFilterValue | null;
    refinedScreen?: PBMRefinedScreen | null;
    modelAlpha?: number;
    progress?: number;
    transition?: PBMTransition;
    colorStyle?: PBMColorStyle;
    constantColor?: THREE.Vector3;
    floorIndex?: number;
    shownFloorIndex?: number;
    roofStyle?: PBMRoofStyle;
    floorStyle?: PBMFloorStyle;
    gradientTexture?: THREE.Texture | null;
    brightness?: number;
    colorSaturation?: number;
    colorBrightness?: number;
    useHQWeight?: boolean;
    useHQDepth?: boolean;
    depthOffset?: number;
    modelBoundingMin?: THREE.Vector3;
    modelBoundingMax?: THREE.Vector3;
    clippers?: PBMClipperParameter[];
    customShaders?: PBMCustomShader[];
}
declare class PBMMeshMaterial extends PBMMaterial implements THREE.MeshBasicMaterial, THREE.MeshPhongMaterial, THREE.MeshStandardMaterial {
    readonly isPBMMeshMaterial: true;
    readonly isShaderMaterial: true;
    readonly isMeshBasicMaterial: boolean;
    readonly isMeshPhongMaterial: boolean;
    readonly isMeshStandardMaterial: boolean;
    readonly isMeshPhysicalMaterial: boolean;
    shaderType: PBMMeshShaderType;
    vertexTangents: boolean;
    color: THREE.Color;
    map: THREE.Texture | null;
    lightMap: THREE.Texture | null;
    lightMapIntensity: number;
    aoMap: THREE.Texture | null;
    aoMapIntensity: number;
    specularMap: THREE.Texture | null;
    specular: THREE.Color;
    shininess: number;
    roughnessMap: THREE.Texture | null;
    roughness: number;
    metalnessMap: THREE.Texture | null;
    metalness: number;
    alphaMap: THREE.Texture | null;
    combine: THREE.Combine;
    envMap: THREE.Texture | THREE.CubeTexture | null;
    envMapIntensity: number;
    reflectivity: number;
    refractionRatio: number;
    emissiveMap: THREE.Texture | null;
    emissive: THREE.Color;
    emissiveIntensity: number;
    bumpMap: THREE.Texture | null;
    bumpScale: number;
    normalMap: THREE.Texture | null;
    normalMapType: THREE.NormalMapTypes;
    normalScale: THREE.Vector2;
    displacementMap: THREE.Texture | null;
    displacementScale: number;
    displacementBias: number;
    clearcoat: number;
    clearcoatMap: THREE.Texture | null;
    clearcoatRoughness: number;
    clearcoatRoughnessMap: THREE.Texture | null;
    clearcoatNormalScale: THREE.Vector2;
    clearcoatNormalMap: THREE.Texture | null;
    sheen: THREE.Color | null;
    transparency: number;
    wireframe: boolean;
    wireframeLinewidth: number;
    wireframeLinecap: string;
    wireframeLinejoin: string;
    skinning: boolean;
    morphTargets: boolean;
    morphNormals: boolean;
    metal: boolean;
    vertexMarks: boolean;
    alphaMode: PBMAlphaMode;
    colorAlpha: number;
    pano0: PBMPanoPicture | null;
    pano1: PBMPanoPicture | null;
    pano0Depth: PBMPanoDepth | null;
    pano1Depth: PBMPanoDepth | null;
    panoFilter: PBMPanoFilterValue | null;
    refinedScreen: PBMRefinedScreen | null;
    modelAlpha: number;
    progress: number;
    transition: PBMTransition;
    colorStyle: PBMColorStyle;
    constantColor: THREE.Vector3;
    floorIndex: number;
    shownFloorIndex: number;
    roofStyle: PBMRoofStyle;
    floorStyle: PBMFloorStyle;
    gradientTexture: THREE.Texture | null;
    brightness: number;
    colorSaturation: number;
    colorBrightness: 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?: PBMMeshMaterialParameters | PBMMeshShaderType);
    copy(source: PBMMeshMaterial): this;
    clone(): this;
    /**
     * @deprecated
     * 已经不需要再被调用了
     */
    refreshUniforms(): void;
}
export { PBMMeshMaterial };
