import { FitBoundsOptions, GeoJSON, GridLayer, Icon, LatLng, LatLngBounds, LatLngExpression, Map, MapOptions, Point, StyleFunction, Layer } from 'leaflet'; import Evented from '../util/evented'; import { Krite } from '../krite'; import { ILayer, ILayerEvented } from '../types'; export interface ICustomMapOptions { checkZoom?: boolean; container?: string | HTMLElement; defaultMarker?: Icon | Icon.Default; highlightStyle?: StyleFunction; focusStyle?: StyleFunction; leaflet?: MapOptions; } export declare class MapService extends Evented { private customOptions?; layers: ILayer[]; layerByName: { [index: string]: ILayer; }; leaflet: Map; defaultLeafletOptions: MapOptions; private mapOptions; private basemap; private highlight; private focus; private pointer; private krite; private container; get layerNames(): string[]; constructor(customOptions?: ICustomMapOptions | undefined); added(krite: Krite): void; attach(parent: HTMLElement, center?: boolean): void; detach(): void; addLayer(layer: ILayer | ILayerEvented): void; getLayer(layerName: string): T; showLayer(layer: ILayer): void; hasLayerByName(name: string): boolean; hideLayer(layer: ILayer): void; layerClick: (layer: ILayer, attr: any) => void; checkZoom: () => void; visibleOnZoom(layer: ILayer, zoom: number): boolean; hasGridLayer(layer: ILayer | ILayer): layer is ILayer; setZIndexes(): void; addHighlight(geojson: any, fitBounds?: FitBoundsOptions | true): GeoJSON; hideHighlight(): void; showHighlight(): void; addFocus(geojson: any, zoomTo?: boolean): void; hideFocus(): void; removeLayer(layer: ILayer): void; setBaseMap(layer: ILayer): void; hideBaseMap(): void; showBaseMap(): void; startInspect(): void; endInspect(): void; setPointer(latLng: LatLngExpression): void; fitBounds(bounds: LatLngBounds | undefined): void; zoomToPoint(point: Point, zoom: number, marker?: boolean): void; zoomToLatLng(point: LatLngExpression | LatLng, zoom: number, marker?: boolean): void; private findContainer; }