chromium/chrome/renderer/companion/visual_query/visual_query_eligibility.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_RENDERER_COMPANION_VISUAL_QUERY_VISUAL_QUERY_ELIGIBILITY_H_
#define CHROME_RENDERER_COMPANION_VISUAL_QUERY_VISUAL_QUERY_ELIGIBILITY_H_

#include <algorithm>
#include <limits>
#include <memory>
#include <optional>
#include <string>
#include <vector>

#include "base/containers/flat_map.h"
#include "base/containers/flat_set.h"
#include "base/gtest_prod_util.h"
#include "components/optimization_guide/proto/visual_search_model_metadata.pb.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/geometry/size_f.h"

namespace companion::visual_query {

Rect;
Size;
SizeF;

EligibilitySpec;
FeatureLibrary;
OrOfThresholdingRules;
ThresholdingRule;

// Stores the raw features of a single image.
struct SingleImageGeometryFeatures {};

// Stores image features, bytes, and alt-text.
struct SingleImageFeaturesAndBytes {};

// This class is used to determine which images are eligible to be surfaced in
// the CSC side bar according to settings set in the config proto.
class EligibilityModule {};
}  // namespace companion::visual_query
#endif  // CHROME_RENDERER_COMPANION_VISUAL_QUERY_VISUAL_QUERY_ELIGIBILITY_H_