sig
  val emit :
    'OBus_member.Signal.t ->
    'OBus_object.t -> ?peer:OBus_peer.t -> '-> unit Lwt.t
  type 'a t
  val make : 'OBus_member.Signal.t -> OBus_proxy.t -> 'OBus_signal.t
  val make_any :
    'OBus_member.Signal.t ->
    OBus_peer.t -> (OBus_proxy.t * 'a) OBus_signal.t
  val connect :
    ?switch:Lwt_switch.t -> 'OBus_signal.t -> 'React.event Lwt.t
  val map_event :
    ((OBus_context.t * 'a) React.event -> (OBus_context.t * 'b) React.event) ->
    'OBus_signal.t -> 'OBus_signal.t
  val map : ('-> 'b) -> 'OBus_signal.t -> 'OBus_signal.t
  val map_with_context :
    (OBus_context.t -> '-> 'b) -> 'OBus_signal.t -> 'OBus_signal.t
  val with_context : 'OBus_signal.t -> (OBus_context.t * 'a) OBus_signal.t
  val with_filters :
    OBus_match.arguments -> 'OBus_signal.t -> 'OBus_signal.t
  val with_match_rule : bool -> 'OBus_signal.t -> 'OBus_signal.t
end