#ifndef CONTENT_PUBLIC_BROWSER_BROWSING_TOPICS_SITE_DATA_MANAGER_H_
#define CONTENT_PUBLIC_BROWSER_BROWSING_TOPICS_SITE_DATA_MANAGER_H_
#include <map>
#include <set>
#include "base/containers/flat_set.h"
#include "base/functional/callback.h"
#include "components/browsing_topics/common/common_types.h"
#include "content/common/content_export.h"
namespace content {
class CONTENT_EXPORT BrowsingTopicsSiteDataManager {
public:
using GetBrowsingTopicsApiUsageCallback =
base::OnceCallback<void(browsing_topics::ApiUsageContextQueryResult)>;
using GetContextDomainsFromHashedContextDomainsCallback =
base::OnceCallback<void(
std::map<browsing_topics::HashedDomain, std::string>)>;
virtual ~BrowsingTopicsSiteDataManager() = default;
virtual void ExpireDataBefore(base::Time time) = 0;
virtual void ClearContextDomain(
const browsing_topics::HashedDomain& hashed_context_domain) = 0;
virtual void GetBrowsingTopicsApiUsage(
base::Time begin_time,
base::Time end_time,
GetBrowsingTopicsApiUsageCallback callback) = 0;
virtual void OnBrowsingTopicsApiUsed(
const browsing_topics::HashedHost& hashed_main_frame_host,
const browsing_topics::HashedDomain& hashed_context_domain,
const std::string& context_domain,
base::Time time) = 0;
virtual void GetContextDomainsFromHashedContextDomains(
const std::set<browsing_topics::HashedDomain>& hashed_context_domains,
GetContextDomainsFromHashedContextDomainsCallback callback) = 0;
};
}
#endif