///
import { ComponentInterface, EventEmitter } from "../../stencil-public-runtime";
export declare class Map implements ComponentInterface {
/**
* The Google Maps instance
*/
map: google.maps.Map;
/**
* The current list of map markers
*/
mapMarkers: google.maps.Marker[];
mapEl: HTMLElement;
/**
* When a marker on the map is clicked
*/
fireenjinTrigger: EventEmitter<{
trigger: string;
payload: {
marker: google.maps.Marker;
location: {
position: {
lat: number;
lng: number;
};
name: string;
icon: string;
payload?: any;
};
};
}>;
/**
* The Google Maps API Key
*/
apiKey: string;
/**
* Google Maps options
*/
optins: any;
/**
* Should the map be visible?
*/
visible: boolean;
/**
* A list of markers to put onto the map
*/
markers: {
position: {
lat: number;
lng: number;
};
name: string;
icon: string;
payload?: any;
}[];
/**
* The approximate lat and lng of the current device
*/
position: any;
/**
* Is the map currently visible?
*/
isVisible: boolean;
/**
* Add a marker to the map
* @param location The location information for the marker on the map
*/
addMarker(location: {
position: {
lat: number;
lng: number;
};
name: string;
icon: string;
payload?: any;
}): Promise;
updateMarkers(): Promise<{
position: {
lat: number;
lng: number;
};
name: string;
icon: string;
payload?: any;
}[]>;
/**
* Set the list of map markers
* @param markers A list of map markers
*/
setMarkers(markers?: {
position: {
lat: number;
lng: number;
};
name: string;
icon: string;
payload?: any;
}[]): Promise<{
position: {
lat: number;
lng: number;
};
name: string;
icon: string;
payload?: any;
}[]>;
setZoom(level: number): Promise;
setCenter(latLng: google.maps.LatLng | google.maps.LatLngLiteral): Promise;
/**
* Clear the markers off of the map
*/
clearMarkers(): Promise;
/**
* When a marker is clicked set the zoom level,
* animate to center, and emit an event
* @param marker The map marker that has been clicked
* @param location The location information tied to the map marker
*/
onMarkerClick(marker: google.maps.Marker, location: {
position: {
lat: number;
lng: number;
};
name: string;
icon: string;
payload?: any;
}): void;
/**
* Get a device's location via Geolocation api and
* fallback to location based on IP
* @param callback The function to run when the location is determined
*/
getLocationCoords(callback: (coords: {
latitude: number;
longitude: number;
} | false) => any): void;
/**
* Create the instance of Google Maps
* @param position The latitude and longitude to center the map on
*/
createMap(position: {
latitude: number;
longitude: number;
}): void;
loadGoogleMaps(): Promise;
componentDidLoad(): void;
render(): any;
}