# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
# Issues & docs: https://github.com/kreuzberg-dev/alef
defmodule Kreuzberg.OcrBoundingGeometry do
  @moduledoc """
  Bounding geometry for an OCR element.

  Supports both axis-aligned rectangles (from Tesseract) and 4-point quadrilaterals
  (from PaddleOCR and rotated text detection).
  """

  @typedoc "Bounding geometry for an OCR element."
  @type t :: term()

  @typedoc "Axis-aligned bounding box (typical for Tesseract output)."
  @type rectangle :: %{type: :rectangle, left: non_neg_integer(), top: non_neg_integer(), width: non_neg_integer(), height: non_neg_integer()}
  @typedoc "4-point quadrilateral for rotated/skewed text (PaddleOCR)."
  @type quadrilateral :: %{type: :quadrilateral, points: String.t()}
end
