import { EventEmitter } from '@angular/core'; import { ErrorEvent, EventData, GeolocateControl, Map, MapboxEvent, MapBoxZoomEvent, MapContextEvent, MapDataEvent, MapLayerMouseEvent, MapLayerTouchEvent, MapMouseEvent, MapSourceDataEvent, MapStyleDataEvent, MapTouchEvent, MapWheelEvent } from 'mapbox-gl'; export interface MapEvent { mapResize: EventEmitter; mapRemove: EventEmitter; mapMouseDown: EventEmitter; mapMouseUp: EventEmitter; mapMouseMove: EventEmitter; mapClick: EventEmitter; mapDblClick: EventEmitter; mapMouseOver: EventEmitter; mapMouseOut: EventEmitter; mapContextMenu: EventEmitter; mapTouchStart: EventEmitter; mapTouchEnd: EventEmitter; mapTouchMove: EventEmitter; mapTouchCancel: EventEmitter; mapWheel: EventEmitter; moveStart: EventEmitter & EventData>; move: EventEmitter & EventData>; moveEnd: EventEmitter & EventData>; mapDragStart: EventEmitter & EventData>; mapDrag: EventEmitter & EventData>; mapDragEnd: EventEmitter & EventData>; zoomStart: EventEmitter & EventData>; zoomEvt: EventEmitter & EventData>; zoomEnd: EventEmitter & EventData>; rotateStart: EventEmitter & EventData>; rotate: EventEmitter & EventData>; rotateEnd: EventEmitter & EventData>; pitchStart: EventEmitter & EventData>; pitchEvt: EventEmitter & EventData>; pitchEnd: EventEmitter & EventData>; boxZoomStart: EventEmitter; boxZoomEnd: EventEmitter; boxZoomCancel: EventEmitter; webGlContextLost: EventEmitter; webGlContextRestored: EventEmitter; mapLoad: EventEmitter; render: EventEmitter; mapError: EventEmitter; data: EventEmitter; styleData: EventEmitter; sourceData: EventEmitter; dataLoading: EventEmitter; styleDataLoading: EventEmitter; sourceDataLoading: EventEmitter; styleImageMissing: EventEmitter<{ id: string; } & EventData>; idle: EventEmitter; resize: EventEmitter; remove: EventEmitter; mouseDown: EventEmitter; mouseUp: EventEmitter; mouseMove: EventEmitter; click: EventEmitter; dblClick: EventEmitter; mouseOver: EventEmitter; mouseOut: EventEmitter; contextMenu: EventEmitter; touchStart: EventEmitter; touchEnd: EventEmitter; touchMove: EventEmitter; touchCancel: EventEmitter; wheel: EventEmitter; dragStart: EventEmitter & EventData>; drag: EventEmitter & EventData>; dragEnd: EventEmitter & EventData>; load: EventEmitter; error: EventEmitter; } export interface LayerEvents { layerClick: EventEmitter; layerDblClick: EventEmitter; layerMouseDown: EventEmitter; layerMouseUp: EventEmitter; layerMouseEnter: EventEmitter; layerMouseLeave: EventEmitter; layerMouseMove: EventEmitter; layerMouseOver: EventEmitter; layerMouseOut: EventEmitter; layerContextMenu: EventEmitter; layerTouchStart: EventEmitter; layerTouchEnd: EventEmitter; layerTouchCancel: EventEmitter; click: EventEmitter; dblClick: EventEmitter; mouseDown: EventEmitter; mouseUp: EventEmitter; mouseEnter: EventEmitter; mouseLeave: EventEmitter; mouseMove: EventEmitter; mouseOver: EventEmitter; mouseOut: EventEmitter; contextMenu: EventEmitter; touchStart: EventEmitter; touchEnd: EventEmitter; touchCancel: EventEmitter; } /** * in typescript 4.1 DOM interface Position and Coordinates renamed to GeolocationPosition GeolocationCoordinates * to avoid deprecation angular version < 11.0.0 we declared own Coordinates, Position interface */ export interface NgxMapboxGeolocationCoordinates { readonly accuracy: number; readonly altitude: number | null; readonly altitudeAccuracy: number | null; readonly heading: number | null; readonly latitude: number; readonly longitude: number; readonly speed: number | null; } export interface Position { coords: NgxMapboxGeolocationCoordinates; target: GeolocateControl; timestamp: number; type: string; } export declare type MapImageData = HTMLImageElement | ArrayBufferView | { width: number; height: number; data: Uint8Array | Uint8ClampedArray; } | ImageData | ImageBitmap; export interface MapImageOptions { pixelRatio: number; sdf: boolean; }