/// Host-facing interface for the Nexo notification plugin. /// /// All production access to the platform plugin singleton is routed through /// implementations of this interface. The host integration depends on this /// abstraction so tests can inject fakes without booting Firebase/FCM. abstract interface class NexoNotificationClient { Stream> get onNotification; Future initialize(); Future getDeviceToken(); Future setAuthToken( String serverUrl, String token, { String? identifier, }); Future setSigningKey(String serverUrl, String signingKey); set onDeviceTokenReady(Future Function(String token)? callback); set onNavigateToChannel( void Function(String serverUrl, String channelId)? callback, ); set onNavigateToThread( void Function(String serverUrl, String rootId)? callback, ); }