import { calculateBoundingBox, isValidBoundingBox, parsePositionFromString } from './positions';
import { BoundingBox, MapBoundingBox, Position } from './mapTypes';
export declare const getMapBounds: (boundingBox: BoundingBox) => H.geo.Rect;
declare const getPosition: (marker: H.map.AbstractMarker) => H.geo.Point | H.geo.MultiPoint;
export type MapUtils = {
    getCenter: () => Position;
    setCenter: (position: Position, animate: boolean) => void;
    getZoom: () => number;
    getPreciseZoom: () => number;
    setZoom: (zoom: number, zoomAnimation: boolean) => void;
    getViewPort: () => {
        width: number;
        height: number;
        margin: number;
        padding: {
            top: number;
            right: number;
            bottom: number;
            left: number;
        };
        center: {
            x: number;
            y: number;
        };
    };
    getBounds: () => MapBoundingBox;
    getObjects: () => H.map.Object[];
    getLayers: () => H.map.DataModel[];
    getBaseLayer: () => H.map.layer.Layer;
    getGroups: () => H.map.Group[];
    getMarkers: () => H.map.Marker[];
    getRoutePolylines: () => H.map.Polyline[];
    getPosition: typeof getPosition;
    calculateBoundingBox: typeof calculateBoundingBox;
    isValidBoundingBox: typeof isValidBoundingBox;
    parsePositionFromString: typeof parsePositionFromString;
};
export declare const createUtils: (mapApi: H.Map) => {
    getCenter: () => {
        lat: number;
        lng: number;
    };
    setCenter: (position: Position, animate: boolean) => void;
    getPreciseZoom: () => number;
    getZoom: () => number;
    setZoom: (zoom: number, zoomAnimation?: boolean) => void;
    getViewPort: () => {
        width: number;
        height: number;
        margin: number;
        padding: {
            top: number;
            right: number;
            bottom: number;
            left: number;
        };
        center: {
            x: number;
            y: number;
        };
    };
    getBounds: () => {
        topLeft: {
            lng: number | undefined;
            lat: number | undefined;
        };
        bottomRight: {
            lng: number | undefined;
            lat: number | undefined;
        };
    };
    getObjects: () => H.map.Object[];
    getLayers: () => any[];
    getBaseLayer: () => H.map.layer.Layer;
    getGroups: () => H.map.Group[];
    getMarkers: () => H.map.Marker[];
    getRoutePolylines: () => H.map.Polyline[];
    getPosition: (marker: H.map.AbstractMarker) => H.geo.Point | H.geo.MultiPoint;
    calculateBoundingBox: (positions: {
        lat: number;
        lng: number;
    }[]) => BoundingBox;
    isValidBoundingBox: (box: BoundingBox) => boolean;
    parsePositionFromString: (value: string) => {
        lat: number;
        lng: number;
    } | undefined;
};
export {};
