/** filename: {{&sdknameLower}}/{{&sdkname}}.h **/
#import <Foundation/Foundation.h>

@interface {{&sdkname}} : NSObject

typedef enum cachePolicy
{
    CachePolicyNotSet,
    CachePolicyNoCache,
    CachePolicyCacheElseNetwork,
    CachePolicyNetworkElseCache,
    CachePolicyCacheThenNetwork,
    CachePolicyCacheOnly,
    CachePolicyNetworkOnly
} CachePolicy;

+ (NSString *) domain;
+ (void) setDomain:(NSString *)val;

+ (NSNumber *) port;
+ (void) setPort:(NSNumber *)val;

+ (NSNumber *) timeout;
+ (void) setTimeout:(NSNumber *)val;

+ (NSString *) apiKey;
+ (void) setAPIKey:(NSString *)val;

+ (NSString *) authorization;
+ (void) setAuthorization:(NSString *)val;

+ (NSDictionary *) getDefaultHeaders;

+ (NSString *) getURL:(NSString *)path;

+ (CachePolicy) cachePolicyType;
+ (void) setCachePolicyType:(CachePolicy)val;

+ (NSNumber *) cachePolicyDuration;
+ (void) setCachePolicyDuration:(NSNumber *)val;

+ (NSDictionary *) readCache:(NSString *)hash;
+ (void) writeCache:(NSString *)hash with:(NSDictionary *)result and:(NSNumber *)duration;

@end
