/**
 * THIS IS GENERATED CODE!
 * PLEASE DO NOT MODIFY - ALL YOUR WORK WOULD BE LOST!
 */
export declare const typescriptDeclarationFixConstant = 1;
import { UiEvent } from "./UiEvent";
import { TeamAppsEvent } from "../modules/util/TeamAppsEvent";
import { UiComponentConfig } from "./UiComponentConfig";
import { UiTemplateConfig } from "./UiTemplateConfig";
import { UiMapLocationConfig } from "./UiMapLocationConfig";
import { UiMapPolylineConfig } from "./UiMapPolylineConfig";
import { UiMapMarkerClientRecordConfig } from "./UiMapMarkerClientRecordConfig";
import { UiMapMarkerClusterConfig } from "./UiMapMarkerClusterConfig";
import { UiHeatMapDataConfig } from "./UiHeatMapDataConfig";
import { UiMapAreaConfig } from "./UiMapAreaConfig";
import { UiMapType } from "./UiMapType";
import { UiComponentCommandHandler } from "./UiComponentConfig";
export interface UiMapConfig extends UiComponentConfig {
    _type?: string;
    markerTemplates: {
        [name: string]: UiTemplateConfig;
    };
    accessToken?: string;
    mapType?: UiMapType;
    zoomLevel?: number;
    mapPosition?: UiMapLocationConfig;
    polylines?: {
        [name: string]: UiMapPolylineConfig;
    };
    markers?: UiMapMarkerClientRecordConfig[];
    markerCluster?: UiMapMarkerClusterConfig;
}
export interface UiMapCommandHandler extends UiComponentCommandHandler {
    registerTemplate(id: string, template: UiTemplateConfig): void;
    addMarker(marker: UiMapMarkerClientRecordConfig): void;
    removeMarker(id: number): void;
    setMapMarkerCluster(cluster: UiMapMarkerClusterConfig): void;
    addPolyline(lineId: string, polyline: UiMapPolylineConfig): void;
    addPolylinePoints(lineId: string, points: UiMapLocationConfig[]): void;
    removePolyline(lineId: string): void;
    setZoomLevel(zoom: number): void;
    setLocation(location: UiMapLocationConfig): void;
    setMapType(mapType: UiMapType): void;
    setHeatMap(data: UiHeatMapDataConfig): void;
}
export interface UiMapEventSource {
    onZoomLevelChanged: TeamAppsEvent<UiMap_ZoomLevelChangedEvent>;
    onLocationChanged: TeamAppsEvent<UiMap_LocationChangedEvent>;
    onMapClicked: TeamAppsEvent<UiMap_MapClickedEvent>;
    onMarkerClicked: TeamAppsEvent<UiMap_MarkerClickedEvent>;
}
export interface UiMap_ZoomLevelChangedEvent extends UiEvent {
    zoomLevel: number;
}
export interface UiMap_LocationChangedEvent extends UiEvent {
    center: UiMapLocationConfig;
    displayedArea: UiMapAreaConfig;
}
export interface UiMap_MapClickedEvent extends UiEvent {
    location: UiMapLocationConfig;
}
export interface UiMap_MarkerClickedEvent extends UiEvent {
    markerId: number;
}
