import { Position } from '../Core';
import { POI } from './POI';

/**
 * A marker is an HTML element that'll be displayed on the map,
 * but not within it, it'll will always face the screen (not the camera).
 */
export interface Marker {
    /**
     * POI owning current Marker.
     */
    readonly poi: POI;
    /**
     * Position in WGS84 coordinates.
     * @see {@link Position}
     */
    readonly position: Position;
    /**
     * The HTML element that'll be displayed on the map.
     */
    readonly element?: HTMLElement;
    /**
     * If set to false, current Marker won't be rendered.
     * @defaultValue 'true'.
     */
    readonly isVisible: boolean;
    /**
     * False if the marker is an HTML element.
     * True if the marker comes from a native SDK like Android.
     * If true, position of the marker won't be automatically updated,
     * instead you'll have to subscribe to notification send every camera movement.
     */
    readonly isForeignMarker?: boolean;
}
