#import <Foundation/Foundation.h>
#import <Cordova/CDV.h>
#import <IronSource/IronSource.h>
#import <IronSource/ISConfigurations.h>

@interface IronSourceC : CDVPlugin <ISRewardedVideoDelegate, ISBannerDelegate, ISOfferwallDelegate, ISInterstitialDelegate, ISSegmentDelegate, ISInitializationDelegate>

//** Properties **//

@property (nonatomic, strong) UIViewController  *bannerController;
@property (nonatomic) ISBannerView              *bannerView;

//** General **//

- (void)validateIntegration:(CDVInvokedUrlCommand *)command;

- (void)setMode:(CDVInvokedUrlCommand *)command;

- (void)initialize:(CDVInvokedUrlCommand *)command;

//** Settings **//

- (void)setConsent:(CDVInvokedUrlCommand *)command;

- (void)setCompliance:(CDVInvokedUrlCommand *)command;

- (void)setChildDirected:(CDVInvokedUrlCommand *)command;

- (void)setDeviceIdOptOut:(CDVInvokedUrlCommand *)command;

- (void)setMetaData:(CDVInvokedUrlCommand *)command;

- (void)setMetaDataBool:(CDVInvokedUrlCommand *)command;

- (void)setSegment:(CDVInvokedUrlCommand *)command;

//** Settings: Rewarded Video **//

- (void)setVideoServerParams:(CDVInvokedUrlCommand *)command;

- (void)clearVideoServerParams:(CDVInvokedUrlCommand *)command;

//** Settings: Offerwall **//

- (void)setOfferwallCustomParams:(CDVInvokedUrlCommand *)command;

//** Rewarded Video **//

- (void)setShouldTrackNetworkState:(CDVInvokedUrlCommand *)command;

- (void)isRewardVideoAvailable:(CDVInvokedUrlCommand *)command;

- (void)showRewardedVideo:(CDVInvokedUrlCommand *)command;

- (void)getVideoPlacementInfo:(CDVInvokedUrlCommand *)command;

- (void)isVideoPlacementCapped:(CDVInvokedUrlCommand *)command;

- (void)setDynamicUserID:(CDVInvokedUrlCommand *)command;

//** Interstitial **//

- (void)createInterstitial:(CDVInvokedUrlCommand *)command;

- (void)isInterstitialReady:(CDVInvokedUrlCommand *)command;

- (void)isInterstitialPlacementCapped:(CDVInvokedUrlCommand *)command;

- (void)showInterstitial:(CDVInvokedUrlCommand *)command;

//** Banner **//

- (void)createBanner:(CDVInvokedUrlCommand *)command;

- (void)showBanner:(CDVInvokedUrlCommand *)command;

- (void)hideBanner:(CDVInvokedUrlCommand *)command;

- (void)destroyBanner:(CDVInvokedUrlCommand *)command;

- (void)isBannerPlacementCapped:(CDVInvokedUrlCommand *)command;

//** Offerwall **//

- (void)showOfferwall:(CDVInvokedUrlCommand *)command;

- (void)getOfferwallCredits:(CDVInvokedUrlCommand *)command;

- (void)setClientSideCallbacks:(CDVInvokedUrlCommand *)command;

//** Tools **//

- (void)getMode:(CDVInvokedUrlCommand *)command;

- (void)setBannerOverlap:(CDVInvokedUrlCommand *)command;

@end
