sig
  type t = java'util'concurrent'locks'Condition java_instance
  val await : Condition.t -> unit
  val await_time : Condition.t -> java_long -> TimeUnit.t -> bool
  val await_nanos : Condition.t -> java_long -> java_long
  val await_uninterruptibly : Condition.t -> unit
  val await_until : Condition.t -> JavaDate.t -> bool
  val signal : Condition.t -> unit
  val signal_all : Condition.t -> unit
  val null : Condition.t
  external is_null : Condition.t -> bool = "java is_null"
  external is_not_null : Condition.t -> bool = "java is_not_null"
  val wrap : Condition.t -> Condition.t option
  val unwrap : Condition.t option -> Condition.t
end