import * as THREE from 'three'; import { Abstract } from './vanilla'; export declare const BlendModes: { [key: string]: string; }; export declare type BlendMode = 'normal' | 'add' | 'subtract' | 'multiply' | 'lighten' | 'darken' | 'divide' | 'overlay' | 'screen' | 'softlight' | 'reflect' | 'negation'; export declare const NoiseTypes: { [key: string]: string; }; export declare type NoiseType = 'perlin' | 'simplex' | 'cell' | 'curl' | 'white'; export declare const MappingTypes: { [key: string]: string; }; export declare type MappingType = 'local' | 'world' | 'uv'; export declare const ShadingTypes: { [key: string]: new () => THREE.Material; }; export declare type ShadingType = 'phong' | 'physical' | 'toon' | 'basic' | 'lambert' | 'standard'; export interface BaseProps { color?: THREE.ColorRepresentation | THREE.Color; alpha?: number; name?: string; } export interface LayerMaterialParameters { layers?: Abstract[]; color?: THREE.ColorRepresentation | THREE.Color; alpha?: number; lighting?: ShadingType; name?: string; } export declare type LayerMaterialProps = Omit; export interface LayerProps { mode?: BlendMode; name?: string; visible?: boolean; [key: string]: any; } export interface ColorProps extends LayerProps { color?: THREE.ColorRepresentation | THREE.Color; alpha?: number; } export interface NormalProps extends LayerProps { direction?: THREE.Vector3 | [number, number, number]; alpha?: number; } export interface DepthProps extends LayerProps { colorA?: THREE.ColorRepresentation | THREE.Color; colorB?: THREE.ColorRepresentation | THREE.Color; alpha?: number; near?: number; far?: number; origin?: THREE.Vector3 | [number, number, number]; mapping?: 'vector' | 'world' | 'camera'; } export interface NoiseProps extends LayerProps { colorA?: THREE.ColorRepresentation | THREE.Color; colorB?: THREE.ColorRepresentation | THREE.Color; colorC?: THREE.ColorRepresentation | THREE.Color; colorD?: THREE.ColorRepresentation | THREE.Color; alpha?: number; mapping?: MappingType; type?: NoiseType; scale?: number; offset?: THREE.Vector3 | [number, number, number]; } export interface DisplaceProps extends LayerProps { strength?: number; scale?: number; mapping?: MappingType; type?: NoiseType; offset?: THREE.Vector3 | [number, number, number]; } export interface FresnelProps extends LayerProps { color?: THREE.ColorRepresentation | THREE.Color; alpha?: number; power?: number; intensity?: number; bias?: number; } export interface GradientProps extends LayerProps { colorA?: THREE.ColorRepresentation | THREE.Color; colorB?: THREE.ColorRepresentation | THREE.Color; axes?: 'x' | 'y' | 'z'; alpha?: number; contrast?: number; start?: number; end?: number; mapping?: MappingType; } export interface MatcapProps extends LayerProps { map?: THREE.Texture; alpha?: number; } export interface TextureProps extends LayerProps { map?: THREE.Texture; alpha?: number; } export interface SerializedLayer { constructor: string; properties: { [name: string]: any; }; }