chromium/components/commerce/core/subscriptions/subscriptions_storage.h

// Copyright 2022 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_COMMERCE_CORE_SUBSCRIPTIONS_SUBSCRIPTIONS_STORAGE_H_
#define COMPONENTS_COMMERCE_CORE_SUBSCRIPTIONS_SUBSCRIPTIONS_STORAGE_H_

#include <queue>
#include <string>
#include <unordered_map>
#include <unordered_set>

#include "base/check.h"
#include "base/functional/callback.h"
#include "components/commerce/core/proto/commerce_subscription_db_content.pb.h"
#include "components/commerce/core/subscriptions/subscriptions_manager.h"
#include "components/session_proto_db/session_proto_storage.h"

namespace commerce {

enum class SubscriptionType;
struct CommerceSubscription;

// Used to handle locally fetched subscriptions.
GetLocalSubscriptionsCallback;
// Used to handle if storage-related operation succeeds.
StorageOperationCallback;
// Indicate if storage is updated successfully and pass the added & removed
// subscriptions to the callback.
StorageUpdateCallback;

CommerceSubscriptionProto;
CommerceSubscriptions;
SubscriptionManagementTypeProto;
SubscriptionTypeProto;
TrackingIdTypeProto;

class SubscriptionsStorage {};

}  // namespace commerce

#endif  // COMPONENTS_COMMERCE_CORE_SUBSCRIPTIONS_SUBSCRIPTIONS_STORAGE_H_