sig
  type encoding = Raw | UTF8 | Stripped
  val encode_output : Cpdfmetadata.encoding -> string -> string
  val copy_id : bool -> Pdf.t -> Pdf.t -> Pdf.t
  val set_pdf_info :
    ?xmp_also:bool ->
    ?xmp_just_set:bool -> string * Pdf.pdfobject * int -> Pdf.t -> Pdf.t
  val get_xmp_info : Pdf.t -> string -> string
  val set_viewer_preference : string * Pdf.pdfobject * int -> Pdf.t -> Pdf.t
  val set_page_layout : Pdf.t -> string -> Pdf.t
  val set_page_mode : Pdf.t -> string -> Pdf.t
  val set_non_full_screen_page_mode : Pdf.t -> string -> Pdf.t
  val set_open_action : Pdf.t -> ?dest:string -> bool -> int -> Pdf.t
  val set_version : int -> Pdf.t -> unit
  val get_info_utf8 : Pdf.t -> string -> string
  val output_info :
    ?json:(string * Cpdfyojson.Safe.t) list Stdlib.ref ->
    Cpdfmetadata.encoding -> Pdf.t -> unit
  val output_xmp_info :
    ?json:(string * Cpdfyojson.Safe.t) list Stdlib.ref ->
    Cpdfmetadata.encoding -> Pdf.t -> unit
  val create_metadata : Pdf.t -> Pdf.t
  val set_metadata : bool -> string -> Pdf.t -> Pdf.t
  val set_metadata_from_bytes : bool -> Pdfio.bytes -> Pdf.t -> Pdf.t
  val remove_metadata : Pdf.t -> Pdf.t
  val get_metadata : Pdf.t -> Pdfio.bytes option
  val print_metadata : Pdf.t -> unit
  val set_metadata_date : Pdf.t -> string -> Pdf.t
  val expand_date : string -> string
  val get_catalog_item : string -> Pdf.t -> string
  val get_viewer_pref_item : string -> Pdf.t -> string
  val determine_subformats : Pdf.t -> string list
end