// Monitoring implementations should include this file after defining the
// functions in milotic::metrics for explicit template instantiation. This is
// required so we don't need to include the implementation specific template
// definitions everywhere.
#ifndef THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_METRIC_INSTANCE_H_
#define THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_METRIC_INSTANCE_H_

#include "absl/strings/string_view.h"
#include "monitoring.h"

namespace milotic::metrics {
// go/keep-sorted start
template class EventCounter<>;
template class EventCounter<absl::string_view, bool>;
template class EventCounter<absl::string_view, int>;
template class EventCounter<absl::string_view>;
template class EventCounter<int>;
template class Latency<>;
template class Latency<absl::string_view, absl::string_view>;
template class State<>;
template class State<absl::string_view, int, int>;
// go/keep-sorted end
}  // namespace milotic::metrics

#endif  // THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_METRIC_INSTANCE_H_
