//
//  Copyright © 2017 IronSource. All rights reserved.
//

#ifndef IRONSOURCE_CONFIGURATION_H
#define IRONSOURCE_CONFIGURATION_H

#import <Foundation/Foundation.h>
#import "ISGender.h"
#import "ISSegment.h"

@interface ISConfigurations : NSObject

@property(nonatomic, strong) NSString *userId;
@property(nonatomic, strong) NSString *appKey;
@property(nonatomic, strong) NSString *segmentId;
@property(nonatomic, strong) NSDictionary *customSegmentParams;
@property(nonatomic, strong) ISSegment *segment;
@property(nonatomic, strong) NSDictionary *rewardedVideoCustomParameters;
@property(nonatomic, strong) NSDictionary *offerwallCustomParameters;
@property(nonatomic, strong) NSString *version;
@property(nonatomic, strong) NSNumber *adapterTimeOutInSeconds;
@property(nonatomic, strong) NSNumber *maxNumOfAdaptersToLoadOnStart;
@property(nonatomic, assign) BOOL advancedLoading;
@property(nonatomic, strong) NSString *plugin;
@property(nonatomic, strong) NSString *pluginVersion;
@property(nonatomic, strong) NSString *pluginFrameworkVersion;
@property(nonatomic, strong) NSNumber *maxVideosPerIteration;
@property(nonatomic, assign) NSInteger userAge;
@property(nonatomic, assign) ISGender userGender;
@property(nonatomic, assign) BOOL trackReachability;
@property(nonatomic, strong) NSString *dynamicUserId;
@property(nonatomic, assign) BOOL adaptersDebug;
@property(nonatomic, strong) NSString *mediationType;
@property(nonatomic, strong) NSNumber *serr;
@property(nonatomic, strong) NSString *categorizeType;
@property(nonatomic, strong) NSDictionary *rvServerParams;
@property(nonatomic, assign) NSInteger consent;
@property(nonatomic, assign) BOOL didSetConsent;
@property(nonatomic, strong) NSDictionary *batchGenericParams;
@property(nonatomic, strong) NSDictionary *eventGenericParams;
@property(nonatomic, strong) NSDictionary *eventPixelParams;

/*!
 @deprecated This method has been deprecated and will be removed in a future version
 */
+ (ISConfigurations *)configurations DEPRECATED_MSG_ATTRIBUTE(
    "As of version 6.5.2, use class method: getConfigurations");

+ (ISConfigurations *)getConfigurations;

typedef NS_ENUM(NSInteger, DebugLevel) { None, Error, Info, Verbose };

@end

#endif
