import { PolyScene } from '../../PolyScene';
import { BaseInputEventNodeType } from '../../../nodes/event/_BaseInput';
import { BaseSceneEventsController } from './_BaseEventsController';
import { SceneEventsController } from './SceneEventsController';
import { DragEventsController } from './DragEventsController';
import { KeyboardEventsController } from './KeyboardEventsController';
import { MouseEventsController } from './MouseEventsController';
import { PointerEventsController } from './PointerEventsController';
import { WindowEventsController } from './WindowEventsController';
import { TouchEventsController } from './TouchEventsController';
import { SceneConnectionTriggerDispatcher } from './ConnectionTriggerDispatcher';
import { Raycaster } from 'three';
import { ActorEvaluatorGenerator } from '../../../nodes/js/code/assemblers/actor/ActorEvaluatorGenerator';
export declare class SceneEventsDispatcher {
    scene: PolyScene;
    private _controllers;
    readonly sceneEventsController: SceneEventsController;
    private _keyboardEventsController?;
    private _mouseEventsController?;
    private _dragEventsController?;
    private _windowEventsController?;
    private _touchEventsController?;
    readonly pointerEventsController: PointerEventsController;
    constructor(scene: PolyScene);
    registerEvaluatorGenerator(evaluatorGenerator: ActorEvaluatorGenerator): void;
    unregisterEvaluatorGenerator(evaluatorGenerator: ActorEvaluatorGenerator): void;
    registerEventNode(node: BaseInputEventNodeType): void;
    unregisterEventNode(node: BaseInputEventNodeType): void;
    updateViewerEventListeners(node: BaseInputEventNodeType): void;
    traverseControllers(callback: (controller: BaseSceneEventsController<Event, BaseInputEventNodeType>) => void): void;
    setRaycaster(raycaster: Raycaster): void;
    private _findOrCreateControllerForEventNode;
    private _findOrCreateControllerForEvaluator;
    private _findOrCreateControllerForEventInputType;
    private _findOrCreateControllerForJsType;
    get keyboardEventsController(): KeyboardEventsController;
    get mouseEventsController(): MouseEventsController;
    get dragEventsController(): DragEventsController;
    get windowEventsController(): WindowEventsController;
    get touchEventsController(): TouchEventsController;
    private _createController;
    private _connectionTriggerDispatcher;
    get connectionTriggerDispatcher(): SceneConnectionTriggerDispatcher;
}
