import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:dartz/dartz.dart'; import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; typedef AppUpdatedCallback = void Function(App app); 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(); }