﻿using System;
using System.Collections.Generic;

using InMobiAds.Api;

namespace InMobiAds.Common
{
	internal interface IInterstitialClient
	{
		event EventHandler<AdLoadSuccessEventArgs> OnAdLoadSucceeded;
		event EventHandler<AdLoadFailedEventArgs> OnAdLoadFailed;
		event EventHandler<EventArgs> OnAdDisplayFailed;
		event EventHandler<EventArgs> OnAdWillDisplay;
		event EventHandler<EventArgs> OnAdDisplayed;
		event EventHandler<EventArgs> OnAdDismissed;
		event EventHandler<AdInteractionEventArgs> OnAdInteraction;
		event EventHandler<EventArgs> OnUserLeftApplication;
		event EventHandler<AdRewardActionCompletedEventArgs> OnAdRewardActionCompleted;
		event EventHandler<AdFetchFailedEventArgs> OnAdFetchFailed;
		event EventHandler<AdFetchSuccessEventArgs> OnAdFetchSuccessful;
		event EventHandler<EventArgs> OnAdImpression;

		//Create a Intersttitial Ad
		void CreateInterstitialAd(string placementId);

		//Load Interstitial Ad
		void LoadAd();

		//Check if Interstitial is Ready
		bool IsReady();

		//Show Interstitial Ad
		void Show();

		//Set Keywords
		void SetKeywords(string keywords);

		//Set Extras
		void SetExtras(Dictionary<string, string> extras);
	}
}

