import 'package:rxdart/rxdart.dart'; import '../../domain/entities/loop_mode.dart'; import '../models/playback_event_model.dart'; import '../models/song_model.dart'; abstract class AudioPlayerDataSource { ValueStream get currentIndexStream; Stream get playbackEventStream; ValueStream get playingStream; ValueStream get positionStream; Future play(); Future pause(); Future stop(); Future seekToNext(); Future seekToPrevious(); Future dispose(); // TODO: unused Future loadQueue({ required List queue, required int initialIndex, }); Future addToQueue(SongModel song); Future moveQueueItem(int oldIndex, int newIndex); Future playNext(SongModel song); Future removeQueueIndex(int index); Future replaceQueueAroundIndex({ required List before, required List after, required int index, }); Future seekToIndex(int index); Future setLoopMode(LoopMode loopMode); }