import { MessageType } from "../protocol/message_type"; import { CustomPlayerSpec } from "./interface"; export declare enum RequestType { CHECK_BACKEND = "check", PREPARE = "prepare", STOP = "stop", PAUSE = "pause", RESUME = "resume", PLAY_URLS = "play-urls", SET_VOLUME = "set-volume", ADJUST_VOLUME = "adj-volume", SET_MUTE = "set-mute", SET_VOICE_INPUT = "set-voice-input", SET_VOICE_OUTPUT = "set-voice-output" } export interface CheckBackendRequestMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.CHECK_BACKEND; /** * Serial number of the request */ req: number; spec: CustomPlayerSpec; } export interface PrepareRequestMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.PREPARE; req: number; spec?: CustomPlayerSpec; } export interface StopRequestMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.STOP; req: number; } export interface PauseRequestMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.PAUSE; req: number; } export interface ResumeRequestMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.RESUME; req: number; } export interface PlayURLMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.PLAY_URLS; req: number; urls: string[]; } export interface SetVolumeMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.SET_VOLUME; req: number; volume: number; } export interface AdjustVolumeMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.ADJUST_VOLUME; req: number; delta: number; } export interface SetMuteMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.SET_MUTE; req: number; mute: boolean; } export interface SetVoiceInputMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.SET_VOICE_INPUT; req: number; input: boolean; } export interface SetVoiceOutputMessage { type: MessageType.AUDIO_SUBPROTOCOL; op: RequestType.SET_VOICE_OUTPUT; req: number; output: boolean; } export declare type ServerMessage = CheckBackendRequestMessage | PrepareRequestMessage | StopRequestMessage | PauseRequestMessage | ResumeRequestMessage | PlayURLMessage | SetVolumeMessage | AdjustVolumeMessage | SetMuteMessage | SetVoiceInputMessage | SetVoiceOutputMessage; /** * The result of a "check backend" operation. */ export interface CheckBackendResponseMessage { type: MessageType.AUDIO_SUBPROTOCOL; req: number; /** * Whether the backend was available and initialized successfully. */ ok: boolean; /** * Detailed string of why the backend was not available, for logging. */ detail?: string; /** * Error associated with this operation, if any. * * This is only relevant for protocol errors, not errors related to * the initialization of the backend. */ error?: { /** * Human readable error message. * * The purpose of this error message is for logging and developer * use, not to be displayed directly to users. */ message: string; /** * Error code, if available. */ code?: string; }; } /** * The result of any other server-initiated operation. * * The operation was considered successful if the {@link error} * field is not present. */ export interface GenericResponseMessage { type: MessageType.AUDIO_SUBPROTOCOL; req: number; /** * Error associated with this operation, if any. */ error?: { /** * Human readable error message. * * The purpose of this error message is for logging and developer * use, not to be displayed directly to users. */ message: string; /** * Error code, if available. */ code?: string; }; } export declare type ClientMessage = CheckBackendResponseMessage | GenericResponseMessage;