# 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.OutputFormat do
  @moduledoc """
  Output format for extraction results.

  Controls the format of the `content` field in `ExtractionResult`.
  When set to `Markdown`, `Djot`, or `Html`, the output uses that format.
  `Plain` returns the raw extracted text.
  `Structured` returns JSON with full OCR element data including bounding
  boxes and confidence scores.
  """

  @typedoc "Output format for extraction results."
  @type t :: term()

  @typedoc "Plain text content only (default)"
  @type plain :: :plain
  @typedoc "Markdown format"
  @type markdown :: :markdown
  @typedoc "Djot markup format"
  @type djot :: :djot
  @typedoc "HTML format"
  @type html :: :html
  @typedoc "JSON tree format with heading-driven sections."
  @type json :: :json
  @typedoc "Structured JSON format with full OCR element metadata."
  @type structured :: :structured
  @typedoc "Custom renderer registered via the RendererRegistry. The string is the renderer name (e.g., \"docx\", \"latex\")."
  @type custom :: %{type: :custom, value: String.t()}
end
