import { BaseJsShaderAssembler, SingleBodyFunctionData, SpareParamOptions } from '../_Base';
import { JsShaderConfig } from '../../configs/ShaderConfig';
import { VariableConfig } from '../../configs/VariableConfig';
import { OutputJsNode } from '../../../Output';
import { GlobalsJsNode } from '../../../Globals';
import { JsLinesCollectionController } from '../../utils/JsLinesCollectionController';
import { ParamOptions } from '../../../../../params/utils/OptionsController';
import type { AttributeJsNode } from '../../../Attribute';
export declare class JsAssemblerObjectBuilder extends BaseJsShaderAssembler {
    makeFunctionNodeDirtyOnChange(): boolean;
    templateShader(): {
        main: string;
    };
    spareParamsOptions(options: SpareParamOptions): ParamOptions;
    functionData(): SingleBodyFunctionData | undefined;
    defaultObjectVariable(): string;
    defaultObject3DMaterialVariable(): string;
    defaultPrimitiveGraph(): string;
    updateFunction(): void;
    add_output_inputs(outputNode: OutputJsNode): void;
    add_globals_outputs(globals_node: GlobalsJsNode): void;
    create_shader_configs(): JsShaderConfig[];
    create_variable_configs(): VariableConfig[];
    setNodeLinesOutput(outputNode: OutputJsNode, linesController: JsLinesCollectionController): void;
    setNodeLinesGlobals(globalsNode: GlobalsJsNode, linesController: JsLinesCollectionController): void;
    setNodeLinesAttribute(attributeNode: AttributeJsNode, linesController: JsLinesCollectionController): void;
}
