The only event-related type that protocol programmers need be aware of is the type Event. This type is defined by the underlying platform and is opaque to the protocol programmer.