sig
  val output_page_info :
    ?json:bool -> ?raisejson:bool -> Pdf.t -> int list -> unit
  val json_page_info : Pdf.t -> int list -> Cpdfyojson.Safe.t
  val process_pages :
    (int -> Pdfpage.t -> Pdfpage.t * int * Pdftransform.transform_matrix) ->
    Pdf.t -> int list -> Pdf.t
  val iter_pages : (int -> Pdfpage.t -> unit) -> Pdf.t -> int list -> unit
  val map_pages : (int -> Pdfpage.t -> 'a) -> Pdf.t -> int list -> 'a list
  val hard_box : Pdf.t -> int list -> string -> bool -> bool -> Pdf.t
  val shift_pdf :
    ?fast:bool -> (float * float) list -> Pdf.t -> int list -> Pdf.t
  val shift_boxes : (float * float) list -> Pdf.t -> int list -> Pdf.t
  val rectify_boxes : ?fast:bool -> Pdf.t -> Pdfpage.t -> Pdfpage.t
  val change_boxes :
    (float * float * float * float -> float * float * float * float) ->
    Pdf.t -> Pdfpage.t -> Pdfpage.t
  val scale_contents :
    ?fast:bool ->
    Cpdfposition.position -> float -> Pdf.t -> int list -> Pdf.t
  val set_mediabox :
    (float * float * float * float) list -> Pdf.t -> int list -> Pdf.t
  val remove_cropping_pdf : Pdf.t -> int list -> Pdf.t
  val remove_trim_pdf : Pdf.t -> int list -> Pdf.t
  val remove_bleed_pdf : Pdf.t -> int list -> Pdf.t
  val remove_art_pdf : Pdf.t -> int list -> Pdf.t
  val upright : ?fast:bool -> int list -> Pdf.t -> Pdf.t
  val rotate_pdf : int -> Pdf.t -> int list -> Pdf.t
  val rotate_pdf_by : int -> Pdf.t -> int list -> Pdf.t
  val rotate_contents : ?fast:bool -> float -> Pdf.t -> int list -> Pdf.t
  val scale_pdf :
    ?fast:bool -> (float * float) list -> Pdf.t -> int list -> Pdf.t
  val scale_to_fit_pdf :
    ?fast:bool ->
    Cpdfposition.position ->
    float -> (float * float) list -> '-> Pdf.t -> int list -> Pdf.t
  val stretch :
    ?fast:bool -> (float * float) list -> Pdf.t -> int list -> Pdf.t
  val combine_pages : bool -> Pdf.t -> Pdf.t -> bool -> bool -> bool -> Pdf.t
  val stamp :
    bool ->
    Cpdfposition.position ->
    bool ->
    bool -> bool -> bool -> bool -> int list -> Pdf.t -> Pdf.t -> Pdf.t
  val hasbox : Pdf.t -> int -> string -> bool
  val crop_pdf :
    ?box:string ->
    (float * float * float * float) list -> Pdf.t -> int list -> Pdf.t
  val setBox :
    string -> float -> float -> float -> float -> Pdf.t -> int list -> Pdf.t
  val vflip_pdf : ?fast:bool -> Pdf.t -> int list -> Pdf.t
  val hflip_pdf : ?fast:bool -> Pdf.t -> int list -> Pdf.t
  val trim_marks : ?fast:bool -> Pdf.t -> int list -> Pdf.t
  val show_boxes : ?fast:bool -> Pdf.t -> int list -> Pdf.t
  val copy_box : string -> string -> bool -> Pdf.t -> int list -> Pdf.t
  val allupright : int list -> Pdf.t -> bool
  val alluprightonly : int list -> Pdf.t -> bool
  val change_pattern_matrices_page :
    Pdf.t -> Pdftransform.transform_matrix -> Pdfpage.t -> Pdfpage.t
  val redact : process_struct_tree:bool -> Pdf.t -> int list -> Pdf.t
end