#ifndef ASH_BIRCH_BIRCH_CLIENT_H_
#define ASH_BIRCH_BIRCH_CLIENT_H_
#include "ash/ash_export.h"
#include "base/functional/callback.h"
#include "ui/base/models/image_model.h"
class GURL;
namespace base {
class FilePath;
}
namespace ui {
class ImageModel;
}
namespace ash {
class BirchDataProvider;
class ASH_EXPORT BirchClient {
public:
virtual BirchDataProvider* GetCalendarProvider() = 0;
virtual BirchDataProvider* GetFileSuggestProvider() = 0;
virtual BirchDataProvider* GetRecentTabsProvider() = 0;
virtual BirchDataProvider* GetLastActiveProvider() = 0;
virtual BirchDataProvider* GetMostVisitedProvider() = 0;
virtual BirchDataProvider* GetSelfShareProvider() = 0;
virtual BirchDataProvider* GetLostMediaProvider() = 0;
virtual BirchDataProvider* GetReleaseNotesProvider() = 0;
virtual void WaitForRefreshTokens(base::OnceClosure callback) = 0;
virtual base::FilePath GetRemovedItemsFilePath() = 0;
virtual void RemoveFileItemFromLauncher(const base::FilePath& path) = 0;
virtual void GetFaviconImage(
const GURL& url,
const bool is_page_url,
base::OnceCallback<void(const ui::ImageModel&)> callback) = 0;
virtual ui::ImageModel GetChromeBackupIcon() = 0;
virtual ~BirchClient() = default;
};
}
#endif