Await the first matching event as a CancelablePromise of {event, payload}.
Triggers must be SubscribableListenable values (a single event key or
array of keys). The '*' wildcard is not supported — it cannot keep event
and payload types correlated.
To resolve on the first of several known events, pass every key:
next(['foo', 'bar', 'baz']). The result discriminates on event.
When you need to inspect payload shape, filter events, or resolve only under a
condition, use Bus.scan — including trigger: '*' with an evaluator
that discriminates on resolve.trigger (see Scanner.Evaluator).
Optionaloptions: ScanOptionsListenable trigger, including '*'. Discriminate on resolve.trigger in the evaluator.
Observe every raised event as a correlated PipedMessage. Does not create a graph edge. Unsubscribe via the returned Subscription.
Subscribe a handler to a single event. A second call with the same event and
handler reference returns the existing Subscription without adding again.
Optionaloptions: SubscribeOptionsRemove a handler previously registered with SubscriptionSurface.on.
Uses the same handler reference; no-op if that handler is not registered for event.
Does not remove wrappers created by SubscriptionSurface.once, SubscriptionSurface.any,
or SubscriptionSurface.tap.
Optionaloptions: SubscribeOptions
Subscribe, await, scan, and pipe events on a Bus.
Event-map typing is bivariant (via method/
bivarianceHackmembers, without anin outvariance marker) so a surface over a wider map is assignable to a narrower view — the same Wide→Narrow shape as Bus itself.