sig
  type encryption_method =
      PDF40bit
    | PDF128bit
    | AES128bit of bool
    | AlreadyEncrypted
  type encryption = {
    encryption_method : Pdfwrite.encryption_method;
    owner_password : string;
    user_password : string;
    permissions : Pdfcrypt.permission list;
  }
  val pdf_to_output :
    bool -> Pdfwrite.encryption option -> Pdf.pdfdoc -> Pdfio.output -> unit
  val pdf_to_channel :
    bool ->
    Pdfwrite.encryption option ->
    bool -> Pdf.pdfdoc -> Pervasives.out_channel -> unit
  val pdf_to_file_options :
    bool ->
    Pdfwrite.encryption option -> bool -> Pdf.pdfdoc -> string -> unit
  val pdf_to_file : Pdf.pdfdoc -> string -> unit
  val pdf_to_file_recrypting :
    Pdf.pdfdoc -> Pdf.pdfdoc -> string -> string -> unit
  val string_of_pdf : Pdf.pdfobject -> string
  val pagetree_make_explicit : (Pdf.pdfdoc -> Pdf.pdfdoc) Pervasives.ref
end