#ifndef GRPC_SRC_CORE_LIB_EXPERIMENTS_CONFIG_H
#define GRPC_SRC_CORE_LIB_EXPERIMENTS_CONFIG_H
#include <grpc/support/port_platform.h>
#include <stddef.h>
#include "absl/functional/any_invocable.h"
#include "absl/strings/string_view.h"
namespace grpc_core {
#ifndef GRPC_EXPERIMENTS_ARE_FINAL
bool IsExperimentEnabled(size_t experiment_id);
void TestOnlyReloadExperimentsFromConfigVariables();
#endif
void PrintExperimentsList();
void ForceEnableExperiment(absl::string_view experiment_name, bool enable);
struct ExperimentMetadata {
const char* name;
const char* description;
const char* additional_constaints;
bool default_value;
bool allow_in_fuzzing_config;
};
void RegisterExperimentConstraintsValidator(
absl::AnyInvocable<bool(struct ExperimentMetadata)> check_constraints_cb);
}
#endif