sig
  val init : address:OpamTypes.address -> unit
  val update : address:OpamTypes.address -> OpamFilename.Set.t
  val download_archive :
    address:OpamTypes.address ->
    OpamTypes.package -> OpamTypes.filename OpamTypes.download
  val download_file :
    ?checksum:string ->
    OpamTypes.package ->
    OpamTypes.filename -> OpamTypes.filename OpamTypes.download
  val download_dir :
    OpamTypes.package ->
    ?dst:OpamTypes.dirname ->
    OpamTypes.address -> OpamTypes.dirname OpamTypes.download
  val upload_dir :
    address:OpamTypes.dirname -> OpamTypes.address -> OpamFilename.Set.t
end