use crate::Error;
use crate::types::{
ArtImage, ArtImageThumbnail, DeviceInfo, DisplayBrightness, DisplayColorTemp, DisplayRotation,
Matte, MotionSensitivity, MotionTimer, PhotoFilter, SlideshowConfig, UploadedArtImage,
};
pub(crate) trait FrameTvApi {
fn get_uploaded_art_images(
&self,
) -> impl std::future::Future<Output = Result<Vec<UploadedArtImage>, Error>> + Send;
fn get_art_image_info(
&self,
content_id: &str,
) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;
fn get_selected_art_image(
&self,
) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;
fn select_art_image_by_id(
&self,
content_id: &str,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn upload_art_image(
&self,
image: ArtImage,
) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;
fn upload_and_select_art_image(
&self,
image: ArtImage,
) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;
fn delete_uploaded_art_images(
&self,
content_ids: &[&str],
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn get_art_image_thumbnail(
&self,
content_id: &str,
) -> impl std::future::Future<Output = Result<ArtImageThumbnail, Error>> + Send;
fn set_art_image_favorite(
&self,
content_id: &str,
favorite: bool,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn get_available_mattes(
&self,
) -> impl std::future::Future<Output = Result<Vec<Matte>, Error>> + Send;
fn set_art_image_matte(
&self,
content_id: &str,
matte_id: &str,
portrait_matte_id: Option<&str>,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn get_available_photo_filters(
&self,
) -> impl std::future::Future<Output = Result<Vec<PhotoFilter>, Error>> + Send;
fn set_art_image_photo_filter(
&self,
content_id: &str,
filter_id: &str,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn enable_artmode(&self) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn disable_artmode(&self) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn is_artmode_enabled(&self) -> impl std::future::Future<Output = Result<bool, Error>> + Send;
fn enable_slideshow(
&self,
config: Option<SlideshowConfig>,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn disable_slideshow(&self) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn set_slideshow_config(
&self,
config: SlideshowConfig,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn is_slideshow_enabled(&self)
-> impl std::future::Future<Output = Result<bool, Error>> + Send;
fn get_slideshow_config(
&self,
) -> impl std::future::Future<Output = Result<SlideshowConfig, Error>> + Send;
fn set_display_brightness(
&self,
brightness: DisplayBrightness,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn set_display_color_temp(
&self,
color_temp: DisplayColorTemp,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn get_display_brightness(
&self,
) -> impl std::future::Future<Output = Result<DisplayBrightness, Error>> + Send;
fn get_display_color_temp(
&self,
) -> impl std::future::Future<Output = Result<DisplayColorTemp, Error>> + Send;
fn get_display_rotation(
&self,
) -> impl std::future::Future<Output = Result<DisplayRotation, Error>> + Send;
fn enable_auto_brightness(&self)
-> impl std::future::Future<Output = Result<(), Error>> + Send;
fn disable_auto_brightness(
&self,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn set_motion_timer(
&self,
timer: MotionTimer,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn set_motion_sensitivity(
&self,
sensitivity: MotionSensitivity,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn press_remote_control_button(
&self,
button: crate::types::RemoteControlButton,
) -> impl std::future::Future<Output = Result<(), Error>> + Send;
fn get_device_info(
&self,
) -> impl std::future::Future<Output = Result<DeviceInfo, Error>> + Send;
}