//
//  KBKeyboardPermissionManager.h
//  主 App/键盘扩展 共用的“键盘启用 + 完全访问”权限管理
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSInteger, KBFARecord) {
    KBFARecordUnknown = 0,
    KBFARecordDenied  = 1,
    KBFARecordGranted = 2,
};

/// 统一权限管理（App 与扩展均可使用）
@interface KBKeyboardPermissionManager : NSObject

+ (instancetype)shared;

/// App 侧：是否已添加并启用了自定义键盘（通过遍历 activeInputModes 粗略判断）
- (BOOL)isKeyboardEnabled;

/// 最后一次由扩展上报的“完全访问”状态（来源：扩展运行后写入共享钥匙串）
- (KBFARecord)lastKnownFullAccess;

/// 扩展侧：上报“完全访问”状态（写入共享钥匙串，以便 App 读取）
- (void)reportFullAccessFromExtension:(BOOL)granted;

/// App 侧：若未满足“已启用键盘 + 完全访问(或未知)”则展示引导页（KBPermissionViewController）
- (void)presentPermissionIfNeededFrom:(UIViewController *)presenting;

@end

NS_ASSUME_NONNULL_END

