You can create custom event types which allows you to emit events and create triggers on this type. Some modules also declare new event types, for instance a messaging integration will create an event type for received messages.

When you create a custom event, you should decide whether it has channels or not. This allows you to trigger on a subset of the events of this event type.