chromium/components/ip_protection/common/ip_protection_config_provider_helper.h

// Copyright 2024 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_IP_PROTECTION_COMMON_IP_PROTECTION_CONFIG_PROVIDER_HELPER_H_
#define COMPONENTS_IP_PROTECTION_COMMON_IP_PROTECTION_CONFIG_PROVIDER_HELPER_H_

#include <memory>
#include <string>
#include <vector>

#include "base/time/time.h"
#include "components/ip_protection/common/ip_protection_data_types.h"
#include "components/ip_protection/get_proxy_config.pb.h"
#include "net/third_party/quiche/src/quiche/blind_sign_auth/proto/spend_token_data.pb.h"
#include "services/network/public/mojom/network_context.mojom.h"

namespace quiche {
struct BlindSignToken;
}  // namespace quiche

namespace ip_protection {

// Contains static variables and methods for IpProtectionConfigProviders.
//
// It is the implementation's job to actually get the IP protection tokens on
// demand for the network service. This interface defines methods and variables
// commonly used for config providers that implement it. Derived classes must
// contain instances of `IpProtectionProxyConfigRetriever`,
// `quiche::BlindSignAuth`, and some implementation of
// `quiche::BlindSignMessageInterface`.
class IpProtectionConfigProviderHelper {};

}  // namespace ip_protection

#endif  // COMPONENTS_IP_PROTECTION_COMMON_IP_PROTECTION_CONFIG_PROVIDER_HELPER_H_