/**
 * Assigns actor nodes to input objects
 *
 *
 */
import { TypedSopNode } from './_Base';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { NodeContext } from '../../poly/NodeContext';
import { JsNodeChildrenMap } from '../../poly/registers/nodes/Js';
import { NodeCreateOptions } from '../utils/hierarchy/ChildrenController';
import { Constructor, valueof } from '../../../types/GlobalTypes';
import { BaseJsNodeType } from '../js/_Base';
import { AssemblerName } from '../../poly/registers/assemblers/_BaseRegister';
import { JsAssemblerController } from '../js/code/Controller';
import { JsAssemblerActor } from '../js/code/assemblers/actor/ActorAssembler';
import { ActorPersistedConfig } from '../js/code/assemblers/actor/ActorPersistedConfig';
import { ActorCompilationController } from '../../../core/actor/ActorCompilationController';
import { CoreObjectType, ObjectContent } from '../../../core/geometry/ObjectContent';
export declare class TypedActorSopNode<K extends NodeParamsConfig> extends TypedSopNode<K> {
    protected _childrenControllerContext: NodeContext;
    createNode<S extends keyof JsNodeChildrenMap>(node_class: S, options?: NodeCreateOptions): JsNodeChildrenMap[S];
    createNode<K extends valueof<JsNodeChildrenMap>>(node_class: Constructor<K>, options?: NodeCreateOptions): K;
    children(): BaseJsNodeType[];
    nodesByType<K extends keyof JsNodeChildrenMap>(type: K): JsNodeChildrenMap[K][];
    childrenAllowed(): boolean;
    sceneReadonly(): boolean;
    readonly persisted_config: ActorPersistedConfig;
    assemblerController(): JsAssemblerController<JsAssemblerActor> | undefined;
    usedAssembler(): Readonly<AssemblerName.JS_ACTOR>;
    protected _assemblerController: JsAssemblerController<JsAssemblerActor> | undefined;
    private _createAssemblerController;
    readonly compilationController: ActorCompilationController;
    compile(): void;
    functionData(): import("../js/code/assemblers/actor/ActorPersistedConfig").ActorFunctionData | undefined;
    updateObjectOnRemove(object: ObjectContent<CoreObjectType>, parent: ObjectContent<CoreObjectType>): void;
}
export type BaseActorSopNodeType = TypedActorSopNode<NodeParamsConfig>;
