#ifndef CHROMEOS_ASH_EXPERIENCES_SETTINGS_UI_SETTINGS_APP_MANAGER_H_
#define CHROMEOS_ASH_EXPERIENCES_SETTINGS_UI_SETTINGS_APP_MANAGER_H_
#include <string_view>
#include "ash/webui/settings/public/constants/setting.mojom-shared.h"
#include "base/component_export.h"
#include "ui/display/types/display_constants.h"
namespace user_manager {
class User;
}
namespace ash {
class COMPONENT_EXPORT(SETTINGS_UI) SettingsAppManager {
public:
static SettingsAppManager* Get();
SettingsAppManager(const SettingsAppManager&) = delete;
SettingsAppManager& operator=(const SettingsAppManager&) = delete;
struct OpenParams {
std::string_view sub_page;
std::optional<chromeos::settings::mojom::Setting> setting_id;
int64_t display_id = display::kInvalidDisplayId;
};
virtual void Open(const user_manager::User& user, OpenParams params) = 0;
protected:
SettingsAppManager();
virtual ~SettingsAppManager();
};
}
#endif