sig
  type t
  type simple = [ `Activable | `Failed | `In_progress | `Successful ]
  val simple_to_yojson : Ketrew_pure.Target.State.simple -> Yojson.Safe.json
  val simple_of_yojson :
    Yojson.Safe.json ->
    [ `Error of string | `Ok of Ketrew_pure.Target.State.simple ]
  val simplify :
    Ketrew_pure.Target.State.t -> Ketrew_pure.Target.State.simple
  val name : Ketrew_pure.Target.State.t -> string
  type summary =
      [ `Time of Internal_pervasives.Time.t ] * [ `Log of string option ] *
      [ `Info of string list ]
  val summary :
    Ketrew_pure.Target.State.t -> Ketrew_pure.Target.State.summary
  val log :
    ?depth:int -> Ketrew_pure.Target.State.t -> Internal_pervasives.Log.t
  val passive_time : Ketrew_pure.Target.State.t -> Internal_pervasives.Time.t
  val finished_time :
    Ketrew_pure.Target.State.t -> Internal_pervasives.Time.t option
  module Is :
    sig
      val building : Ketrew_pure.Target.State.t -> bool
      val tried_to_start : Ketrew_pure.Target.State.t -> bool
      val started_running : Ketrew_pure.Target.State.t -> bool
      val starting : Ketrew_pure.Target.State.t -> bool
      val still_building : Ketrew_pure.Target.State.t -> bool
      val still_running : Ketrew_pure.Target.State.t -> bool
      val ran_successfully : Ketrew_pure.Target.State.t -> bool
      val successfully_did_nothing : Ketrew_pure.Target.State.t -> bool
      val active : Ketrew_pure.Target.State.t -> bool
      val verified_success : Ketrew_pure.Target.State.t -> bool
      val already_done : Ketrew_pure.Target.State.t -> bool
      val dependencies_failed : Ketrew_pure.Target.State.t -> bool
      val failed_running : Ketrew_pure.Target.State.t -> bool
      val failed_to_kill : Ketrew_pure.Target.State.t -> bool
      val failed_to_start : Ketrew_pure.Target.State.t -> bool
      val killing : Ketrew_pure.Target.State.t -> bool
      val tried_to_kill : Ketrew_pure.Target.State.t -> bool
      val did_not_ensure_condition : Ketrew_pure.Target.State.t -> bool
      val killed : Ketrew_pure.Target.State.t -> bool
      val finished : Ketrew_pure.Target.State.t -> bool
      val passive : Ketrew_pure.Target.State.t -> bool
      val killable : Ketrew_pure.Target.State.t -> bool
      val finished_because_dependencies_died :
        Ketrew_pure.Target.State.t -> bool
      val activated_by_user : Ketrew_pure.Target.State.t -> bool
    end
  module Count :
    sig
      val consecutive_recent_attempts : Ketrew_pure.Target.State.t -> int
    end
  module Flat :
    sig
      type state = Ketrew_pure.Target.State.t
      type item = private {
        time : float;
        simple : Ketrew_pure.Target.State.simple;
        name : string;
        message : string option;
        more_info : string list;
        finished : bool;
      }
      val item_to_yojson :
        Ketrew_pure.Target.State.Flat.item -> Yojson.Safe.json
      val item_of_yojson :
        Yojson.Safe.json ->
        [ `Error of string | `Ok of Ketrew_pure.Target.State.Flat.item ]
      val time : Ketrew_pure.Target.State.Flat.item -> float
      val simple :
        Ketrew_pure.Target.State.Flat.item -> Ketrew_pure.Target.State.simple
      val name : Ketrew_pure.Target.State.Flat.item -> string
      val message : Ketrew_pure.Target.State.Flat.item -> string option
      val more_info : Ketrew_pure.Target.State.Flat.item -> string list
      val finished : Ketrew_pure.Target.State.Flat.item -> bool
      type t = private { history : Ketrew_pure.Target.State.Flat.item list; }
      val to_yojson : Ketrew_pure.Target.State.Flat.t -> Yojson.Safe.json
      val of_yojson :
        Yojson.Safe.json ->
        [ `Error of string | `Ok of Ketrew_pure.Target.State.Flat.t ]
      val empty : unit -> Ketrew_pure.Target.State.Flat.t
      val of_state :
        Ketrew_pure.Target.State.Flat.state ->
        Ketrew_pure.Target.State.Flat.t
      val history :
        Ketrew_pure.Target.State.Flat.t ->
        Ketrew_pure.Target.State.Flat.item list
      val latest :
        Ketrew_pure.Target.State.Flat.t ->
        Ketrew_pure.Target.State.Flat.item option
      val since :
        Ketrew_pure.Target.State.Flat.t ->
        float -> Ketrew_pure.Target.State.Flat.t option
      val merge :
        Ketrew_pure.Target.State.Flat.t ->
        Ketrew_pure.Target.State.Flat.t -> Ketrew_pure.Target.State.Flat.t
    end
end