using System;
using System.Threading.Tasks;
using UnityEngine;
namespace Unity.Services.Mediation
{
///
/// Interface of an Banner Ad.
///
public interface IBannerAd : IDisposable
{
///
/// Event to be triggered by the adapter when an Ad is loaded.
///
event EventHandler OnLoaded;
///
/// Event to be triggered by the adapter when an Ad fails to load.
///
event EventHandler OnFailedLoad;
///
/// Event to be triggered by the adapter when the user clicks on the Ad.
///
event EventHandler OnClicked;
///
/// Event to be triggered by the adapter when the Ad refreshes
///
event EventHandler OnRefreshed;
///
/// Get the current state of the ad.
///
AdState AdState { get; }
///
/// Get the ad unit id set during construction.
///
string AdUnitId { get; }
///
/// Get the banner size set during construction.
///
BannerAdSize Size { get; }
///
/// Sets the position of the banner ad.
///
/// Anchor on which the banner position is based
/// The X, Y coordinates offsets, relative to the anchor point
void SetPosition(BannerAdAnchor anchor, Vector2 positionOffset = new Vector2());
///
/// Loads the banner ad, and displays it when ready
///
/// LoadAsync Task
Task LoadAsync();
}
}