sig
  type labelstyle =
      DecimalArabic
    | UppercaseRoman
    | LowercaseRoman
    | UppercaseLetters
    | LowercaseLetters
    | NoLabelPrefixOnly
  type t = {
    labelstyle : Pdfpagelabels.labelstyle;
    labelprefix : string option;
    startpage : int;
    startvalue : int;
  }
  val string_of_labelstyle : Pdfpagelabels.labelstyle -> string
  val string_of_pagelabel : Pdfpagelabels.t -> string
  val read : Pdf.t -> Pdfpagelabels.t list
  val complete : Pdfpagelabels.t list -> Pdfpagelabels.t list
  val pagelabel_of_pagenumber :
    int -> Pdfpagelabels.t list -> Pdfpagelabels.t
  val pagelabeltext_of_pagenumber : int -> Pdfpagelabels.t list -> string
  val add_label :
    int ->
    Pdfpagelabels.t list -> Pdfpagelabels.t -> int -> Pdfpagelabels.t list
  val coalesce : Pdfpagelabels.t list -> Pdfpagelabels.t list
  val merge_pagelabels : Pdf.t list -> int list list -> Pdfpagelabels.t list
  val write : Pdf.t -> Pdfpagelabels.t list -> unit
  val remove : Pdf.t -> unit
end