import type { Side, TextureFilter, PixelFormat, Wrapping, Mapping, Vector2 } from 'three';
import type * as THREE from 'three';
export type Texture = THREE.Texture;
type IUserData = {
    url?: string;
    basis?: string;
};
export type TextureMap = {
    id: string;
    name: string;
    texture: Texture | null | any;
};
export type ITexture = {
    url?: string;
    name?: string;
    orderName?: number;
    fullUrl?: string;
    basis?: string;
    parameter?: {
        wrapS: Wrapping;
        wrapT: Wrapping;
        format?: PixelFormat;
        filtering: TextureFilter;
        rotation: number;
        mapping: Mapping;
        offset: any;
        repeat: any;
    };
    userData?: IUserData;
};
export type INodeMaterial = {
    color?: string;
    type?: string;
    map?: ITexture | null | undefined;
    aoMapIntensity?: number;
    aoMap?: ITexture | null | undefined;
    emissive?: string;
    emissiveIntensity?: number;
    emissiveMap?: ITexture | null | undefined;
    normalScale?: number;
    normalMap?: ITexture | null | undefined;
    roughness?: number;
    roughnessMap?: ITexture | null | undefined;
    metalness?: number;
    metalnessMap?: ITexture | null | undefined;
    bumpScale?: number;
    bumpMap?: ITexture | null | undefined;
    displacementScale?: number;
    displacementMap?: ITexture | null | undefined;
    lightMapIntensity?: number;
    lightMap?: Texture;
    blending?: number;
    blendSrc?: number;
    blendSrcAlpha?: number;
    blendDst?: number;
    blendDstAlpha?: number;
    opacity?: number;
    transparent?: boolean;
    alphaTest?: number;
    alphaMap?: ITexture | null | undefined;
    clearcoat?: number;
    clearcoatMap?: ITexture | null | undefined;
    clearcoatRoughness?: number;
    clearcoatRoughnessMap?: ITexture | null | undefined;
    clearcoatNormal?: number;
    clearcoatNormalMap?: ITexture | null | undefined;
    transmission?: number;
    transmissionMap?: ITexture | null | undefined;
    anisotropy?: number;
    envMapIntensity?: number;
    ior?: number;
    reflectivity?: number;
    sheen?: string;
    sheenColor?: string;
    sheenColorMap?: ITexture | null | undefined;
    sheenRoughness?: number;
    sheenRoughnessMap?: ITexture | null | undefined;
    depthWrite?: boolean;
    side?: Side;
    specularIntensity?: number;
    specularColorMap?: ITexture | null | undefined;
    specularColor?: string;
};
export type TextureRotation = {
    id: string;
    name: string;
    rotation: number;
};
export type TextureRepeat = {
    id: string;
    name: string;
    repeat: Vector2;
};
export type MaterialColor = {
    id: string;
    color: string;
};
export type Metalness = {
    id: string;
    metalness: number;
};
export type Roughness = {
    id: string;
    roughness: number;
};
export type TextureOffset = {
    id: string;
    name: string;
    offset: Vector2;
};
export type TextureMapping = {
    id: string;
    name: string;
    mapping: Mapping | number;
};
export type TextureWrapping = {
    id: string;
    name: string;
    wrapT?: Wrapping | number;
    wrapS?: Wrapping | number;
};
export type TextureFiltering = {
    id: string;
    name: string;
    filtering: TextureFilter | number;
};
export type TextureFormat = {
    id: string;
    name: string;
    format: PixelFormat | number;
};
export type Reflectivity = {
    id: string;
    reflectivity: number;
};
export type IOR = {
    id: string;
    ior: number;
};
export type Intensity = {
    id: string;
    intensity: number;
};
export type DisplacementScale = {
    id: string;
    displacementScale: number;
};
export type NormalScale = {
    id: string;
    normalScale: number;
};
export type BumpScale = {
    id: string;
    bumpScale: number;
};
export type Sheen = {
    id: string;
    sheen: number;
};
export type SheenTint = {
    id: string;
    sheenColor: string;
};
export type SheenRoughness = {
    id: string;
    sheenRoughness: number;
};
export type Clearcoat = {
    id: string;
    clearcoat: number;
};
export type IScale = {
    id: string;
    scale: number;
};
export type ClearcoatRoughness = {
    id: string;
    clearcoatRoughness: number;
};
export type Transmission = {
    id: string;
    transmission: number;
};
export type AlphaModeValue = {
    id: string;
    mode: string;
};
export declare enum AlphaMode {
    'BLEND' = "BLEND",
    'MASK' = "MASK",
    'OPAQUE' = "OPAQUE"
}
export type OpacityValue = {
    id: string;
    opacity: number;
};
export type AlphaTestValue = {
    id: string;
    alphaTest: number;
};
export type InvertAlphaTexture = {
    id: string;
    enabled: boolean;
};
export type ISide = {
    id: string;
    side: Side;
};
export type IScreenShot = {
    isClosePage?: boolean;
};
export {};
