import type { TServiceParams } from "@digital-alchemy/core"; import type { Dayjs } from "dayjs"; import type { AddEntityOptions, BasicAddParams, CallbackData, SettableConfiguration } from "../../helpers/index.mts"; declare enum MediaType { MUSIC = "music", TVSHOW = "tvshow", MOVIE = "movie", VIDEO = "video", EPISODE = "episode", CHANNEL = "channel", PLAYLIST = "playlist", IMAGE = "image", URL = "url", GAME = "game", APP = "app" } declare enum MediaDeviceClass { TV = "tv", SPEAKER = "speaker", RECEIVER = "receiver" } type MediaPlayerEnqueue = "add" | "next" | "play" | "replace"; export type MediaPlayerConfiguration = { /** * ID of the current running app. */ app_id?: SettableConfiguration; /** * Name of the current running app. */ app_name?: SettableConfiguration; /** * Type of media player. */ device_class?: `${MediaDeviceClass}`; /** * A dynamic list of player entities which are currently grouped together for synchronous playback. * If the platform has a concept of defining a group leader, the leader should be the first element in that list. */ group_members?: SettableConfiguration; /** * True if if volume is currently muted. */ is_volume_muted?: SettableConfiguration; /** * Album artist of current playing media, music track only. */ media_album_artist?: SettableConfiguration; /** * Album name of current playing media, music track only. */ media_album_name?: SettableConfiguration; /** * Album artist of current playing media, music track only. */ media_artist?: SettableConfiguration; /** * Channel currently playing. */ media_channel?: SettableConfiguration; /** * Content ID of current playing media. */ media_content_id?: SettableConfiguration; /** * Content type of current playing media. */ media_content_type?: SettableConfiguration<`${MediaType}`, DATA>; /** * Duration of current playing media in seconds. */ media_duration?: SettableConfiguration; /** * Episode of current playing media, TV show only. */ media_episode?: SettableConfiguration; /** * Hash of media image, defaults to SHA256 of media_image_url if media_image_url is not None. */ media_image_hash?: SettableConfiguration; /** * True if property media_image_url is accessible outside of the home network. */ media_image_remotely_accessible?: SettableConfiguration; /** * Image URL of current playing media. */ media_image_url?: SettableConfiguration; /** * Title of Playlist currently playing. */ media_playlist?: SettableConfiguration; /** * Position of current playing media in seconds. */ media_position?: SettableConfiguration; /** * Timestamp of when _attr_media_position was last updated. The timestamp should be set by calling homeassistant.util.dt.utcnow(). */ media_position_updated_at?: SettableConfiguration; /** * Season of current playing media, TV show only. */ media_season?: SettableConfiguration; /** * Title of series of current playing media, TV show only. */ media_series_title?: SettableConfiguration; /** * Title of current playing media. */ media_title?: SettableConfiguration; /** * Track number of current playing media, music track only. */ media_track?: SettableConfiguration; /** * Current repeat mode. */ repeat?: SettableConfiguration; /** * True if shuffle is enabled. */ shuffle?: SettableConfiguration; /** * The current sound mode of the media player. */ sound_mode?: SettableConfiguration; /** * Dynamic list of available sound modes. */ sound_mode_list?: SOUND_MODES[]; /** * The currently selected input source for the media player. */ source?: SettableConfiguration; /** * The list of possible input sources for the media player. (This list should contain human readable names, suitable for frontend display). */ source_list?: SOURCES[]; supported_features?: number; /** * Volume level of the media player in the range (0..1). */ volume_level?: SettableConfiguration; /** * Volume step to use for the volume_up and volume_down services. */ volume_step?: SettableConfiguration; }; export type MediaPlayerEvents = { select_sound_mode: { source: string; }; select_source: { source: string; }; play_media: { media_type: string; media_id: string; enqueue?: MediaPlayerEnqueue; announce?: boolean; }; }; export declare function VirtualMediaPlayer({ context, synapse }: TServiceParams): >>(options: AddEntityOptions, MediaPlayerEvents, PARAMS["attributes"], PARAMS["locals"], DATA>) => import("../../helpers/common-config.mts").SynapseEntityProxy, MediaPlayerEvents, PARAMS["attributes"], PARAMS["locals"], DATA, import("@digital-alchemy/hass").PICK_ENTITY>; export {};