sig
  type autorization_response =
    Ocamlcvs.Behav.autorization_response =
      Continue
    | Skip
    | Stop
  class type ['a] data =
    object
      method cvs_info_of_t : '-> Ocamlcvs.Types.cvs_info
      method elements : string -> 'a list
      method remove_element : string -> unit
      method t_of_cvs_info : Ocamlcvs.Types.cvs_info -> 'a
      method update_element : '-> unit
    end
  class type ct_cvs =
    object
      method cvs_add_dir : string -> unit
      method cvs_add_files :
        ?binary:bool -> string list -> string list * string list
      method cvs_commit_dir : ?comment:string -> string -> unit
      method cvs_commit_files : ?comment:string -> string list -> unit
      method cvs_create_and_add_dir : string -> unit
      method cvs_diff_file :
        ?rev:Ocamlcvs.Types.cvs_revision ->
        ?rev2:Ocamlcvs.Types.cvs_revision ->
        string -> Ocamlcvs.Diffs.diffs * string
      method cvs_log_file : string -> string
      method cvs_remove_files : string list -> string list * string list
      method cvs_revisions_file : string -> Ocamlcvs.Types.cvs_revision list
      method cvs_status_dir : string -> unit
      method cvs_status_files : string list -> unit
      method cvs_tag_dir :
        ?recursive:bool -> (string -> bool) -> string -> string -> unit
      method cvs_tag_files :
        (string -> bool) -> string -> string list -> unit
      method cvs_tags_file : string -> (string * string) list
      method cvs_update_dir :
        string -> (string * Ocamlcvs.Types.update_action) list
      method rcs_revision : Ocamlcvs.Types.cvs_revision -> string -> string
    end
  class type ['a] list_behaviour =
    object
      method after_action : '-> unit
      method autorize_file : '-> autorization_response
      method comparison_function : int -> '-> '-> int
      method cvs_add_dir : string -> unit
      method cvs_add_files :
        ?binary:bool -> string list -> string list * string list
      method cvs_commit_dir : ?comment:string -> string -> unit
      method cvs_commit_files : ?comment:string -> string list -> unit
      method cvs_create_and_add_dir : string -> unit
      method cvs_diff_file :
        ?rev:Ocamlcvs.Types.cvs_revision ->
        ?rev2:Ocamlcvs.Types.cvs_revision ->
        string -> Ocamlcvs.Diffs.diffs * string
      method cvs_info_of_t : '-> Ocamlcvs.Types.cvs_info
      method cvs_log_file : string -> string
      method cvs_remove_files : string list -> string list * string list
      method cvs_revisions_file : string -> Ocamlcvs.Types.cvs_revision list
      method cvs_status_dir : string -> unit
      method cvs_status_files : string list -> unit
      method cvs_tag_dir :
        ?recursive:bool -> (string -> bool) -> string -> string -> unit
      method cvs_tag_files :
        (string -> bool) -> string -> string list -> unit
      method cvs_tags_file : string -> (string * string) list
      method cvs_update_dir :
        string -> (string * Ocamlcvs.Types.update_action) list
      method display_strings : '-> string option * string list
      method double_click : '-> unit
      method elements : string -> 'a list
      method menu_ctx : 'a list -> GToolbox.menu_entry list
      method needs_cvs_status : bool
      method rcs_revision : Ocamlcvs.Types.cvs_revision -> string -> string
      method remove_element : string -> unit
      method select : '-> unit
      method t_of_cvs_info : Ocamlcvs.Types.cvs_info -> 'a
      method titles : string list
      method unselect : '-> unit
      method update_element : '-> unit
    end
  class type ['a] tree_behaviour =
    object
      method add_expanded_dir : string -> unit
      method cvs_add_dir : string -> unit
      method cvs_add_files :
        ?binary:bool -> string list -> string list * string list
      method cvs_commit_dir : ?comment:string -> string -> unit
      method cvs_commit_files : ?comment:string -> string list -> unit
      method cvs_create_and_add_dir : string -> unit
      method cvs_diff_file :
        ?rev:Ocamlcvs.Types.cvs_revision ->
        ?rev2:Ocamlcvs.Types.cvs_revision ->
        string -> Ocamlcvs.Diffs.diffs * string
      method cvs_log_file : string -> string
      method cvs_remove_files : string list -> string list * string list
      method cvs_revisions_file : string -> Ocamlcvs.Types.cvs_revision list
      method cvs_status_dir : string -> unit
      method cvs_status_files : string list -> unit
      method cvs_tag_dir :
        ?recursive:bool -> (string -> bool) -> string -> string -> unit
      method cvs_tag_files :
        (string -> bool) -> string -> string list -> unit
      method cvs_tags_file : string -> (string * string) list
      method cvs_update_dir :
        string -> (string * Ocamlcvs.Types.update_action) list
      method expand_dir : string -> bool
      method menu_ctx : string option -> GToolbox.menu_entry list
      method rcs_revision : Ocamlcvs.Types.cvs_revision -> string -> string
      method remove_expanded_dir : string -> unit
      method roots : string list
      method select : string -> unit
      method t_of_cvs_info : Ocamlcvs.Types.cvs_info -> 'a
      method unselect : string -> unit
      method update_element : '-> unit
    end
  class ['a] cvs :
    'a data ->
    object
      method cvs_add_dir : string -> unit
      method cvs_add_files :
        ?binary:bool -> string list -> string list * string list
      method cvs_commit_dir : ?comment:string -> string -> unit
      method cvs_commit_files : ?comment:string -> string list -> unit
      method cvs_create_and_add_dir : string -> unit
      method cvs_diff_file :
        ?rev:Ocamlcvs.Types.cvs_revision ->
        ?rev2:Ocamlcvs.Types.cvs_revision ->
        string -> Ocamlcvs.Diffs.diffs * string
      method cvs_log_file : string -> string
      method cvs_remove_files : string list -> string list * string list
      method cvs_revisions_file : string -> Ocamlcvs.Types.cvs_revision list
      method cvs_status_dir : string -> unit
      method cvs_status_files : string list -> unit
      method cvs_tag_dir :
        ?recursive:bool -> (string -> bool) -> string -> string -> unit
      method cvs_tag_files :
        (string -> bool) -> string -> string list -> unit
      method cvs_tags_file : string -> (string * string) list
      method cvs_update_dir :
        string -> (string * Ocamlcvs.Types.update_action) list
      method rcs_revision : Ocamlcvs.Types.cvs_revision -> string -> string
    end
end