59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
|
export declare type MusicPlaylistStatus = {
|
||
|
status: "loading" | "unselected" | "unloaded";
|
||
|
} | {
|
||
|
status: "error";
|
||
|
reason: string;
|
||
|
} | {
|
||
|
status: "loaded";
|
||
|
serverUniqueId: string;
|
||
|
playlistId: number;
|
||
|
songs: number[];
|
||
|
activeSong: number;
|
||
|
} | {
|
||
|
status: "no-permissions";
|
||
|
failedPermission: string;
|
||
|
};
|
||
|
export declare type MusicPlaylistEntryInfo = {
|
||
|
type: "loading";
|
||
|
url: string | undefined;
|
||
|
} | {
|
||
|
type: "song";
|
||
|
url: string;
|
||
|
title: string;
|
||
|
description: string;
|
||
|
length: number;
|
||
|
thumbnailImage: string;
|
||
|
};
|
||
|
export interface MusicPlaylistUiEvents {
|
||
|
action_load_playlist: {
|
||
|
forced: boolean;
|
||
|
};
|
||
|
action_entry_delete: {
|
||
|
entryId: number;
|
||
|
};
|
||
|
action_reorder_song: {
|
||
|
entryId: number;
|
||
|
targetEntryId: number;
|
||
|
mode: "before" | "after";
|
||
|
};
|
||
|
action_add_song: {
|
||
|
url: string;
|
||
|
mode: "before" | "after" | "last";
|
||
|
targetEntryId?: number;
|
||
|
};
|
||
|
action_select_entry: {
|
||
|
entryId: number;
|
||
|
};
|
||
|
query_playlist_status: {};
|
||
|
query_entry_status: {
|
||
|
entryId: number;
|
||
|
};
|
||
|
notify_playlist_status: {
|
||
|
status: MusicPlaylistStatus;
|
||
|
};
|
||
|
notify_entry_status: {
|
||
|
entryId: number;
|
||
|
status: MusicPlaylistEntryInfo;
|
||
|
};
|
||
|
}
|