//
//  SSCPublicHeader.h
//  SSCDemo
//
//  Created by wander on 2018/5/29.
//  Copyright © 2018年 wonder. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "SSCSDKConfig.h"
#import "EESBCallbackDelegate.h"

typedef enum : NSUInteger {
    SSCServiceType_Main = 0,
    SSCServiceType_PasswordAuth,
    SSCServiceType_SMSAuth,
    SSCServiceType_FaceAuth,
    SSCServiceType_IdentityQRCode,
    SSCServiceType_PaymentQRCode,
    SSCServiceType_Cashier,
    SSCServiceType_PersonnelVeriFace,
    SSCServiceType_QualificationsVeriFace,
    SSCServiceType_VeriCodeLogin,
    SSCServiceType_StateVeriFace,
    SSCServiceType_StateLogin
} SSCServiceType;

@interface SSCPublicHeader : NSObject

@property (nonatomic, strong, readonly)SSCSDKConfig *sdkConfig;

#pragma mark - 主流程（实例、初始化、启动、关闭）
// 提供1个类方法让外界访问唯一的实例
+ (instancetype)sharedSSCTool;

/**
 初始化SDK

 @param config 配置参数
 */
- (void)initSDKWithAppConfig:(SSCSDKConfig *)config;


/**
 调用该方法传入服务类型 和 签名串 就会返回要调用服务的url

 @param serviceType 服务类别 必传
 @param signStr 签名串 必传
 */
- (NSString *)webUrlWith:(SSCServiceType)serviceType signStr:(NSString *)signStr;

/**
 调用该方法传入服务路径 和 签名串 就会返回要调用服务的url

 @param servicePath 服务路径 必传
 @param signStr 签名串 必传
 */
- (NSString *)webUrlWithPath:(NSString *)servicePath signStr:(NSString *)signStr;

/**
 启动SDK方法
如果调用的时候SDK已打开，则直接跳转到url。（如展示支付码，被扫轮询支付成功后拉起收银台。如果SDK是打开状态，则直接跳转）
 @param fromVC 从哪个控制器模态弹出 一般为self
 @param url webVC跳转的url
 @param delegate 接收回调的代理
 */
- (void)presentWebVCFrom:(UIViewController *)fromVC
                 esscUrl:(NSString *)url
            esscDelegate:(id<EESBCallbackDelegate>)delegate;


/**
 退出sdk，请不要直接dismiss。若要关闭，请调用这个方法。
 */
- (void)exitEESBCardSdk;


#pragma mark - 辅助功能
// SDK版本号
- (NSString *)sSDKVesrion;


- (UIViewController *)sdkPresentController;



@end
