import { ShaderMaterial, Material } 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';
import { AssemblerGlControllerNode } from '../../Controller';
export declare class BaseShaderAssemblerRayMarchingRendered extends BaseShaderAssemblerRayMarchingAbstract {
    protected _gl_parent_node: AssemblerGlControllerNode;
    constructor(_gl_parent_node: AssemblerGlControllerNode);
    templateShader(): {
        vertexShader: string;
        fragmentShader: string;
        uniforms: import("../../../gl/raymarching/uniforms").RayMarchingUniforms;
    };
    createMaterial(): ShaderMaterial;
    protected _raymarchingLightsWorldCoordsDependent(): boolean;
    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 insertBodyAfter(shaderName: ShaderName): string | undefined;
    protected insertDefineAfter(shaderName: ShaderName): string | undefined;
    protected linesToRemove(shaderName: ShaderName): string[] | undefined;
    create_shader_configs(): ShaderConfig[];
    static create_variable_configs(): VariableConfig[];
    create_variable_configs(): VariableConfig[];
    private _applyMaterialAssembler;
    private _applyMaterialMaterial;
    setGlParentNode(gl_parent_node: AssemblerGlControllerNode): void;
    compileMaterial(material: Material): void;
    applyMaterialAssemblerFilterFragmentShader(fragmentShader: string): string;
}
