import { PolyScene } from '../../PolyScene';
import { BaseInputEventNodeType } from '../../../nodes/event/_BaseInput';
import { BaseSceneEventsController } from './_BaseEventsController';
import { SceneEventsController } from './SceneEventsController';
import { KeyboardEventsController } from './KeyboardEventsController';
import { MouseEventsController } from './MouseEventsController';
import { PointerEventsController } from './PointerEventsController';
export declare class SceneEventsDispatcher {
    scene: PolyScene;
    private _keyboard_events_controller;
    private _mouse_events_controller;
    private _pointer_events_controller;
    private _scene_events_controller;
    private _controllers;
    constructor(scene: PolyScene);
    registerEventNode(node: BaseInputEventNodeType): void;
    unregisterEventNode(node: BaseInputEventNodeType): void;
    updateViewerEventListeners(node: BaseInputEventNodeType): void;
    traverseControllers(callback: (controller: BaseSceneEventsController<Event, BaseInputEventNodeType>) => void): void;
    private _find_or_create_controller_for_node;
    get keyboardEventsController(): KeyboardEventsController;
    get mouseEventsController(): MouseEventsController;
    get pointerEventsController(): PointerEventsController;
    get sceneEventsController(): SceneEventsController;
    private _create_controller;
}
