import { ShaderMaterial } from 'three';
import { BaseShaderAssemblerRayMarchingAbstract } from './_BaseRayMarchingAbstract';
import { ShaderName } from '../../../../utils/shaders/ShaderName';
import { OutputGlNode } from '../../../Output';
import { GlConnectionPointType, GlConnectionPoint } from '../../../../utils/io/connections/Gl';
import { ShaderConfig } from '../../configs/ShaderConfig';
import { VariableConfig } from '../../configs/VariableConfig';
export declare class ShaderAssemblerRayMarchingApplyMaterial extends BaseShaderAssemblerRayMarchingAbstract {
    templateShader(): {
        vertexShader: string;
        fragmentShader: string;
        uniforms: import("../../../gl/raymarching/uniforms").RayMarchingUniforms;
    };
    createMaterial(): ShaderMaterial;
    add_output_inputs(output_child: OutputGlNode): void;
    static create_globals_node_output_connections(): (GlConnectionPoint<GlConnectionPointType.VEC3> | GlConnectionPoint<GlConnectionPointType.FLOAT>)[];
    create_globals_node_output_connections(): (GlConnectionPoint<GlConnectionPointType.VEC3> | GlConnectionPoint<GlConnectionPointType.FLOAT>)[];
    protected insertDefineAfter(shaderName: ShaderName): string | undefined;
    protected insertBodyAfter(shaderName: ShaderName): string | undefined;
    protected linesToRemove(shaderName: ShaderName): string[] | undefined;
    create_shader_configs(): ShaderConfig[];
    static create_variable_configs(): VariableConfig[];
    create_variable_configs(): VariableConfig[];
    updateShaders(): void;
    private _removeNestedReflection;
    private _removeNestedRefraction;
}
