//
//  RCTConvert+ContextCenter.h
//  RNContextCenter
//
//  Created by Shaffiulla Khan on 09/01/19.
//  Copyright © 2019 Impekable LLC. All rights reserved.
//
#if __has_include(<React/RCTConvert.h>)
#import <React/RCTConvert.h>
#else
#import "RCTConvert.h"
#endif

#import <TwilioChatClient/TCHUser.h>
#import <TwilioChatClient/TwilioChatClient.h>
#import <TwilioAccessManager/TwilioAccessManager.h>

@interface RCTConvert (ContextCenter)

+ (TCHUserUpdate)TCHUserUpdate:(id)json;
+ (TCHLogLevel)TCHLogLevel:(id)json;
+ (TCHChannelType)TCHChannelType:(id)json;
+ (TCHChannelStatus)TCHChannelStatus:(id)json;
+ (TCHClientConnectionState)TCHClientConnectionState:(id)json;
+ (TCHClientSynchronizationStatus)TCHClientSynchronizationStatus:(id)json;
+ (TCHChannelSynchronizationStatus)TCHChannelSynchronizationStatus:(id)json;

+ (NSDictionary *)twilioChatClient:(TwilioChatClient *)client;
+ (NSDictionary *)twilioAccessManager:(TwilioAccessManager *)accessManager;

+ (NSDictionary *)member:(TCHMember *)member;
+ (NSDictionary *)message:(TCHMessage *)message;
+ (NSDictionary *)channel:(TCHChannel *)channel;
+ (NSDictionary *)user:(TCHUser *)user;
+ (NSDictionary *)channelDescriptor:(TCHChannelDescriptor *)channel;
+ (NSDictionary *)constant;

+ (NSDictionary *)memberPaginator:(TCHMemberPaginator *)paginator;
+ (NSDictionary *)channelDescriptorPaginator:(TCHChannelDescriptorPaginator *)paginator;

+ (NSArray *)members:(NSArray<TCHMember *>*)members;
+ (NSArray *)messages:(NSArray<TCHMessage *> *)messages;
+ (NSArray *)channels:(NSArray<TCHChannel *>*)channels;
+ (NSArray *)channelDescriptors:(NSArray<TCHChannelDescriptor *>*)channels;

+ (NSData *)dataWithHexString:(NSString*)hex;

@end
