import { Building, Floor, Venue } from '../../Venue';
import { EventType } from '../EventType';

/**
 * This interface represents events that occur when the internal state of the venue changes.
 */
export interface VenueEvent {
    /**
     * The event type currently fired.
     */
    readonly eventType: EventType;
    /**
     * The venue at the source of the event.
     */
    readonly venue: Venue;
    /**
     * The new current floor.
     */
    readonly newBuilding?: Building;
    /**
     * The previous floor.
     */
    readonly oldBuilding?: Building;
    /**
     * The new current floor.
     */
    readonly newFloor?: Floor;
    /**
     * The previous floor.
     */
    readonly oldFloor?: Floor;
}
