import { EventEmitter, OnInit } from '@angular/core'; import { Feature } from 'geojson'; import { Control, Evented, IControl, LngLatBoundsLike, Map } from 'mapbox-gl'; import { LJAMapComponent } from './map'; export interface ControlOptions { position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; } export declare class ControlBase implements OnInit { protected _mapComponent: LJAMapComponent; protected MapboxControl: Control; controlInstance: any; options: ControlOptions; constructor(_mapComponent: LJAMapComponent); ngOnInit(): void; protected onAdd(map: Map): void; } export interface NavigationControlOptions extends ControlOptions { showCompass?: boolean; showZoom?: boolean; } export declare class LJANavigationControlDirective extends ControlBase { cssClass: boolean; protected MapboxControl: any; options: NavigationControlOptions; } export declare class LJAFullscreenControlDirective extends ControlBase { cssClass: boolean; protected MapboxControl: any; options: ControlOptions; } export interface GeocoderControlOptions extends ControlOptions { accessToken: string; zoom?: number; flyTo?: boolean; placeholder?: string; proximity?: { latitude: number; longitude: number; }; trackProximity?: boolean; bbox?: LngLatBoundsLike; types?: 'country' | 'region' | 'postcode' | 'district' | 'place' | 'locality' | 'neighborhood' | 'address' | 'poi'; country?: string; minLength?: number; limit?: number; language?: string; filter?: (feature: GeoJSON.Feature) => boolean; localGeocoder?: (query: string) => GeoJSON.FeatureCollection[]; } export declare class LJAGeocoderControlDirective extends ControlBase { cssClass: boolean; protected MapboxControl: any; options: GeocoderControlOptions; geocoderResult: EventEmitter>; geocoderClear: EventEmitter<{}>; onAdd(map: any): void; } export interface HomeControlOptions extends ControlOptions { bounds: LngLatBoundsLike; } export declare class HomeControl extends Evented implements IControl { private _container; private _map; options: HomeControlOptions; constructor(options?: Partial); onAdd(map: any): HTMLDivElement; onRemove(): void; getDefaultPosition(): string; setOptions(options: Partial): void; } export declare class LJAHomeControlDirective extends ControlBase { cssClass: boolean; protected MapboxControl: any; options: HomeControlOptions; } export interface ScaleControlOptions extends ControlOptions { maxWidth?: number; unit?: 'imperial' | 'metric' | 'nautical'; } export declare class LJAScaleControlDirective extends ControlBase { cssClass: boolean; protected MapboxControl: any; options: ScaleControlOptions; }