import 'dart:async'; import 'package:immich_mobile/domain/models/asset.model.dart'; abstract interface class IAssetRepository { /// Batch upsert asset Future upsert(Asset assets); /// Batch upsert asset Future upsertAll(Iterable assets); /// Removes assets with the [localIds] Future> getForLocalIds(Iterable localIds); /// Removes assets with the [remoteIds] Future> getForRemoteIds(Iterable remoteIds); /// Get assets with the [hashes] Future> getForHashes(Iterable hashes); /// Fetch assets from the [offset] with the [limit] Future> getAll({int? offset, int? limit}); /// Removes assets with the given [ids] Future deleteIds(Iterable ids); /// Removes all assets Future deleteAll(); }