import { Song, SearchResult, QueuedSong } from "./dataTypes"; export declare type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue | CurrentSong | UnqueueSong | ReorderSong; 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: SearchResult[]; constructor(result: SearchResult[]); } export declare class QueueSong extends StuenMessage { song: SearchResult; constructor(song: SearchResult); } export declare class CurrentQueue extends StuenMessage { songs: QueuedSong[]; constructor(songs: QueuedSong[]); } export declare class CurrentSong extends StuenMessage { song: Song; constructor(song: Song); } 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); }