sig
  type ocgusage
  type ocg = {
    ocg_name : string;
    ocg_intent : string list;
    ocg_usage : Pdfocg.ocgusage option;
  }
  type ocgstate = OCG_ON | OCG_OFF | OCG_Unchanged
  type ocglistmode = OCG_AllPages | OCG_VisiblePages
  type ocgappdict
  type ocgconfig = {
    ocgconfig_name : string option;
    ocgconfig_creator : string option;
    ocgconfig_basestate : Pdfocg.ocgstate;
    ocgconfig_on : int list option;
    ocgconfig_off : int list option;
    ocgconfig_intent : string list;
    ocgconfig_usage_application_dictionaries : Pdfocg.ocgappdict list option;
    ocgconfig_order : int Pdfutil.tree option;
    ocgconfig_listmode : Pdfocg.ocglistmode;
    ocgconfig_rbgroups : int list list;
    ocgconfig_locked : int list;
  }
  type ocgproperties = {
    ocgs : (int * Pdfocg.ocg) list;
    ocg_default_config : Pdfocg.ocgconfig;
    ocg_configs : Pdfocg.ocgconfig list;
  }
  val read_ocg : Pdf.t -> Pdfocg.ocgproperties option
  val write_ocg : Pdf.t -> Pdfocg.ocgproperties -> unit
  val print_document_ocg : Pdf.t -> unit
end