import '../../domain/entities/loop_mode.dart'; import '../../domain/entities/playback_state.dart'; import '../../domain/entities/shuffle_mode.dart'; import '../models/song_model.dart'; abstract class AudioManager { Stream get currentSongStream; Stream get playbackStateStream; Stream> get queueStream; Stream get queueIndexStream; /// Current position in the song in milliseconds. 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(SongModel songModel); Future moveQueueItem(int oldIndex, int newIndex); Future removeQueueIndex(int index); }