#ifndef SERVICES_SCREEN_AI_PUBLIC_MOJOM_SCREEN_AI_SERVICE_MOJOM_SHARED_H_
#define SERVICES_SCREEN_AI_PUBLIC_MOJOM_SCREEN_AI_SERVICE_MOJOM_SHARED_H_
#include <stdint.h>
#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "services/screen_ai/public/mojom/screen_ai_service.mojom-shared-internal.h"
#include "skia/public/mojom/bitmap.mojom-shared.h"
#include "ui/accessibility/ax_features.mojom-shared.h"
#include "ui/accessibility/mojom/ax_tree_id.mojom-shared.h"
#include "ui/accessibility/mojom/ax_tree_update.mojom-shared.h"
#include "ui/gfx/geometry/mojom/geometry.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"
namespace screen_ai::mojom {
class VisualAnnotationDataView;
class LineBoxDataView;
class WordBoxDataView;
}
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::screen_ai::mojom::VisualAnnotationDataView> { … };
template <>
struct MojomTypeTraits<::screen_ai::mojom::LineBoxDataView> { … };
template <>
struct MojomTypeTraits<::screen_ai::mojom::WordBoxDataView> { … };
}
}
namespace screen_ai::mojom {
enum class Direction : int32_t { … };
std::ostream& operator<<(std::ostream& os, Direction value);
inline bool IsKnownEnumValue(Direction value) { … }
enum class OcrClientType : int32_t { … };
std::ostream& operator<<(std::ostream& os, OcrClientType value);
inline bool IsKnownEnumValue(OcrClientType value) { … }
class ScreenAIAnnotatorInterfaceBase { … };
ScreenAIAnnotatorPtrDataView;
ScreenAIAnnotatorRequestDataView;
ScreenAIAnnotatorAssociatedPtrInfoDataView;
ScreenAIAnnotatorAssociatedRequestDataView;
class Screen2xMainContentExtractorInterfaceBase { … };
Screen2xMainContentExtractorPtrDataView;
Screen2xMainContentExtractorRequestDataView;
Screen2xMainContentExtractorAssociatedPtrInfoDataView;
Screen2xMainContentExtractorAssociatedRequestDataView;
class OCRServiceInterfaceBase { … };
OCRServicePtrDataView;
OCRServiceRequestDataView;
OCRServiceAssociatedPtrInfoDataView;
OCRServiceAssociatedRequestDataView;
class MainContentExtractionServiceInterfaceBase { … };
MainContentExtractionServicePtrDataView;
MainContentExtractionServiceRequestDataView;
MainContentExtractionServiceAssociatedPtrInfoDataView;
MainContentExtractionServiceAssociatedRequestDataView;
class VisualAnnotationDataView { … };
class LineBoxDataView { … };
class WordBoxDataView { … };
}
namespace std {
template <>
struct hash<::screen_ai::mojom::Direction>
: public mojo::internal::EnumHashImpl<::screen_ai::mojom::Direction> { … };
template <>
struct hash<::screen_ai::mojom::OcrClientType>
: public mojo::internal::EnumHashImpl<::screen_ai::mojom::OcrClientType> { … };
}
namespace mojo {
namespace internal {
Serializer< ::screen_ai::mojom::Direction, MaybeConstUserType>;
}
namespace internal {
Serializer< ::screen_ai::mojom::OcrClientType, MaybeConstUserType>;
}
namespace internal {
Serializer< ::screen_ai::mojom::VisualAnnotationDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::screen_ai::mojom::LineBoxDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::screen_ai::mojom::WordBoxDataView, MaybeConstUserType>;
}
}
namespace screen_ai::mojom {
inline void VisualAnnotationDataView::GetLinesDataView(
mojo::ArrayDataView<LineBoxDataView>* output) { … }
inline void LineBoxDataView::GetWordsDataView(
mojo::ArrayDataView<WordBoxDataView>* output) { … }
inline void LineBoxDataView::GetTextLineDataView(
mojo::StringDataView* output) { … }
inline void LineBoxDataView::GetLanguageDataView(
mojo::StringDataView* output) { … }
inline void LineBoxDataView::GetBoundingBoxDataView(
::gfx::mojom::RectDataView* output) { … }
inline void LineBoxDataView::GetBaselineBoxDataView(
::gfx::mojom::RectDataView* output) { … }
inline void WordBoxDataView::GetWordDataView(
mojo::StringDataView* output) { … }
inline void WordBoxDataView::GetLanguageDataView(
mojo::StringDataView* output) { … }
inline void WordBoxDataView::GetBoundingBoxDataView(
::gfx::mojom::RectDataView* output) { … }
}
namespace perfetto {
template <>
struct TraceFormatTraits<::screen_ai::mojom::Direction> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::screen_ai::mojom::OcrClientType> { … };
}
#endif