package com.mediafire.sdk;
import com.mediafire.sdk.response_models.MediaFireApiResponse;
import java.util.Map;
public interface MediaFireClient {
/**
* request that will not append a signature or session token to the request
* @param request
* @param classOfT
* @param <T>
* @return
* @throws MediaFireException
*/
<T extends MediaFireApiResponse> T noAuthRequest(MediaFireApiRequest request, Class<T> classOfT) throws MediaFireException;
/**
* request to the mediafire conversion server
* @param hash
* @param requestParameters
* @return
* @throws MediaFireException
*/
MediaFireHttpResponse conversionServerRequest(String hash, Map<String, Object> requestParameters) throws MediaFireException;
/**
* upload request which uses an Action Token
* @param request
* @param classOfT
* @param <T>
* @return
* @throws MediaFireException
*/
<T extends MediaFireApiResponse> T uploadRequest(MediaFireApiRequest request, Class<T> classOfT) throws MediaFireException;
/**
* request that will append a session token
* @param request
* @param classOfT
* @param <T>
* @return
* @throws MediaFireException
*/
<T extends MediaFireApiResponse> T sessionRequest(MediaFireApiRequest request, Class<T> classOfT) throws MediaFireException;
/**
* request for a new session token
* @param <T>
* @return
* @throws MediaFireException
*/
<T extends MediaFireApiResponse> T authenticationRequest(Class<T> classOfT) throws MediaFireException;
/**
* the http requester
* @return
*/
MediaFireHttpRequester getHttpRequester();
/**
* the session store
* @return
*/
MediaFireSessionStore getSessionStore();
/**
* the credentials store
* @return
*/
MediaFireCredentialsStore getCredentialStore();
/**
* the hasher
* @return
*/
MediaFireHasher getHasher();
/**
* the response parser
* @return
*/
MediaFireApiResponseParser getResponseParser();
/**
* the application id of the client
* @return
*/
String getApplicationId();
/**
* the api key of the client
* @return
*/
String getApiKey();
/**
* api version that will always be used (unless null or empty)
* @return
*/
String getApiVersion();
}