using System;
using UnityEngine;
using UnityEngine.UIElements;
using Object = UnityEngine.Object;
namespace UnityEditor.U2D.Tooling.Analyzer
{
interface IAnalyzerReport
{
///
/// The VisualElement that represents the report in Analyzer Window's list view.
///
VisualElement listItem { get; }
///
/// The VisualElement that represents the report in Report Window's view.
///
VisualElement reportContent { get; }
///
/// The VisualElement that represents the report in Report Window's view.
///
VisualElement settingsContent { get; }
///
/// The title of the report.
///
string reportTitle { get; }
///
/// The method is called to provide the report with the data source provider.
///
/// Data source provider avaiable currently.
void SetDataSourceProvider(IDataSourceProvider dataSourceProvider);
///
/// Called when the report is disposed for any clean up.
///
void Dispose();
///
/// Registered to be informed when the report wants inspects an object.
///
event Action onInspectObject;
///
/// Returns the report given the type. This is used when a IAnalyzerReport have nested reports.
///
/// The report type.
/// The IAnalyzerReport for the report type.
IAnalyzerReport GetReportForType(Type type);
}
}