sig
  type cookie
  type latency = [ `Cpu_dma | `Network ]
  type latency_request = {
    lr_cookie : UPower_policy.cookie;
    lr_uid : int;
    lr_pid : int;
    lr_exec : string;
    lr_timespec : int64;
    lr_persistent : bool;
    lr_typ : UPower_policy.latency;
    lr_reserved : string;
    lr_value : int;
  }
  val get_latency_requests :
    UPower.t -> UPower_policy.latency_request list Lwt.t
  val get_latency : UPower.t -> latency:UPower_policy.latency -> int Lwt.t
  val request_latency :
    UPower.t ->
    latency:UPower_policy.latency ->
    value:int -> persistent:bool -> UPower_policy.cookie Lwt.t
  val cancel_request :
    UPower.t ->
    latency:UPower_policy.latency ->
    cookie:UPower_policy.cookie -> unit Lwt.t
  val set_minimum_latency :
    UPower.t -> latency:UPower_policy.latency -> value:int -> unit Lwt.t
  val requests_changed : UPower.t -> unit OBus_signal.t
  val latency_changed :
    UPower.t -> (UPower_policy.latency * int) OBus_signal.t
end