import 'package:flowy_sdk/protobuf/flowy-workspace/protobuf.dart'; import 'package:dartz/dartz.dart'; typedef AppUpdatedCallback = void Function(String name, String desc); typedef AppViewsChangeCallback = void Function(Either, WorkspaceError> viewsOrFailed); abstract class IApp { Future, WorkspaceError>> getViews(); Future> createView({required String name, String? desc, required ViewType viewType}); Future> delete(); Future> rename(String newName); } abstract class IAppListenr { void start({AppViewsChangeCallback? viewsChangeCallback, AppUpdatedCallback? updatedCallback}); Future stop(); }