import 'dart:async'; import 'package:immich_mobile/domain/models/asset.model.dart'; import 'package:immich_mobile/domain/models/render_list.model.dart'; abstract class IAssetRepository { /// Batch insert asset FutureOr addAll(Iterable assets); /// Removes assets with the [localIds] FutureOr> fetchLocalAssetsForIds(List localIds); /// Removes assets with the [remoteIds] FutureOr> fetchRemoteAssetsForIds(List remoteIds); /// Removes assets with the given [ids] FutureOr deleteAssetsForIds(List ids); /// Removes all assets FutureOr clearAll(); /// Fetch assets from the [offset] with the [limit] FutureOr> fetchAssets({int? offset, int? limit}); /// Streams assets as groups grouped by the group type passed Stream watchRenderList(); }