import { BaseCameraObjNodeType } from '../../../nodes/obj/_BaseCamera'; import { BaseInputEventNodeType } from '../../../nodes/event/_BaseInput'; import { SceneEventsDispatcher } from './EventsDispatcher'; import { BaseNodeType } from '../../../nodes/_Base'; import { Intersection } from 'three/src/core/Raycaster'; import { CoreGraphNodeId } from '../../../../core/graph/CoreGraph'; import { BaseViewerType } from '../../../viewers/_Base'; interface EventContextValue { node?: BaseNodeType; intersect?: Intersection; } export interface EventContext { viewer?: Readonly; event?: Readonly; cameraNode?: Readonly; value?: EventContextValue; } export declare abstract class BaseSceneEventsController { private dispatcher; protected _nodes_by_graph_node_id: Map; protected _require_canvas_event_listeners: boolean; constructor(dispatcher: SceneEventsDispatcher); registerNode(node: T): void; unregisterNode(node: T): void; abstract type(): string; abstract acceptedEventTypes(): string[]; processEvent(event_context: EventContext): void; updateViewerEventListeners(): void; private _active_event_types; activeEventTypes(): string[]; private _update_active_event_types; } export declare type BaseSceneEventsControllerType = BaseSceneEventsController; export declare class BaseSceneEventsControllerClass extends BaseSceneEventsController { type(): string; acceptedEventTypes(): string[]; } export {};