#import <Cordova/CDV.h>
#import "AppDelegate.h"

#import <Foundation/Foundation.h>
@import UIKit;
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
#import <Cordova/CDVPlugin.h>
#import <UIKit/UIKit.h>

@interface mInterface : CDVPlugin <CLLocationManagerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIAlertViewDelegate>
{
	UIImagePickerController *ipc;
    UIImagePickerController *cameraOpen;
    UIImagePickerController *imagePicker;
    UIImagePickerController *liveCamera;
    UIPopoverController *popover;
    UIAlertController *alertChoice;
    UIAlertController *alertConfirm;
    UIActivityIndicatorView *spinnerIndicator;
    NSString *spinnerCallbackId;
    NSNumber *spinnerIsFixed;
	
}
+ (FirebasePlugin *) firebasePlugin;
-(void)GetPermissions:(CDVInvokedUrlCommand*)command;
-(void)RemoveFilesFromDirectory;
-(void)DespatchQueueMoveToServer;
- (void)QueueProcessor:(CDVInvokedUrlCommand*)command;
- (NSString *)sendFilesToServer:(NSString *)filePath fileName:(NSString *)fileName requestURL:(NSString *) requestURL;
- (void)CaptureFromCamera:(CDVInvokedUrlCommand*)command;
- (void)CaptureImageFromCamera:(CDVInvokedUrlCommand*)command;
- (void)PickImageFromGallery:(CDVInvokedUrlCommand*)command;
- (void)Spinner:(CDVInvokedUrlCommand*)command;
- (void)GetPackageName:(CDVInvokedUrlCommand*)command;
- (void)UpdateNew:(CDVInvokedUrlCommand*)command;
- (void)StartService:(CDVInvokedUrlCommand*)command;
- (void)SendLocation;
- (void)GetLocation:(CDVInvokedUrlCommand*)command;
- (void)timeReader;
- (void)CheckSumIndicatorResult;
- (void)CheckLocation:(CDVInvokedUrlCommand*)command;
- (void)DespatchQueueNew;
- (void)CopyFile:(CDVInvokedUrlCommand*)command;
- (void)FileChooser:(CDVInvokedUrlCommand*)command;
- (NSString *)contentTypeForImageData:(NSString *)string;
- (void)UpdateChoice:(CDVInvokedUrlCommand*)command;
- (void)UpdateConfirm:(CDVInvokedUrlCommand*)command;
- (void)RefreshTimeProfile:(CDVInvokedUrlCommand*)command;
- (void)GetNewDate:(CDVInvokedUrlCommand*)command;
- (id)getCurrentDateTime;
-(void)timeValues:(NSString *)date hour:(NSString *)hour minute:(NSString *)minute;
- (void)KillTimers;
- (void)AuthenticationRefresh;
- (void)triggerAuthenticationServices:(NSString *)clientId  countryCode:(NSString *)countryCode  userId:(NSString *)userId  sessionId:(NSString *)sessionId  localeId:(NSString *)localeId  deviceID:(NSString *)deviceID  clientUrl:(NSString *)clientUrl  cvsUrl:(NSString *)cvsUrl authIndFilePath:(NSString *)authIndFilePath;
- (void)GetSyncIndicator:(CDVInvokedUrlCommand*)command;
- (void)getVerificationID:(CDVInvokedUrlCommand*)command;
- (void)verifyPhoneNumber:(CDVInvokedUrlCommand*)command;
- (void)getInstanceId:(CDVInvokedUrlCommand*)command;
- (void)getId:(CDVInvokedUrlCommand*)command;
- (void)getToken:(CDVInvokedUrlCommand*)command;
- (void)grantPermission:(CDVInvokedUrlCommand*)command;
- (void)hasPermission:(CDVInvokedUrlCommand*)command;
- (void)setBadgeNumber:(CDVInvokedUrlCommand*)command;
- (void)getBadgeNumber:(CDVInvokedUrlCommand*)command;
- (void)subscribe:(CDVInvokedUrlCommand*)command;
- (void)unsubscribe:(CDVInvokedUrlCommand*)command;
- (void)unregister:(CDVInvokedUrlCommand*)command;
- (void)onNotificationOpen:(CDVInvokedUrlCommand*)command;
- (void)onTokenRefresh:(CDVInvokedUrlCommand*)command;
- (void)sendNotification:(NSDictionary*)userInfo;
- (void)sendToken:(NSString*)token;
- (void)logEvent:(CDVInvokedUrlCommand*)command;
- (void)logError:(CDVInvokedUrlCommand*)command;
- (void)setCrashlyticsUserId:(CDVInvokedUrlCommand*)command;
- (void)setScreenName:(CDVInvokedUrlCommand*)command;
- (void)setUserId:(CDVInvokedUrlCommand*)command;
- (void)setUserProperty:(CDVInvokedUrlCommand*)command;
- (void)fetch:(CDVInvokedUrlCommand*)command;
- (void)activateFetched:(CDVInvokedUrlCommand*)command;
- (void)getValue:(CDVInvokedUrlCommand*)command;
- (void)startTrace:(CDVInvokedUrlCommand*)command;
- (void)incrementCounter:(CDVInvokedUrlCommand*)command;
- (void)stopTrace:(CDVInvokedUrlCommand*)command;
- (void)setAnalyticsCollectionEnabled:(CDVInvokedUrlCommand*)command;
- (void)setPerformanceCollectionEnabled:(CDVInvokedUrlCommand*)command;
- (void)clearAllNotifications:(CDVInvokedUrlCommand *)command;
@property (nonatomic, copy) NSString *notificationCallbackId;
@property (nonatomic, copy) NSString *tokenRefreshCallbackId;
@property (nonatomic, retain) NSMutableArray *notificationStack;
@property (nonatomic, readwrite) NSMutableDictionary* traces;
@property (strong, nonatomic) CLLocationManager * locationManager;
@property (strong, nonatomic) NSMutableArray * coordinatesArray;
@property (weak, nonatomic) IBOutlet UIButton *btnGallery;
@property (strong, nonatomic) UIViewController * viewcont;
@property (nonatomic, strong) NSString *callbackIdForImagePicker;
@property (nonatomic, strong) NSString *callbackIdForAppUpdate;
@property (nonatomic, strong) NSString *successCallBackForSpinner;
@property NSTimer *QueueTimer;
@property NSTimer *LocationTimer;
@property NSTimer *timeReaderTimer;
@property NSTimer *CheckSumTimer;
@property NSTimer *authTimer;
@property NSTimer *QueueToServerTimer;
@property UIActivityIndicatorView *activityIndicator;
@property (nonatomic, retain) UIActivityIndicatorView *indicator;
@property (nonatomic, retain) UIView *overlay;
@end
