#import <Foundation/Foundation.h>

@interface iBeaconConfigParam : NSObject

@property (nonatomic, retain) NSString* uuid;
@property (nonatomic, assign) long long major;
@property (nonatomic, assign) long long minor;
@property (nonatomic, assign) int txPower;
@property (nonatomic, assign) int interval;
@property (nonatomic, assign) BOOL useBuzzer;
@property (nonatomic, assign) BOOL useLed;
@property (nonatomic, retain) NSString* beaconName;

@property (nonatomic, assign) int rssiAtOneMeter;
@property (nonatomic, assign) int adv1Interval;
@property (nonatomic, assign) int adv1TimeLen;
@property (nonatomic, assign) int adv2Interval;
@property (nonatomic, assign) int adv2TimeLen;
@property (nonatomic, assign) BOOL adv1NeverStop;
@property (nonatomic, assign) BOOL adv2NeverStop;

@property (nonatomic, retain) NSString* devicePassword;

+ (NSString*)FLAG_UUID1;
+ (NSString*)FLAG_UUID2;
+ (NSString*)FLAG_MAJOR_MINOR;
+ (NSString*)FLAG_TXPOWER;
+ (NSString*)FLAG_INTERVAL;
+ (NSString*)FLAG_MISC_BITS;
+ (NSString*)FLAG_TAG_NAME;
+ (NSString*)FLAG_PARAMS_SAVED;

- (NSData*)getBytes_UUID1;
- (NSData*)getBytes_UUID2;
- (NSData*)getBytes_MajorMinor;
- (NSData*)getBytes_TxPower;
- (NSData*)getBytes_Interval;
- (NSData*)getBytes_MiscBits;
- (NSData*)getBytes_Name;
- (NSArray<NSData*>*)getBytesDataListToSend;

- (NSData*)getWorkingParamsData;

@end