sig
  type serial_element_kind =
      ElementContentInTextElement
    | ElementContentInContentElement
    | TextElementInElementContent
    | TextElementInTextContent
    | TopElement
  type serialization_context
  val build_serialization_context :
    Processing_context.serialization_kind ->
    Encoding.rep_encoding ->
    Encoding.encoding ->
    Whitespace.mode ->
    Streaming_types.xml_stream -> Serialization_context.serialization_context
  val get_serialization_kind :
    Serialization_context.serialization_context ->
    Processing_context.serialization_kind
  val get_internal_encoding :
    Serialization_context.serialization_context -> Encoding.rep_encoding
  val get_target_encoding :
    Serialization_context.serialization_context -> Encoding.encoding
  val get_next_event :
    Serialization_context.serialization_context -> Streaming_types.sax_event
  val peek_next_event :
    Serialization_context.serialization_context ->
    Streaming_types.sax_event option
  val get_current_element_kind :
    Serialization_context.serialization_context ->
    Serialization_context.serial_element_kind
  val new_current_element_kind :
    Serialization_context.serial_element_kind ->
    Streaming_types.has_element_content ->
    Serialization_context.serial_element_kind
  val push_element :
    Serialization_context.serialization_context ->
    Namespace_names.uqname * Serialization_context.serial_element_kind ->
    unit
  val pop_element :
    Serialization_context.serialization_context ->
    Namespace_names.uqname * Serialization_context.serial_element_kind
  val push_document : Serialization_context.serialization_context -> unit
  val pop_document : Serialization_context.serialization_context -> unit
  val is_toplevel : Serialization_context.serialization_context -> bool
  val is_empty : Serialization_context.serialization_context -> bool
end