sig
  type point = float * float * float
  type iccbased = {
    icc_n : int;
    icc_alternate : Pdfspace.colourspace;
    icc_range : float array;
    icc_metadata : Pdf.pdfobject option;
    icc_stream : Pdf.pdfobject;
  }
  and colourspace =
      DeviceGray
    | DeviceRGB
    | DeviceCMYK
    | CalGray of Pdfspace.point * Pdfspace.point * float
    | CalRGB of Pdfspace.point * Pdfspace.point * float array * float array
    | Lab of Pdfspace.point * Pdfspace.point * float array
    | ICCBased of Pdfspace.iccbased
    | Indexed of Pdfspace.colourspace * (int, int list) Hashtbl.t
    | Pattern
    | Separation of string * Pdfspace.colourspace * Pdffun.pdf_fun
    | DeviceN of string array * Pdfspace.colourspace * Pdffun.pdf_fun *
        Pdf.pdfobject
  val string_of_colourspace : Pdfspace.colourspace -> string
  val name_of_colourspace : Pdfspace.colourspace -> string option
  val read_colourspace :
    Pdf.pdfdoc -> Pdf.pdfobject -> Pdf.pdfobject -> Pdfspace.colourspace
end