sig
  type 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.Diff_types.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 : '-> Ocamlcvs.Behav.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:Types.cvs_revision ->
        ?rev2:Types.cvs_revision -> string -> Diff_types.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 -> 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 * 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 -> (string * (unit -> unit)) list
      method needs_cvs_status : bool
      method rcs_revision : 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:Types.cvs_revision ->
        ?rev2:Types.cvs_revision -> string -> Diff_types.diffs * string
      method cvs_log_file : string -> string
      method cvs_remove_files : string list -> string list * string list
      method cvs_revisions_file : string -> 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 * Types.update_action) list
      method expand_dir : string -> bool
      method menu_ctx : string option -> (string * (unit -> unit)) list
      method rcs_revision : 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 :
    'Ocamlcvs.Behav.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.Diff_types.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