/**
 * processes input events
 *
 *
 */
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { TypedJsNode } from './_Base';
import { BaseCodeProcessor } from '../../../core/code/FunctionBuilderUtils';
import { JsLinesCollectionController } from './code/utils/JsLinesCollectionController';
import { JsType } from '../../poly/registers/nodes/types/Js';
interface CompileOptions {
    triggerFunctionNode: boolean;
}
export declare const JS_CODE_DEFAULT_TS = "\nexport class CodeJsProcessor extends BaseCodeJsProcessor {\n\toverride initializeProcessor(){\n\t\tthis.io.inputs.setNamedInputConnectionPoints([\n\t\t\tnew JsConnectionPoint('myBoolParam', JsConnectionPointType.BOOLEAN),\n\t\t]);\n\t\tthis.io.outputs.setNamedOutputConnectionPoints([\n\t\t\tnew JsConnectionPoint(JsConnectionPointType.TRIGGER, JsConnectionPointType.TRIGGER),\n\t\t]);\n\t}\n\toverride setTriggerableLines(controller: JsLinesCollectionController) {\n\t\tconst object3D = this.inputObject3D(this, controller);\n\t\tconst myBoolParam = this.variableForInput(controller, 'myBoolParam');\n\n\t\tconst bodyLines = [\n\t\t\tobject3D + '.position.y += ' + myBoolParam + ' ? -1 : 1;',\n\t\t\tobject3D + '.updateMatrix()'\n\t\t];\n\t\tthis.addTriggerableLines(controller, bodyLines);\n\t}\n}\n";
export declare class BaseCodeJsProcessor extends BaseCodeProcessor {
    protected node: CodeJsNode;
    constructor(node: CodeJsNode);
    get pv(): import("../utils/params/ParamsValueAccessor").ParamsValueAccessorType<CodeJsParamsConfig>;
    get p(): import("../utils/params/ParamsAccessor").ParamsAccessorType<CodeJsParamsConfig>;
    get io(): import("../utils/io/IOController").IOController<import("../../poly/NodeContext").NodeContext.JS>;
    initializeProcessor(): void;
    setTriggerableLines(controller: JsLinesCollectionController): void;
    inputObject3D(processor: BaseCodeJsProcessor, controller: JsLinesCollectionController): string;
    protected variableForInput(controller: JsLinesCollectionController, inputName: string): string;
    protected addTriggerableLines(controller: JsLinesCollectionController, bodyLines: string[]): void;
}
declare class CodeJsParamsConfig extends NodeParamsConfig {
    codeTypescript: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    codeJavascript: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
}
export declare class CodeJsNode extends TypedJsNode<CodeJsParamsConfig> {
    paramsConfig: CodeJsParamsConfig;
    static BaseCodeJsProcessor: typeof BaseCodeJsProcessor;
    static type(): JsType;
    protected _processor: BaseCodeJsProcessor | undefined;
    initializeNode(): void;
    setTriggerableLines(controller: JsLinesCollectionController): void;
    private _lastCompiledCode;
    private _compilationSuccessful;
    compiled(): boolean;
    compile(options: CompileOptions): void;
    static PARAM_CALLBACK_requestCompile(node: CodeJsNode): void;
}
export {};
