#import <Foundation/Foundation.h>
#import "TQSignResult.h"
#import "TQSdkEvent.h"
#import "TQSignCallbacks.h"

NS_ASSUME_NONNULL_BEGIN

/// `qianapp://` scheme 拦截器。
@interface TQSchemeInterceptor : NSObject

- (instancetype)initWithOnSignResult:(nullable TQOnSignResultBlock)onSignResult
                             onEvent:(nullable TQOnEventBlock)onEvent;

/// 尝试拦截 URL。
/// @return `YES` 已识别并处理(导航应 `.cancel`),`NO` 未识别。
- (BOOL)handle:(nullable NSString *)urlString;

@end


/// 外部 scheme(微信 / 支付宝 / 自定义)处理器。
@interface TQExternalSchemeHandler : NSObject

- (instancetype)initWithExternalSchemes:(NSArray<NSString *> *)externalSchemes
                                onEvent:(nullable TQOnEventBlock)onEvent;

/// 尝试启动外部 App。
/// @return `YES` 已识别(无论启动成功失败均消费此次导航),`NO` 未识别。
- (BOOL)tryOpen:(nullable NSString *)urlString;

@end

NS_ASSUME_NONNULL_END
