import { Song, PlayingSong, QueuedSong, Playlist, PlaylistDescription } from "./dataTypes"; export declare type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue | CurrentSong | UnqueueSong | ReorderSong | SkipSong | SongLikes | ToggleSongLike | CreatePlaylist | AddSongToPlaylist | RemoveSongFromPlaylist | Playlists | GetPlaylist | PlaylistSongs | ToggleTag | Shuffle; export declare abstract class StuenMessage { type: string; constructor(type: string); } export declare class Join extends StuenMessage { name: string; constructor(name: string); } export declare class ListenerJoined extends StuenMessage { name: string; constructor(name: string); } export declare class ListenerLeft extends StuenMessage { name: string; constructor(name: string); } export declare class ListenerList extends StuenMessage { names: string[]; constructor(names: string[]); } export declare class SendChatMessage extends StuenMessage { message: string; constructor(message: string); } export declare class ChatMessage extends StuenMessage { name: string; message: string; constructor(name: string, message: string); } export declare class SearchSong extends StuenMessage { query: string; constructor(query: string); } export declare class SearchSongResult extends StuenMessage { result: Song[]; constructor(result: Song[]); } export declare class QueueSong extends StuenMessage { song: Song; constructor(song: Song); } export declare class CurrentQueue extends StuenMessage { songs: QueuedSong[]; constructor(songs: QueuedSong[]); } export declare class CurrentSong extends StuenMessage { song: PlayingSong | null; constructor(song: PlayingSong | null); } export declare class UnqueueSong extends StuenMessage { position: number | null; all: boolean | undefined; constructor(position: number | null, all?: boolean | undefined); } export declare class ReorderSong extends StuenMessage { positionToMove: number; placePosition: number; constructor(positionToMove: number, placePosition: number); } export declare class SkipSong extends StuenMessage { constructor(); } export declare class ToggleSongLike extends StuenMessage { constructor(); } export declare class SongLikes extends StuenMessage { listeners: string[]; constructor(listeners: string[]); } export declare class CreatePlaylist extends StuenMessage { title: string; constructor(title: string); } export declare class Playlists extends StuenMessage { playlists: PlaylistDescription[]; constructor(playlists: PlaylistDescription[]); } export declare class GetPlaylist extends StuenMessage { playlist: PlaylistDescription; constructor(playlist: PlaylistDescription); } export declare class PlaylistSongs extends StuenMessage { playlist: Playlist; constructor(playlist: Playlist); } export declare class AddSongToPlaylist extends StuenMessage { song: Song; playlist: string; constructor(song: Song, playlist: string); } export declare class RemoveSongFromPlaylist extends StuenMessage { song: Song; playlist: string; constructor(song: Song, playlist: string); } export declare class ToggleTag extends StuenMessage { song: Song; tag: string; constructor(song: Song, tag: string); } export declare class Shuffle extends StuenMessage { constructor(); }