#ifndef NET_DNS_DNS_UTIL_H_
#define NET_DNS_DNS_UTIL_H_
#include <cstdint>
#include <string>
#include <vector>
#include "base/time/time.h"
#include "net/base/address_family.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_export.h"
#include "net/base/network_change_notifier.h"
#include "net/dns/public/dns_over_https_server_config.h"
#include "net/dns/public/dns_query_type.h"
#include "net/dns/public/secure_dns_mode.h"
namespace net {
NET_EXPORT_PRIVATE std::string GetURLFromTemplateWithoutParameters(
const std::string& server_template);
NET_EXPORT_PRIVATE
base::TimeDelta GetTimeDeltaForConnectionTypeFromFieldTrialOrDefault(
const char* field_trial_name,
base::TimeDelta default_delta,
NetworkChangeNotifier::ConnectionType connection_type);
NET_EXPORT std::string CreateNamePointer(uint16_t offset);
NET_EXPORT_PRIVATE uint16_t DnsQueryTypeToQtype(DnsQueryType dns_query_type);
NET_EXPORT DnsQueryType
AddressFamilyToDnsQueryType(AddressFamily address_family);
NET_EXPORT_PRIVATE std::vector<DnsOverHttpsServerConfig>
GetDohUpgradeServersFromDotHostname(const std::string& dot_server);
NET_EXPORT_PRIVATE std::vector<DnsOverHttpsServerConfig>
GetDohUpgradeServersFromNameservers(const std::vector<IPEndPoint>& dns_servers);
NET_EXPORT_PRIVATE std::string GetDohProviderIdForHistogramFromServerConfig(
const DnsOverHttpsServerConfig& doh_server);
NET_EXPORT_PRIVATE std::string GetDohProviderIdForHistogramFromNameserver(
const IPEndPoint& nameserver);
NET_EXPORT_PRIVATE std::string SecureDnsModeToString(
const SecureDnsMode secure_dns_mode);
}
#endif