import { Navigation, NavigationTrace } from '../../Navigation';
import { 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 NavigationEvent {
    /**
     * The event type currently fired.
     */
    readonly eventType: EventType;
    /**
     * The Navigation concerned by this event.
     */
    readonly navigation?: Navigation;
    /**
     * The NavigationTrace concerned by this event.
     */
    readonly navigationTrace?: NavigationTrace;
    /**
     * The Venue holding current Navigation.
     */
    readonly venue: Venue;
    /**
     * The View displaying current Navigation.
     */
    readonly view: View;
}
