﻿using System;
using InMobiAds.Api;
using System.Collections.Generic;

namespace InMobiAds.Common
{
	internal interface IInMobiPluginClient
	{

		event EventHandler<SdkInitializationStatusArgs> OnInitializationCompleted;

		//Initialize InMobi SDK using Publisher Account Id
		void Init(string accountId);

		void Init(string accountId, Dictionary<string, object> gdprConsentObject);

		//Set log level
		void SetLogLevel(string logLevel);

		//Set Age
		void SetAge(int age);

		//Set AgeGroup
		void SetAgeGroup(string ageGroup);

		//Set AreaCode
		void SetAreaCode(string areaCode);

		//Set PostalCode
		void SetPostalCode(string postalCode);

		//Set Location With City State Country
		void SetLocationWithCityStateCountry(string city, string state, string country);

		//Set Year of Birth
		void SetYearOfBirth(int yearOfBirth);

		//Set Gender GENDER_MALE or GENDER_FEMALE
		void SetGender(string gender);

		//set Education EDUCATION_HIGHSCHOOLORLESS, EDUCATION_COLLEGEORGRADUATE, EDUCATION_POSTGRADUATEORABOVE
		void SetEducation(string education);

		//set Language
		void SetLanguage(string language);

		//set Interests
		void SetInterests(string interests);

		//set GDPR consent
		void UpdateGdprConsentObject(Dictionary<string, object> gdprConsentObject);

		//set Publisher Provided Unified Ids
		void SetPublisherProvidedUnifiedId(Dictionary<string, object> publisherProviderUnifiedIds);
	}
}

