use serde::Deserialize;
use ts_rs::TS;
use crate::config::ExportMethod;
#[derive(Deserialize, Default, TS)]
pub struct PanelOptions {
#[ts(optional)]
pub panel: Option<String>,
}
#[derive(Deserialize, Default, TS)]
pub struct RestoreOptions {
#[ts(optional)]
pub panel: Option<String>,
#[ts(optional)]
pub suppress_errors: Option<bool>,
#[ts(optional)]
pub wait_for_table: Option<bool>,
}
#[derive(Deserialize, Default, TS)]
pub struct RestoreWorkspaceOptions {
#[ts(optional)]
pub wait_for_table: Option<bool>,
}
#[derive(Deserialize, Default, TS)]
pub struct AddPanelOptions {
#[ts(optional)]
pub wait_for_table: Option<bool>,
}
#[derive(Deserialize, Default, TS)]
pub struct ClientOptions {
#[ts(optional)]
pub client: Option<String>,
}
#[derive(Deserialize, Default, TS)]
pub struct ExportOptions {
#[ts(as = "Option<ExportMethod>")]
#[ts(optional)]
pub method: Option<String>,
#[ts(optional)]
pub panel: Option<String>,
}
#[derive(Deserialize, Default, TS)]
pub struct GetTableOptions {
#[ts(optional)]
pub wait: Option<bool>,
#[ts(optional)]
pub panel: Option<String>,
}
#[derive(Clone, Copy, Default, Deserialize, PartialEq, Eq, TS)]
#[serde(rename_all = "lowercase")]
pub enum GetViewMode {
#[default]
Live,
Clone,
Auto,
}
#[derive(Deserialize, Default, TS)]
pub struct GetViewOptions {
#[ts(optional)]
pub mode: Option<GetViewMode>,
#[ts(optional)]
pub panel: Option<String>,
}
#[derive(Deserialize, Default, TS)]
pub struct GetClientOptions {
#[ts(optional)]
pub wait: Option<bool>,
#[ts(optional)]
pub panel: Option<String>,
}
#[derive(Deserialize, Default, TS)]
pub struct SaveWorkspaceOptions {
#[serde(default)]
#[ts(optional)]
pub full_palette: Option<bool>,
}