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 _textureAllocationsController;
    templateShader(): undefined;
    protected _template_shader_for_shader_name(shader_name: ShaderName): string;
    compile(): void;
    rootNodesByShaderName(shader_name: ShaderName, rootNodes: BaseGlNodeType[]): BaseGlNodeType[];
    setup_shader_names_and_variables(): void;
    private _updateShaders;
    add_output_inputs(output_child: OutputGlNode): void;
    add_globals_outputs(globals_node: GlobalsGlNode): void;
    allow_attribute_exports(): boolean;
    textureAllocationsController(): TextureAllocationsController;
    create_shader_configs(): import("../../configs/ShaderConfig").ShaderConfig[];
    create_variable_configs(): never[];
    shaderNames(): ShaderName[];
    inputNamesForShaderName(root_node: BaseGlNodeType, shader_name: ShaderName): string[];
    protected insertDefineAfter(shader_name: ShaderName): string;
    protected insertBodyAfter(shader_name: ShaderName): string;
    protected linesToRemove(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;
    setNodeLinesAttribute(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;
}
