







#import <Foundation/Foundation.h>
#import "WXApiObject.h"

NS_ASSUME_NONNULL_BEGIN


typedef BOOL(^WXGrantReadPasteBoardPermissionCompletion)(void);





@protocol WXApiDelegate <NSObject>
@optional



- (void)onReq:(BaseReq*)req;





- (void)onResp:(BaseResp*)resp;



- (void)onNeedGrantReadPasteBoardPermissionWithURL:(nonnull NSURL *)openURL completion:(nonnull WXGrantReadPasteBoardPermissionCompletion)completion;

@end



@protocol WXApiLogDelegate <NSObject>

- (void)onLog:(NSString*)log logLevel:(WXLogLevel)level;

@end






@interface WXApi : NSObject



+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink;




+ (BOOL)handleOpenURL:(NSURL *)url delegate:(nullable id<WXApiDelegate>)delegate;




+ (BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity delegate:(nullable id<WXApiDelegate>)delegate;




+ (BOOL)isWXAppInstalled;





+ (BOOL)isWXAppSupportApi;




+ (BOOL)isWXAppSupportStateAPI;


#ifndef BUILD_WITHOUT_PAY


+ (BOOL)isWXAppSupportQRCodePayAPI;

#endif




+ (NSString *)getWXAppInstallUrl;





+ (NSString *)getApiVersion;





+ (BOOL)openWXApp;





+ (void)sendReq:(BaseReq *)req completion:(void (^ __nullable)(BOOL success))completion;



+ (void)sendResp:(BaseResp*)resp completion:(void (^ __nullable)(BOOL success))completion;




+ (void)sendAuthReq:(SendAuthReq *)req viewController:(UIViewController*)viewController delegate:(nullable id<WXApiDelegate>)delegate completion:(void (^ __nullable)(BOOL success))completion;




+ (void)checkUniversalLinkReady:(nonnull WXCheckULCompletion)completion;





+ (void)startLogByLevel:(WXLogLevel)level logBlock:(WXLogBolock)logBlock;



+ (void)startLogByLevel:(WXLogLevel)level logDelegate:(id<WXApiLogDelegate>)logDelegate;



+ (void)stopLog;

@end

NS_ASSUME_NONNULL_END
