sig
  val cmd : Bos_setup.Cmd.t
  val ensure_publish : unit -> (unit, Bos_setup.R.msg) Bos_setup.result
  val submit :
    ?msg:string ->
    opam_file:Fpath.t -> (unit, Bos_setup.R.msg) Bos_setup.result
  val ocaml_base_packages : Bos_setup.String.set
  module File :
    sig
      val field_names : Bos_setup.String.set
      val fields :
        Fpath.t ->
        (string list Bos_setup.String.map, Bos_setup.R.msg) Bos_setup.result
      val deps :
        ?opts:bool ->
        string list Bos_setup.String.map -> Bos_setup.String.set
    end
  module Descr :
    sig
      type t = string * string
      val of_string :
        string -> (Topkg_care.Opam.Descr.t, Bos_setup.R.msg) Bos_setup.result
      val to_string : Topkg_care.Opam.Descr.t -> string
      val to_opam_fields : Topkg_care.Opam.Descr.t -> string
      val of_readme :
        ?flavour:Topkg_care.Text.flavour ->
        string -> (Topkg_care.Opam.Descr.t, Bos_setup.R.msg) Bos_setup.result
      val of_readme_file :
        Fpath.t ->
        (Topkg_care.Opam.Descr.t, Bos_setup.R.msg) Bos_setup.result
    end
  module Url :
    sig
      type t
      val v : uri:string -> checksum:string -> Topkg_care.Opam.Url.t
      val with_distrib_file :
        uri:string ->
        Fpath.t -> (Topkg_care.Opam.Url.t, Bos_setup.R.msg) Bos_setup.result
      val to_opam_section : Topkg_care.Opam.Url.t -> string
    end
end