Shape of the consumer-defined parameters the sync notification carries.
Wraps a consumer's callback bundle behind the non-throwing contract.
Shape of the consumer-defined parameters the sync notification carries.
Optional lifecycle callbacks supplied by the consumer.
Sink for the exceptions the callbacks raise.
Notifies onAuthenticationLost that the session is definitively lost.
Notifies onAuthenticationRestored that the session recovered.
Notifies onRequestComplete of a successful response.
Completion event carrying status and duration.
Notifies onRequestError of a permanently-failed request.
Error event carrying the terminal error and duration.
Notifies onRequestRetry of a scheduled retry attempt.
Retry event carrying the attempt number and delay.
Notifies onRequestStart that a request was dispatched.
Start event carrying the correlation id, method and URL.
Notifies onSyncComplete that a sync landed. Awaited (unlike the
emit* family): a consumer's sync decorator awaits the
notification so a decorated mutation resolves only after the
observer has run. The non-throwing contract is the same — failures
route through the shared reporter.
Consumer-defined sync parameters, forwarded verbatim.
Resolves once the observer settled (or was absent).
Thin wrapper around a LifecycleEvents bundle that swallows any exceptions raised by consumer callbacks and logs them at error level. A misbehaving observer must never be able to break the request or sync flow — observability is a side concern, never a blocker.