25 lines
728 B
Dart
25 lines
728 B
Dart
import 'package:watch_bridge_contract/watch_bridge_contract.dart';
|
|
|
|
abstract interface class WatchCommandIngress {
|
|
Future<WatchCommandAck> dispatch(WatchCommandEnvelope command);
|
|
}
|
|
|
|
abstract interface class WatchProjectionPublisher {
|
|
Future<void> publish(WatchSessionProjection projection);
|
|
}
|
|
|
|
abstract interface class WatchAlertPublisher {
|
|
Future<void> publishAlert(WatchAlertEnvelope alert);
|
|
}
|
|
|
|
abstract interface class WatchProjectionSource {
|
|
Stream<WatchSessionProjection> get projections;
|
|
|
|
Future<WatchSessionProjection> currentProjection();
|
|
|
|
Future<WatchSessionProjection> emitCurrentProjection();
|
|
}
|
|
|
|
abstract interface class WatchCompanionUseCases
|
|
implements WatchCommandIngress, WatchProjectionSource {}
|