Provides methods to wait for events.
Waits for the specified event type and returns the event.
NOTE: this method is blocking.