import { Object3D } from 'three';
import { PolyScene } from '../PolyScene';
import { ActorManualTriggersController } from './actors/ManualTriggersController';
import { ActorKeyboardEventsController } from './actors/ActorsKeyboardEventsController';
import { EvaluatorMethodName } from '../../nodes/js/code/assemblers/actor/ActorEvaluator';
import { ActorEvaluatorGenerator } from '../../nodes/js/code/assemblers/actor/ActorEvaluatorGenerator';
import { AssemblerControllerNode } from '../../nodes/js/code/Controller';
import { JsAssemblerActor } from '../../nodes/js/code/assemblers/actor/ActorAssembler';
import { ActorCompilationController } from '../../../core/actor/ActorCompilationController';
import { ObjectContent, CoreObjectType } from '../../../core/geometry/ObjectContent';
import { RayObjectIntersectionsHoverController } from './actors/rayObjectIntersection/RayObjectIntersectionsHoverController';
import { RayObjectIntersectionsPointerdownController } from './actors/rayObjectIntersection/RayObjectIntersectionsPointerdownController';
import { RayObjectIntersectionsPointerupController } from './actors/rayObjectIntersection/RayObjectIntersectionsPointerupController';
import { RayObjectIntersectionsClickController } from './actors/rayObjectIntersection/RayObjectIntersectionsClickController';
import { RayObjectIntersectionsMouseClickController } from './actors/rayObjectIntersection/RayObjectIntersectionsMouseClickController';
import { RayObjectIntersectionsContextmenuController } from './actors/rayObjectIntersection/RayObjectIntersectionsContextmenuController';
import { RayObjectIntersectionsLongPressController } from './actors/rayObjectIntersection/RayObjectIntersectionsLongPressController';
import { RayObjectIntersectionsSwipeController } from './actors/rayObjectIntersection/RayObjectIntersectionsSwipeController';
import { PointerdownController } from './actors/rayObjectIntersection/PointerdownController';
import { PointerupController } from './actors/rayObjectIntersection/PointerupController';
import { RayObjectIntersectionsDoubleClickController } from './actors/rayObjectIntersection/RayObjectIntersectionsDoubleClickController';
export declare abstract class ActorBuilderNode extends AssemblerControllerNode<JsAssemblerActor> {
    abstract readonly compilationController: ActorCompilationController;
}
export declare class ActorsManager {
    readonly scene: PolyScene;
    private _keyboardEventsController;
    private _manualTriggerController;
    constructor(scene: PolyScene);
    registerEvaluatorGenerator(evaluatorGenerator: ActorEvaluatorGenerator): void;
    unregisterEvaluatorGenerator(evaluatorGenerator: ActorEvaluatorGenerator): void;
    assignActorBuilder(object: ObjectContent<CoreObjectType>, node: ActorBuilderNode): void;
    objectActorNodeIds(object: ObjectContent<CoreObjectType>): number[] | undefined;
    get keyboardEventsController(): ActorKeyboardEventsController;
    get manualTriggerController(): ActorManualTriggersController;
    readonly rayObjectIntersectionClick: RayObjectIntersectionsClickController;
    readonly rayObjectIntersectionDoubleClick: RayObjectIntersectionsDoubleClickController;
    readonly rayObjectIntersectionMouseClick: RayObjectIntersectionsMouseClickController;
    readonly rayObjectIntersectionContextmenu: RayObjectIntersectionsContextmenuController;
    readonly rayObjectIntersectionHover: RayObjectIntersectionsHoverController;
    readonly rayObjectIntersectionLongPress: RayObjectIntersectionsLongPressController;
    readonly rayObjectIntersectionPointerdown: RayObjectIntersectionsPointerdownController;
    readonly rayObjectIntersectionPointerup: RayObjectIntersectionsPointerupController;
    readonly rayObjectIntersectionSwipe: RayObjectIntersectionsSwipeController;
    readonly pointerdown: PointerdownController;
    readonly pointerup: PointerupController;
    tick(): void;
    runOnEventSceneReset(): void;
    runOnEventScenePlay(): void;
    runOnEventScenePause(): void;
    runOnEventPerformanceChange(): void;
    private _onEventTickBound;
    private _onEventTick;
    private _onEventSceneResetBound;
    private _onEventSceneReset;
    private _onEventSceneResetTraverse;
    private _onEventScenePlayBound;
    private _onEventScenePlay;
    private _onEventScenePlayTraverse;
    private _onEventScenePauseBound;
    private _onEventScenePause;
    private _onEventScenePauseTraverse;
    private _onEventPerformanceChangeBound;
    private _onEventPerformanceChange;
    private _onEventPerformanceChangeTraverse;
    triggerEventNodes(object: Object3D, methodName: EvaluatorMethodName): void;
    triggerEventNode(node: ActorBuilderNode, object: Object3D, methodName: EvaluatorMethodName): void;
    private _triggerEvaluatorGenerator;
}
