sig
  type port = int
  and host = string
  and id = string
  class type config =
    object
      method args_spec : (string * Arg.spec * string) list
      method color_connected : string
      method color_connected_temp : string
      method color_myself : string
      method color_not_connected : string
      method dialog_buttons : bool
      method id : string
      method people : (string * string * int) list
      method popup_all : bool
      method port : int
      method save : unit
      method second_send_timeout : float
      method send_timeout : int
      method set_color_connected : string -> unit
      method set_color_connected_temp : string -> unit
      method set_color_myself : string -> unit
      method set_color_not_connected : string -> unit
      method set_dialog_buttons : bool -> unit
      method set_id : string -> unit
      method set_people :
        (Mlchat.id * Mlchat.host * Mlchat.port) list -> unit
      method set_popup_all : bool -> unit
      method set_port : int -> unit
      method set_send_timeout : int -> unit
      method set_timeout : int -> unit
      method timeout : int
    end
  class file_config : string -> config
  type address = Mlchat.host * Mlchat.port
  and message = string
  and version
  and source = Mlchat.version * Mlchat.id * Mlchat.address
  and proto =
      Hello
    | HelloOk
    | Byebye
    | Message of Mlchat.message
    | AddOpen of Mlchat.id * Mlchat.address
    | RoomMessage of Mlchat.id *
        (Mlchat.id * Mlchat.host * Mlchat.port) list * Mlchat.message
    | File of int * string
  and info = Mlchat.source * Mlchat.id * Mlchat.proto
  val version : unit -> Mlchat.version
  val read_info : Buffer.t -> Mlchat.info
  val read_info_channel : Pervasives.in_channel -> Mlchat.info
  val write_info : Buffer.t -> Mlchat.info -> unit
  val write_info_channel : Pervasives.out_channel -> Mlchat.info -> unit
end