#ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_WM_WM_DESKS_PRIVATE_FEATURE_H_
#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_WM_WM_DESKS_PRIVATE_FEATURE_H_
#include <string>
#include "base/functional/callback_forward.h"
#include "base/uuid.h"
#include "base/values.h"
#include "chrome/common/extensions/api/wm_desks_private.h"
class Profile;
namespace extensions {
class WMDesksPrivateFeature {
public:
WMDesksPrivateFeature() = default;
virtual ~WMDesksPrivateFeature() = default;
using GetDeskTemplateJsonCallback =
base::OnceCallback<void(std::string, const base::Value)>;
virtual void GetDeskTemplateJson(const base::Uuid& template_uuid,
Profile* profile,
GetDeskTemplateJsonCallback callback) = 0;
using LaunchDeskCallback =
base::OnceCallback<void(std::string, const base::Uuid&)>;
virtual void LaunchDesk(std::string desk_name,
LaunchDeskCallback callback) = 0;
using RemoveDeskCallback = base::OnceCallback<void(std::string)>;
virtual void RemoveDesk(const base::Uuid& desk_uuid,
bool combine_desk,
bool allow_undo,
RemoveDeskCallback callback) = 0;
using SetAllDeskPropertyCallback = base::OnceCallback<void(std::string)>;
virtual void SetAllDeskProperty(int window_id,
bool all_desk,
SetAllDeskPropertyCallback callback) = 0;
using GetAllDesksCallback =
base::OnceCallback<void(std::string,
std::vector<api::wm_desks_private::Desk>)>;
virtual void GetAllDesks(GetAllDesksCallback callback) = 0;
using SaveActiveDeskCallback =
base::OnceCallback<void(std::string,
api::wm_desks_private::SavedDesk saved_desk)>;
virtual void SaveActiveDesk(SaveActiveDeskCallback callback) = 0;
using DeleteSavedDeskCallback = base::OnceCallback<void(std::string)>;
virtual void DeleteSavedDesk(const base::Uuid& desk_uuid,
DeleteSavedDeskCallback callback) = 0;
using RecallSavedDeskCallback =
base::OnceCallback<void(std::string, const base::Uuid&)>;
virtual void RecallSavedDesk(const base::Uuid& desk_uuid,
RecallSavedDeskCallback callback) = 0;
using GetSavedDesksCallback =
base::OnceCallback<void(std::string,
std::vector<api::wm_desks_private::SavedDesk>)>;
virtual void GetSavedDesks(GetSavedDesksCallback callback) = 0;
using GetActiveDeskCallback =
base::OnceCallback<void(std::string, const base::Uuid&)>;
virtual void GetActiveDesk(GetActiveDeskCallback callback) = 0;
using SwitchDeskCallback = base::OnceCallback<void(std::string)>;
virtual void SwitchDesk(const base::Uuid& desk_uuid,
SwitchDeskCallback callback) = 0;
using GetDeskByIDCallback =
base::OnceCallback<void(std::string, api::wm_desks_private::Desk desk)>;
virtual void GetDeskByID(const base::Uuid& desk_uuid,
GetDeskByIDCallback callback) = 0;
};
}
#endif