import { ApplicationRef, ComponentFactoryResolver, EventEmitter, Injector, OnInit, Type } from '@angular/core'; import * as GeoJSON from 'geojson'; import { PopupOptions } from 'mapbox-gl'; import { LJAMapComponent } from './map'; export interface PopupsModel { /** Special property multiple for component to render when multiple clicked */ multiple?: Type; /** Component to render for each layer keyed by Layer ID */ [layerId: string]: Type; } export interface PopupComponent { /** GeoJSON feature (for single clicked feature) or array for multiple features clicked */ data: GeoJSON.Feature | GeoJSON.Feature[]; } export declare class LJAPopupsDirective implements OnInit { private _appRef; private _componentFactoryResolver; private _injector; private _mapComponent; cssClass: boolean; popups: PopupsModel; popupOptions: PopupOptions; /** Emitted on popup close with GeoJSON feature bound to popup (or array for multiple features) */ popupClose: EventEmitter | GeoJSON.Feature[]>; /** Emitted on popup open with GeoJSON feature bound to popup (or array for multiple features) */ popupOpen: EventEmitter | GeoJSON.Feature[]>; constructor(_appRef: ApplicationRef, _componentFactoryResolver: ComponentFactoryResolver, _injector: Injector, _mapComponent: LJAMapComponent); ngOnInit(): void; private _startPopup; /** * Add a popup to the map * @param map - Map control to add the popup * @param lngLat - Location to anchor the popup * @param Component - Component class to generate component instance and use as popup content * @param data - Feature data to bind to the component instance `data` property */ private _renderPopup; /** Create a component instance, attach to the Angular application, and return the container DOM element */ private _createComponent; }