import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
import { Store } from '@ngrx/store';
import View from 'ol/View';
import { Subscription } from 'rxjs';
import { MangolLayer } from '../../classes/Layer';
import { MangolConfig } from '../../interfaces/config.interface';
import { MangolControllersPositionStateModel } from './../../store/controllers/controllers.reducers';
import * as fromMangol from './../../store/mangol.reducers';
import { MapService } from './map.service';
export declare class MapComponent implements OnInit, AfterViewInit, OnDestroy {
    private store;
    private mapService;
    config: MangolConfig;
    target: string;
    cursorStyle: any;
    configSubscription: Subscription;
    layersSubscription: Subscription;
    cursorModeSubscription: Subscription;
    mapSubscription: Subscription;
    positionSubscription: Subscription;
    pointerMoveFunction: any;
    position: MangolControllersPositionStateModel;
    defaultMap: {
        target: string;
        layers: MangolLayer[];
        view: View;
    };
    /**
     *
     * @param store Ngrx store
     * @param mapService
     */
    constructor(store: Store<fromMangol.MangolState>, mapService: MapService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Creates the pointermove event handler function
     * @param evt
     */
    private _createPointerMoveFunction;
    /**
     * Formats a pair of coordinates bz a given precision
     * @param coords
     */
    private _formatCoordinates;
    /**
     * Iterates over the layers and layergroups to get the MangolLayer objects which can be added to the map
     * @param layers an array of MangolLayer or MangolLayerGroup objects
     */
    private processLayersAndLayerGroups;
    /**
     * Processes MangolLayers
     * @param layer the MangolLayer object to process
     * @param layers the array of MangolLayers
     */
    private processLayer;
    /**
     * Processes MangolLayerGroups
     * @param group the MangolLayerGroup object to process
     * @param layers the array of MangolLayers
     */
    private processLayerGroup;
    onEnterOrLeaveMap(entered: boolean): void;
}
