import 'package:background_downloader/background_downloader.dart';

abstract interface class IDownloadRepository {
  void Function(TaskStatusUpdate)? onImageDownloadStatus;
  void Function(TaskStatusUpdate)? onVideoDownloadStatus;
  void Function(TaskStatusUpdate)? onLivePhotoDownloadStatus;
  void Function(TaskProgressUpdate)? onTaskProgress;

  Future<List<TaskRecord>> getLiveVideoTasks();
  Future<bool> download(DownloadTask task);
  Future<bool> cancel(String id);
  Future<void> deleteAllTrackingRecords();
  Future<void> deleteRecordsWithIds(List<String> id);
}