///
import { ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { Subscription } from 'rxjs/internal/Subscription';
import { ConfService } from '../../../services';
import { CartService } from '../../services/cart.service';
import * as i0 from "@angular/core";
export declare class GeofenceComponent implements OnChanges, OnDestroy {
private cartService;
protected confService: ConfService;
gmap: ElementRef;
areaCords: EventEmitter;
area: string;
defaultGeoLocation: string;
pos: google.maps.LatLngLiteral;
allowGeofence: boolean;
map: google.maps.Map;
lat: number;
lng: number;
polygonCoords: any[];
coordinates: any;
storeSubscription: Subscription;
marker: any;
rangeArea: any;
node: any;
constructor(cartService: CartService, confService: ConfService);
/**
* @description Bind google maps API to the head tag with dynamic key.
* @param apiKey
* @author Mostafa Mahmoud
*/
loadScript(apiKey: any): void;
/**
* @description Initialize google map with default options.
* @author Mostafa Mahmoud
*/
initMap(): void;
ngOnChanges(changes: SimpleChanges): void;
/**
* @description Add the marker at the clicked location, and add the next-available label
* from the array of alphabetical characters.
* @param location
* @author Mostafa Mahmoud
*/
addMarker(location: google.maps.LatLngLiteral): void;
/**
* @description Drow polygon area from givien coordinates array.
* @param coords
* @author Mostafa Mahmoud
*/
polygonDrawer(coords: any): void;
/**
* @description validate that marker inRange or not.
* @param areaObj
* @author Mostafa Mahmoud
*/
geoFenceValidation(areaObj: any): void;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}