import { Viewer, ScreenSpaceEventType, Entity } from 'cesium'; import { EventArgs } from '@bin/typings/Event'; export declare type ListenCallback = (movement: EventArgs, substance: T) => void; export declare type ExternalListenCallback = (movement: EventArgs) => void; export declare type EventType = 'LEFT_DOWN' | 'LEFT_UP' | 'LEFT_CLICK' | 'LEFT_DOUBLE_CLICK' | 'RIGHT_DOWN' | 'RIGHT_UP' | 'RIGHT_CLICK' | 'MIDDLE_DOWN' | 'MIDDLE_UP' | 'MIDDLE_CLICK' | 'MOUSE_MOVE' | 'WHEEL' | 'PINCH_START' | 'PINCH_MOVE' | 'PINCH_END'; export default class Subscriber { private _viewer; private _handler; private _eventCollection; private _externalEventCollection; private readonly _eventTypeList; /** * 是否被销毁 */ get isDestroy(): boolean; private _isDestroy; constructor(viewer: Viewer, element?: HTMLCanvasElement); private _initListener; private _eventRegister; /** * @description 为Entity添加监听事件 * * @event * * @param {Function} callback 需要相应的事件 * * @param {EventType} eventType 事件类型 */ add(substances: T | T[], callback: ListenCallback, eventType: EventType): void; /** * @description 添加特定事件,与add不同在于该事件不会过滤Entity * @param callback 事件处理函数 * @param eventType 事件类型 * @return {string} Event Id 事件移除时需要提供事件ID */ addExternal(callback: ExternalListenCallback, eventType: EventType): string; /** *@description 移除指定Substance的相应事件 * @param substances 需要移除事件的Substance * @param eventType 需要移除的时间类型 */ remove(substances: T | T[], eventType: EventType): void; removeExternal(ids: string | string[], eventType?: EventType): void; private _searchExternal; static removeNative(viewer: Viewer, eventType: EventType): void; static convertCesiumEventType(subscriberEventType: EventType): ScreenSpaceEventType; destroy(): void; }