import 'package:dartz/dartz.dart'; import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-workspace/workspace_create.pb.dart'; export 'package:flowy_sdk/protobuf/flowy-workspace/workspace_create.pb.dart'; export 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; export 'package:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart'; typedef WorkspaceListUpdatedCallback = void Function( Either, WorkspaceError> workspacesOrFailed); abstract class IUser { UserProfile get user; Future> fetchUserProfile(String userId); Future, WorkspaceError>> fetchWorkspaces(); Future> deleteWorkspace(String workspaceId); Future> signOut(); } abstract class IUserWorkspaceListWatch { void startWatching( {WorkspaceListUpdatedCallback? workspaceListUpdatedCallback}); Future stopWatching(); }