import { Color, MeshLambertMaterialParameters, ShaderMaterial, ShaderMaterialParameters, Texture, Vector2 } from 'three';
export declare enum ContourColorMode {
    darken = 0,
    lighten = 1,
    mixed = 2
}
export type SurfaceMaterialParameters = ShaderMaterialParameters & MeshLambertMaterialParameters & {
    useColorRamp?: boolean;
    saturation?: number;
    brightness?: number;
    colorRampIndex?: number;
    colorRampReverse?: boolean;
    colorRampMin?: number;
    colorRampMax?: number;
    referenceDepth?: number;
    showContours?: boolean;
    contoursInterval?: number;
    contoursColorMode?: ContourColorMode;
    contoursColorModeFactor?: number;
    contoursColor?: string | number | Color;
    depthTexture?: Texture;
    normalTexture?: Texture;
};
/**
 * Shader material for `Surface` component.
 *
 * @see {@link Surface}
 */
export declare class SurfaceMaterial extends ShaderMaterial {
    isMeshSurfaceShader: boolean;
    normalScale: Vector2;
    map?: Texture;
    normalMap?: Texture;
    wireframeLinecap: string;
    wireframeLinejoin: string;
    flatShading: boolean;
    combine: number;
    normalMapType: number;
    constructor(parameters: SurfaceMaterialParameters);
    get color(): string;
    set color(value: string);
    get contoursColor(): string;
    set contoursColor(value: string);
    get useColorRamp(): any;
    set useColorRamp(value: any);
    get showContours(): any;
    set showContours(value: any);
    dispose(): void;
    onBeforeCompile(): void;
}
