import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import * as L from 'leaflet';
import { MapComponent, MapConfig, MapService, PositionManagedObject } from '@c8y/ngx-components/map';
import { FormGroup } from '@angular/forms';
import { IManagedObject } from '@c8y/client';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare const defaultMapLocation: {
    readonly lat: number;
    readonly lng: number;
};
export declare class AssetLocationComponent implements OnInit, OnChanges, OnDestroy {
    private activatedRouter;
    private mapService;
    mapView: MapComponent;
    isEdit: boolean;
    locationMO: IManagedObject;
    form: FormGroup;
    config: MapConfig;
    assets: PositionManagedObject;
    isMarkerDraggable: boolean;
    isMapClickable: boolean;
    dragListener: L.LeafletEventHandlerFn;
    formSubscription: Subscription;
    showMap: boolean;
    constructor(activatedRouter: ActivatedRoute, mapService: MapService);
    ngOnInit(): Promise<void>;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    /**
     * This command is used to prefill the latitude and longitude values in the form when the marker is dragged.
     */
    onMarkerDrag(event: L.LeafletEvent): void;
    /**
     * This method is used to update the marker with the specified values and if any one of the values is not availble, sets
     * showWarning to true.
     * @param latitude - The latitude of the marker
     * @param longitude - The longitude of the marker
     */
    updateMarker(latitude: number, longitude: number): void;
    /**
     * This command is used to prefill the latitude and longitude values in the form on click of map.
     */
    onClickOfMap(event: L.LeafletMouseEvent): void;
    /**
     * Used to enable full screen of the map.
     */
    enableFullscreen(): void;
    /**
     * Checks if any one of the values i.e., latitude/longitude is undefined or null.
     * @param latitude Latitude value of the position
     * @param longitude Longitude value of the position
     * @returns returns true if any one of the values are both the values are missing else it returns false.
     */
    checkIfAnyValueIsMissing(latitude: number, longitude: number): boolean;
    /**
     * Sets the view of the map based on the position of marker.
     * @param latitude - Latitude of the marker
     * @param longitude Longitude of the marker
     */
    setView(latitude: number, longitude: number): void;
    setLatLngValues(latitude: number, longitude: number): [number, number];
    private isNullOrUndefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<AssetLocationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AssetLocationComponent, "c8y-asset-location", never, { "isEdit": { "alias": "isEdit"; "required": false; }; "locationMO": { "alias": "locationMO"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {}, never, never, false, never>;
}
//# sourceMappingURL=asset-location.component.d.ts.map