chromium/components/feature_engagement/public/configuration_provider.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_FEATURE_ENGAGEMENT_PUBLIC_CONFIGURATION_PROVIDER_H_
#define COMPONENTS_FEATURE_ENGAGEMENT_PUBLIC_CONFIGURATION_PROVIDER_H_

#include <memory>
#include <set>
#include <string_view>
#include <vector>

#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/feature_engagement/public/feature_list.h"
#include "components/feature_engagement/public/group_list.h"
#include "components/feature_engagement/public/stats.h"

namespace base {
struct Feature;
}  // namespace base

namespace feature_engagement {

struct FeatureConfig;
struct GroupConfig;

// Provides configuration for Feature Engagement Features and Groups.
class ConfigurationProvider {};

ConfigurationProviderList;

// Used to check whether Feature with `feature_name` is present in
// `feature_list`; works with both FeatureVector and GroupVector.
template <typename T>
static bool ContainsFeature(std::string_view feature_name,
                            const T& feature_list) {}

}  // namespace feature_engagement

#endif  // COMPONENTS_FEATURE_ENGAGEMENT_PUBLIC_CONFIGURATION_PROVIDER_H_