package com.github.to2mbn.jmccc.mcdownloader;

import java.util.concurrent.CompletableFuture;
import com.github.to2mbn.jmccc.version.Library;

public interface Downloader {

	/**
	 * Fetches the remote versions list asynchronously.
	 * 
	 * @return the remote versions list
	 */
	CompletableFuture<RemoteVersionList> getRemoteVersionList();

	/**
	 * Downloads the given library asynchronously.
	 * 
	 * @param library the library to download
	 * @return void
	 */
	CompletableFuture<Void> downloadLibrary(Library library);

	/**
	 * Downloads a minecraft asynchronously.
	 * 
	 * @param version the version of the minecraft to download
	 * @return void
	 */
	CompletableFuture<Void> downloadVersion(String version);

	/**
	 * Downloads the given asset asynchronously.
	 * 
	 * @param asset the asset to download
	 * @return void
	 */
	CompletableFuture<Void> downloadAsset(Asset asset);

}

@@ -882,10 +882,235 @@
 sset);%0A%0A
+%09/**%0A%09 * Downloads the given asset index asynchronously.%0A%09 * %0A%09 * @param version the version of the asset index to download%0A%09 * @return the asset index%0A%09 */%0A%09CompletableFuture%3CAssetIndex%3E downloadAssetIndex(String version);%0A%0A
 %7D%0A

add downloadAssetIndex