import { default as React } from 'react';
import { EventListenerMap } from '../../../utils/eventHandling';
import { Position } from '../../../utils/mapTypes';
export type MarkerIcon = string | React.ReactElement;
type GetOrCreateIconOptions = {
    cacheEnabled?: boolean;
};
export declare const isHMapIcon: (icon: MarkerIcon | H.map.DomIcon | undefined) => icon is H.map.Icon;
export declare const isDomMakerNeeded: (icon: MarkerIcon | H.map.DomIcon | undefined) => boolean;
export declare const getMarkerDebugStats: () => {
    cacheEnabled: boolean;
    domIconCreations: number;
    markupCacheHits: number;
    markupCacheMisses: number;
    reactElementCacheHits: number;
    reactElementCacheMisses: number;
    uncachedDomIconCreations: number;
    markerSetups: number;
    markerDestroys: number;
    markerIconUpdates: number;
    markerIconRecreates: number;
    markerSetIconCalls: number;
};
export declare const resetMarkerDebugStats: () => void;
export declare const setMarkerIconCacheEnabled: (enabled: boolean) => void;
export declare const clearMarkerIconCache: () => void;
export declare const getOrCreateIcon: (icon: MarkerIcon | H.map.DomIcon | undefined, options?: GetOrCreateIconOptions) => H.map.DomIcon | H.map.Icon;
export type MarkerProps = {
    position: Position;
    icon?: MarkerIcon;
    eventListenerMap?: EventListenerMap;
    customData?: object;
    draggable?: boolean;
};
declare const Marker: (props: MarkerProps) => null;
export default Marker;
