import Abstract from './core/Abstract';
import Depth from './core/Depth';
import Color from './core/Color';
import Noise from './core/Noise';
import Fresnel from './core/Fresnel';
import Gradient from './core/Gradient';
import Matcap from './core/Matcap';
import Texture from './core/Texture';
import Displace from './core/Displace';
import Normal from './core/Normal';
import { LayerMaterialParameters, SerializedLayer, ShadingType } from './types';
import { ColorRepresentation, MeshBasicMaterialParameters, MeshLambertMaterialParameters, MeshPhongMaterialParameters, MeshPhysicalMaterialParameters, MeshStandardMaterialParameters, MeshToonMaterialParameters } from 'three';
import CustomShaderMaterial from 'three-custom-shader-material/vanilla';
declare type AllMaterialParams = MeshPhongMaterialParameters | MeshPhysicalMaterialParameters | MeshToonMaterialParameters | MeshBasicMaterialParameters | MeshLambertMaterialParameters | MeshStandardMaterialParameters;
declare class LayerMaterial extends CustomShaderMaterial {
    name: string;
    layers: Abstract[];
    lighting: ShadingType;
    constructor({ color, alpha, lighting, layers, name, ...props }?: LayerMaterialParameters & AllMaterialParams);
    genShaders(): {
        uniforms: any;
        vertexShader: string;
        fragmentShader: string;
    };
    refresh(): void;
    serialize(): SerializedLayer;
    set color(v: ColorRepresentation);
    get color(): ColorRepresentation;
    set alpha(v: number);
    get alpha(): number;
}
export { LayerMaterial, Abstract, Depth, Color, Noise, Fresnel, Gradient, Matcap, Texture, Displace, Normal };
