import 'package:relationship_saver/integrations/backend/models/backend_models.dart'; /// Domain-level backend boundary independent of HTTP transport. abstract interface class BackendGateway { /// Authenticates user and returns active session. Future signIn(SignInRequest request); /// Signs out current user. Future signOut(); /// Returns current user profile. Future me(); /// Pulls remote changes since optional cursor. Future pullChanges({String? cursor, int limit = 200}); /// Pushes local changes to backend. Future pushChanges({ required List changes, String? cursor, }); /// Fetches recommendation signals feed. Future getSignalsFeed({ String? cursor, DateTime? since, int limit = 50, Set? personIds, }); /// Acknowledges a signal action. Future acknowledgeSignal({ required String signalId, required SignalAction action, DateTime? at, }); /// Initializes upload metadata and pre-signed URL. Future initUpload({ required UploadPurpose purpose, required String contentType, required int sizeBytes, }); /// Resolves a temporary download URL. Future getDownloadUrl({required String fileId}); }