# 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.ImageKind do
  @moduledoc "Heuristic classification of what an image likely depicts."

  @typedoc "Heuristic classification of what an image likely depicts."
  @type t ::
          :photograph
          | :diagram
          | :chart
          | :drawing
          | :text_block
          | :decoration
          | :logo
          | :icon
          | :tile_fragment
          | :mask
          | :page_raster
          | :unknown

  @photograph :photograph
  @diagram :diagram
  @chart :chart
  @drawing :drawing
  @text_block :text_block
  @decoration :decoration
  @logo :logo
  @icon :icon
  @tile_fragment :tile_fragment
  @mask :mask
  @page_raster :page_raster
  @unknown :unknown

  @doc "Photographic image (natural scene, photograph)"
  @spec photograph() :: t()
  def photograph, do: @photograph
  @doc "Technical or schematic diagram"
  @spec diagram() :: t()
  def diagram, do: @diagram
  @doc "Chart, graph, or plot"
  @spec chart() :: t()
  def chart, do: @chart
  @doc "Freehand or technical drawing"
  @spec drawing() :: t()
  def drawing, do: @drawing
  @doc "Text-heavy image (scanned text, document)"
  @spec text_block() :: t()
  def text_block, do: @text_block
  @doc "Decorative element or border"
  @spec decoration() :: t()
  def decoration, do: @decoration
  @doc "Logo or brand mark"
  @spec logo() :: t()
  def logo, do: @logo
  @doc "Small icon"
  @spec icon() :: t()
  def icon, do: @icon
  @doc "Fragment of a larger tiled image (tile of a technical drawing)"
  @spec tile_fragment() :: t()
  def tile_fragment, do: @tile_fragment
  @doc "Mask or transparency map"
  @spec mask() :: t()
  def mask, do: @mask
  @doc "Full-page render produced during OCR preprocessing; used as a citation thumbnail."
  @spec page_raster() :: t()
  def page_raster, do: @page_raster
  @doc "Could not classify with reasonable confidence"
  @spec unknown() :: t()
  def unknown, do: @unknown
end
