import { Observable } from 'rxjs' ; import { BaseImageryPlugin , IImageryPluginMetaData } from './base-imagery-plugin' ; import { IVisualizerEntity } from './visualizers/visualizers-entity' ; export type VisualizerInteractionTypes = 'click' | 'pointerMove' | 'doubleClick' | 'contextMenu' | 'drawInteractionHandler' | 'translateInteractionHandler' | 'labelTranslateHandler' | 'editAnnotationTranslateHandler' | 'modifyInteractionHandler' | 'selectMeasureLabelHandler' ; export const VisualizerInteractions = { click : 'click' , pointerMove : 'pointerMove' , doubleClick : 'doubleClick' , contextMenu : 'contextMenu' , drawInteractionHandler : 'drawInteractionHandler' , selectMeasureLabelHandler : 'selectMeasureLabelHandler' , translateInteractionHandler : 'translateInteractionHandler' , labelTranslateHandler : 'labelTranslateHandler' , editAnnotationTranslateHandler : 'editAnnotationTranslateHandler' , modifyInteractionHandler : 'modifyInteractionHandler' } ; export interface IImageryVisualizerMetaData extends IImageryPluginMetaData { readonly isHideable ? : boolean ; readonly dontRestrictToExtent ? : boolean ; readonly layerClassName ? : string ; } export abstract class BaseImageryVisualizer extends BaseImageryPlugin implements IImageryVisualizerMetaData { readonly isHideable ? : boolean ; readonly dontRestrictToExtent ? : boolean ; readonly layerClassName ? : string ; type : string ; source : any ; vector : any ; isHidden : boolean ; interactions : Map < VisualizerInteractionTypes , any > ; description param logicalEntities abstract setEntities ( logicalEntities ) ; description param logicalEntities abstract addOrUpdateEntities ( logicalEntities ) ; description param logicalEntityId abstract removeEntity ( logicalEntityId ) ; description abstract clearEntities ( ) ; description abstract getEntities ( ) ; description abstract setVisibility ( isVisible ) ; description param type param interactionInstance abstract addInteraction ( type , interactionInstance ) ; description param type param interactionInstance abstract removeInteraction ( type , interactionInstance ) ; } export type IBaseImageryVisualizerClass = new ( ... args ) => BaseImageryVisualizer ;