import { BaseGlShaderAssembler } from '../_Base';
import { AttributeGlNode } from '../../../Attribute';
import { TextureAllocationsController } from '../../utils/TextureAllocationsController';
import { BaseGlNodeType } from '../../../_Base';
import { GlobalsGlNode } from '../../../Globals';
import { ShaderName } from '../../../../utils/shaders/ShaderName';
import { OutputGlNode } from '../../../Output';
import { ShadersCollectionController } from '../../utils/ShadersCollectionController';
export declare class ShaderAssemblerParticles extends BaseGlShaderAssembler {
    private _texture_allocations_controller;
    get _template_shader(): undefined;
    protected _template_shader_for_shader_name(shader_name: ShaderName): string;
    compile(): void;
    root_nodes_by_shader_name(shader_name: ShaderName): BaseGlNodeType[];
    leaf_nodes_by_shader_name(shader_name: ShaderName): BaseGlNodeType[];
    setup_shader_names_and_variables(): void;
    update_shaders(): void;
    add_output_inputs(output_child: OutputGlNode): void;
    add_globals_outputs(globals_node: GlobalsGlNode): void;
    allow_attribute_exports(): boolean;
    get texture_allocations_controller(): TextureAllocationsController;
    create_shader_configs(): import("../../configs/ShaderConfig").ShaderConfig[];
    create_variable_configs(): never[];
    get shader_names(): ShaderName[];
    input_names_for_shader_name(root_node: BaseGlNodeType, shader_name: ShaderName): string[];
    protected insert_define_after(shader_name: ShaderName): string;
    protected insert_body_after(shader_name: ShaderName): string;
    protected lines_to_remove(shader_name: ShaderName): string[];
    add_export_body_line(export_node: BaseGlNodeType, input_name: string, input: BaseGlNodeType, variable_name: string, shaders_collection_controller: ShadersCollectionController): void;
    set_node_lines_output(output_node: BaseGlNodeType, shaders_collection_controller: ShadersCollectionController): void;
    set_node_lines_attribute(attribute_node: AttributeGlNode, shaders_collection_controller: ShadersCollectionController): void;
    set_node_lines_globals(globals_node: GlobalsGlNode, shaders_collection_controller: ShadersCollectionController): void;
    private _handle_globals_time;
    private _handle_globals_default;
}
