/**
 * processes input geometry with user-defined typescript.
 *
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { Object3D } from 'three';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { BaseCodeProcessor } from '../../../core/code/FunctionBuilderUtils';
export declare class BaseCodeSopProcessor extends BaseCodeProcessor {
    protected node: CodeSopNode;
    constructor(node: CodeSopNode);
    get pv(): import("../utils/params/ParamsValueAccessor").ParamsValueAccessorType<CodeSopParamsConfig>;
    get p(): import("../utils/params/ParamsAccessor").ParamsAccessorType<CodeSopParamsConfig>;
    initializeProcessor(): void;
    cook(inputCoreGroups: CoreGroup[]): void;
    protected setCoreGroup(coreGroup: CoreGroup): void;
    protected setObjects(objects: Object3D[]): void;
}
declare class CodeSopParamsConfig 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 CodeSopNode extends TypedSopNode<CodeSopParamsConfig> {
    paramsConfig: CodeSopParamsConfig;
    static BaseCodeSopProcessor: typeof BaseCodeSopProcessor;
    static type(): string;
    private _lastCompiledCode;
    private _processor;
    initializeNode(): void;
    cook(inputCoreGroups: CoreGroup[]): void;
    private _compileIfRequired;
    private _compile;
}
export {};
