#ifndef CONTENT_BROWSER_INTEREST_GROUP_INTEREST_GROUP_PA_REPORT_UTIL_H_
#define CONTENT_BROWSER_INTEREST_GROUP_INTEREST_GROUP_PA_REPORT_UTIL_H_
#include <optional>
#include <vector>
#include "base/time/time.h"
#include "content/common/content_export.h"
#include "content/services/auction_worklet/public/mojom/private_aggregation_request.mojom-forward.h"
#include "content/services/auction_worklet/public/mojom/seller_worklet.mojom.h"
#include "third_party/blink/public/mojom/aggregation_service/aggregatable_report.mojom-forward.h"
namespace url {
class Origin;
}
namespace content {
class PrivateAggregationManager;
struct CONTENT_EXPORT PrivateAggregationRequestWithEventType { … };
struct CONTENT_EXPORT PrivateAggregationTimings { … };
struct CONTENT_EXPORT PrivateAggregationKey { … };
enum class PrivateAggregationPhase { … };
struct CONTENT_EXPORT PrivateAggregationPhaseKey { … };
CONTENT_EXPORT std::optional<PrivateAggregationRequestWithEventType>
FillInPrivateAggregationRequest(
auction_worklet::mojom::PrivateAggregationRequestPtr request,
double winning_bid,
double highest_scoring_other_bid,
const std::optional<auction_worklet::mojom::RejectReason> reject_reason,
const PrivateAggregationTimings& timings,
bool is_winner);
CONTENT_EXPORT void SplitContributionsIntoBatchesThenSendToHost(
std::vector<auction_worklet::mojom::PrivateAggregationRequestPtr> requests,
PrivateAggregationManager& pa_manager,
const url::Origin& reporting_origin,
std::optional<url::Origin> aggregation_coordinator_origin,
const url::Origin& main_frame_origin);
CONTENT_EXPORT bool HasValidFilteringId(
const auction_worklet::mojom::PrivateAggregationRequestPtr& request);
CONTENT_EXPORT bool IsValidFilteringId(std::optional<uint64_t> filtering_id);
}
#endif