import { Color, MeshPhysicalMaterial, Side } from "three";
import { EMetalsType } from "../UI/Components/RightPanel/RightPanelInterface";
import { CADFiler } from "./CADFiler";
import { MaterialType } from "./IMaterialDefaultParam";
import { MaterialTableRecord } from "./MaterialTableRecord";
import { ObjectId } from "./ObjectId";
export interface IGoodProps {
    name: string;
    material: string;
    color: string;
}
export interface IHardwareItem {
    value: string | Array<[string, string]> | EMetalsType;
    checked: boolean;
}
export interface IHardwareProps {
    name: IHardwareItem;
    roomName: IHardwareItem;
    cabinetName: IHardwareItem;
    factory: IHardwareItem;
    comments: IHardwareItem;
    actualExpr: IHardwareItem;
    brand: IHardwareItem;
    model: IHardwareItem;
    spec: IHardwareItem;
    count: IHardwareItem;
    unit: IHardwareItem;
    DataList: IHardwareItem;
    type: IHardwareItem;
    goods: {
        goodsSn: string;
        goodsId: string;
        checked: boolean;
    };
    applyGoods: {
        useGoodsName: boolean;
        useGoodsModel: boolean;
        useGoodsFactory: boolean;
        useGoodsBrand: boolean;
        useGoodsSpec: boolean;
    };
}
export declare enum UVType {
    LocalUV = 0,
    WorldUV = 1
}
export declare enum UVFullType {
    NONE = 0,
    U = 1,
    V = 2,
    UV = 3
}
export declare class PhysicalMaterialRecord extends MaterialTableRecord {
    type: MaterialType;
    ref: string;
    color: string;
    baseColorLuminance: number;
    baseColorLightColor: Color;
    baseColorDarkColor: Color;
    baseColorSaturability: number;
    transparent: boolean;
    opacity: number;
    opacityContrast: number;
    opacityBorder: number;
    opacityMaximum: number;
    opacityMinimum: number;
    refraction: number;
    matalness: number;
    bumpScale: number;
    roughness: number;
    specular: number;
    selfLuminous: number;
    useMap: boolean;
    map: ObjectId;
    useBumpMap: boolean;
    bumpMap: ObjectId;
    useRoughnessMap: boolean;
    roughnessMap: ObjectId;
    IsFull: boolean;
    side: Side;
    UVType: UVType;
    fresnelPO: number;
    fresnelST: number;
    fresnelLuminance: number;
    fresnelLightColor: Color;
    fresnelDarkColor: Color;
    sharpen: number;
    get UseWorldUV(): boolean;
    set UseWorldUV(b: boolean);
    UWroldRep: number;
    VWroldRep: number;
    UWroldRo: number;
    UWorldMove: number;
    VWorldMove: number;
    depthTest: boolean;
    private _goodsInfo;
    private _hardwareAttributeInfo;
    private _isMaterialLock;
    private material;
    constructor();
    get UvFullType(): UVFullType;
    Update(): Promise<void>;
    PhysicalMaterialUpdate(): Promise<void>;
    get Material(): MeshPhysicalMaterial;
    get GoodsInfo(): IGoodProps;
    set GoodsInfo(info: IGoodProps);
    get HardwareAttributeInfo(): IHardwareProps;
    set HardwareAttributeInfo(info: IHardwareProps);
    get IsMaterialLock(): boolean;
    set IsMaterialLock(v: boolean);
    ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=PhysicalMaterialRecord.d.ts.map