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

#ifndef IOS_CHROME_BROWSER_LENS_OVERLAY_PUBLIC_LENS_OVERLAY_ENTRYPOINT_H_
#define IOS_CHROME_BROWSER_LENS_OVERLAY_PUBLIC_LENS_OVERLAY_ENTRYPOINT_H_

#import "components/lens/lens_overlay_invocation_source.h"

/// Lens overlay entrypoints on iOS.
enum class LensOverlayEntrypoint {
  // Omnibox location bar.
  kLocationBar,
  // 3-dots overflow menu.
  kOverflowMenu,
  // Search image button from context menu.
  kSearchImageContextMenu,
  // Image captured by LVF camera.
  kLVFCameraCapture,
  // Image retrieved from gallery.
  kLVFImagePicker,
  // The AI hub menu.
  kAIHub,
  // The Interactive Lens screen in the First Run Experience.
  kFREPromo,
  // The App Bar Lens button.
  kAppBar,
};

namespace lens {

/// Whether the entrypoint corresponds to an LVF session.
bool IsLVFEntrypoint(LensOverlayEntrypoint entrypoint);

/// Whether the entrypoint corresponds to a context menu session.
bool IsImageContextMenuEntrypoint(LensOverlayEntrypoint entrypoint);

/// Whether the entrypoint requires user consent.
bool EntrypointRequiresUserConsent(LensOverlayEntrypoint entrypoint);

/// Returns the LensOverlayInvocationSource equivalent of the
/// LensOverlayEntrypoint.
LensOverlayInvocationSource InvocationSourceFromEntrypoint(
    LensOverlayEntrypoint entrypoint);

}  // namespace lens

#endif  // IOS_CHROME_BROWSER_LENS_OVERLAY_PUBLIC_LENS_OVERLAY_ENTRYPOINT_H_
