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 ShaderAssemblerCloth 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(exportNode: BaseGlNodeType, inputName: string, input: BaseGlNodeType, variableName: string, linesController: ShadersCollectionController): void;
    set_node_lines_output(outputNode: BaseGlNodeType, linesController: ShadersCollectionController): void;
    setNodeLinesAttribute(attributeNode: AttributeGlNode, linesController: ShadersCollectionController): void;
    set_node_lines_globals(globals_node: GlobalsGlNode, linesController: ShadersCollectionController): void;
    private _handleGlobalsUniform;
    private _handleGlobalsPosition;
}
