using System; namespace SRDebugger.Services { public delegate void BugReportCompleteCallback(bool didSucceed, string errorMessage); public delegate void BugReportProgressCallback(float progress); public interface IBugReportService { /// /// Whether the bug reporter is available for use right now. /// bool IsUsable { get; } /// /// Set the handler that will submit bug reports. /// void SetHandler(IBugReporterHandler handler); /// /// Submit a bug report. /// completeHandler can be invoked any time after the method is called /// (even before the method has returned in case of no internet). /// /// Bug report to send /// Delegate to call once bug report is submitted successfully /// Optionally provide a callback for when progress % is known void SendBugReport(BugReport report, BugReportCompleteCallback completeHandler, IProgress progressCallback = null); } }