import { ForeignMarkerScreenPosition } from '../../Core/ForeignMarkerScreenPosition';
import { Marker, POI, Venue } from '../../Venue';
import { EventType } from '../EventType';
import { View } from '../View';

/**
 * This interface represents events that occur when the internal state of the venue changes.
 */
export interface ForeignMarkerEvent {
    /**
     * The event type currently fired.
     */
    readonly eventType: EventType;
    /**
     * The venue at the source of the event.
     */
    readonly venue: Venue;
    /**
     * The view at the source of the event (only for mouse or pointing device related events)
     */
    readonly view: View;
    /**
     * The POI related to this event.
     */
    readonly poi: POI;
    /**
     * The Marker related to this event.
     */
    readonly marker: Marker;
    /**
     * The screen position for the related Marker.
     */
    readonly screenPosition: ForeignMarkerScreenPosition;
}
