using System;
using System.Collections.Generic;
namespace Unity.Cloud.UserReporting.Client
{
///
/// Represents a user reporting platform.
///
public interface IUserReportingPlatform
{
#region Methods
///
/// Deserialized the specified JSON.
///
/// The type.
/// The JSON.
/// The deserialized object instance.
T DeserializeJson(string json);
///
/// Gets device metadata.
///
/// Device metadata.
IDictionary GetDeviceMetadata();
///
/// Modifies a user report.
///
/// The user report.
void ModifyUserReport(UserReport userReport);
///
/// Called at the end of a frame.
///
/// The client.
void OnEndOfFrame(UserReportingClient client);
///
/// Posts to an endpoint.
///
/// The endpoint.
/// The content type.
/// The content.
/// The progress callback. Provides the upload and download progress.
/// The callback. Provides a value indicating whether the post was successful and provides the resulting byte array.
void Post(string endpoint, string contentType, byte[] content, Action progressCallback, Action callback);
///
/// Runs a task asynchronously.
///
/// The task.
/// The callback.
void RunTask(Func