@aigamo/hydrangean-diva
Version:
An open-source online media player that can be deployed to and hosted on GitHub pages.
47 lines (46 loc) • 2.23 kB
TypeScript
import { IPlayQueueStore } from '../../media-player.play-queue.abstractions/interfaces/IPlayQueueStore';
import { PlayQueueItemDto } from '../../media-player.play-queue.abstractions/interfaces/PlayQueueItemDto';
import { IPlaylistItemStore } from '../../media-player.playlists.abstractions/interfaces/IPlaylistItemStore';
import { IPlaylistStore } from '../../media-player.playlists.abstractions/interfaces/IPlaylistStore';
import { IStateStore } from '@aigamo/route-sphere';
interface PlaylistLocalStorageState {
readonly version?: '1.0';
readonly items?: PlayQueueItemDto[];
}
declare class PlaylistLocalStorageStateStore implements IStateStore<PlaylistLocalStorageState> {
private readonly playlist;
constructor(playlist: PlaylistStore);
get state(): PlaylistLocalStorageState;
set state(value: PlaylistLocalStorageState);
validateState(state: unknown): state is PlaylistLocalStorageState;
}
export declare class PlaylistStore implements IPlaylistStore {
private readonly playQueue;
readonly localStorageState: PlaylistLocalStorageStateStore;
items: IPlaylistItemStore[];
constructor(playQueue: IPlayQueueStore);
createItemFromDto(dto: PlayQueueItemDto): IPlaylistItemStore;
get isEmpty(): boolean;
get hasMultipleItems(): boolean;
get selectedItems(): IPlaylistItemStore[];
get allItemsSelected(): boolean;
get hasSelectedItems(): boolean;
get selectedItemsOrAllItems(): IPlaylistItemStore[];
get canAddSelectedItems(): boolean;
get canPlaySelectedItemsNext(): boolean;
get canRemoveSelectedItems(): boolean;
setItems(value: IPlaylistItemStore[]): void;
unselectAll(): void;
selectAll(): void;
playSelectedItemsNext(): Promise<void>;
addSelectedItems(): Promise<void>;
addItems(items: IPlaylistItemStore[]): Promise<void>;
moveItem(item: IPlaylistItemStore, index: number): void;
removeItems(items: IPlaylistItemStore[]): Promise<void>;
removeSelectedItems(): Promise<void>;
removeOtherItems(item: IPlaylistItemStore): Promise<void>;
removeItemsAbove(item: IPlaylistItemStore): Promise<void>;
addItemFromDto(dto: PlayQueueItemDto): Promise<void>;
playAll(): Promise<void>;
}
export {};