import { BaseViewerType } from '../_Base';
import { BaseSceneEventsControllerType } from '../../scene/utils/events/_BaseEventsController';
import { EmitterElementOrWindow } from '../../../core/event/CoreEventEmitter';
import { EventData, EventType } from '../../../core/event/EventData';
type ViewerEventListener = (e: Event) => void;
interface EventListenerWithData {
    listener: ViewerEventListener;
    data: EventData;
}
type ListenerByEventType = Map<EventType, EventListenerWithData>;
export declare class ViewerEventsController {
    protected viewer: BaseViewerType;
    protected _eventTypes: Map<string, Map<EmitterElementOrWindow, ListenerByEventType>>;
    constructor(viewer: BaseViewerType);
    removeEvents(eventsController: BaseSceneEventsControllerType, _canvas?: HTMLCanvasElement): void;
    updateEvents(eventsController: BaseSceneEventsControllerType): void;
    private _mapForEmitter;
    camera(): import("three").Camera;
    canvas(): HTMLCanvasElement;
    init(): void;
    unmount(): void;
    registeredEventTypes(): string[];
}
export {};
