sig
  val download_package : OpamState.Types.t -> OpamTypes.package -> unit
  val extract_package : OpamState.Types.t -> OpamTypes.package -> unit
  val build_and_install_package :
    OpamState.Types.t -> metadata:bool -> OpamTypes.package -> unit
  val remove_package :
    OpamState.Types.t ->
    metadata:bool ->
    ?keep_build:bool -> ?silent:bool -> OpamTypes.package -> unit
  val cleanup_package_artefacts :
    OpamState.Types.t -> OpamTypes.package -> unit
  val remove_all_packages :
    OpamState.Types.t ->
    metadata:bool ->
    OpamSolver.solution ->
    (OpamState.Types.t * OpamTypes.package_set) *
    [ `Exception of exn | `Successful of unit ]
  val sources_needed :
    OpamState.Types.t -> OpamSolver.solution -> OpamTypes.package_set
  val update_metadata :
    OpamState.Types.t ->
    installed:OpamTypes.package_set ->
    installed_roots:OpamTypes.package_set ->
    reinstall:OpamTypes.package_set -> OpamState.Types.t
end