import 'package:dartz/dartz.dart'; import '../../core/error/failures.dart'; import '../entities/loop_mode.dart'; import '../entities/playback_state.dart'; import '../entities/shuffle_mode.dart'; import '../entities/song.dart'; abstract class AudioRepository { Stream get currentSongStream; Stream get playbackStateStream; Stream> get queueStream; Stream get queueIndexStream; Stream get currentPositionStream; Stream get shuffleModeStream; Future> playSong(int index, List songList); Future> play(); Future> pause(); Future> skipToNext(); Future> skipToPrevious(); Future> setShuffleMode(ShuffleMode shuffleMode); Future setLoopMode(LoopMode loopMode); Future> shuffleAll(); Future> addToQueue(Song song); Future> moveQueueItem(int oldIndex, int newIndex); Future> removeQueueIndex(int index); }