@gooin/garmin-connect
Version:
Makes it simple to interface with Garmin Connect to get or set any data point
65 lines (64 loc) • 1.87 kB
TypeScript
import { MFAConfig } from '../garmin/types';
/**
* MFA管理器,用于处理需要等待外部验证码的登录流程
* 支持文件系统和Redis两种存储方式
*/
export declare class MFAManager {
private static instance;
private storage;
private readonly DEFAULT_TIMEOUT;
private constructor();
/**
* 获取MFA管理器单例
*/
static getInstance(config?: MFAConfig): MFAManager;
/**
* 重置单例实例,用于测试或重新配置
*/
static resetInstance(): void;
/**
* 创建一个等待MFA验证码的Promise
* @param sessionId 会话ID
* @param timeout 超时时间(毫秒)
* @returns Promise<string> 返回验证码
*/
waitForMFACode(sessionId: string, timeout?: number): Promise<string>;
/**
* 提交MFA验证码
* @param sessionId 会话ID
* @param code 验证码
* @returns 是否成功提交
*/
submitMFACode(sessionId: string, code: string): Promise<boolean>;
/**
* 取消MFA验证
* @param sessionId 会话ID
* @param reason 取消原因
* @returns 是否成功取消
*/
cancelMFARequest(sessionId: string, reason?: string): Promise<boolean>;
/**
* 检查会话是否存在
* @param sessionId 会话ID
* @returns 是否存在
*/
hasSession(sessionId: string): Promise<boolean>;
/**
* 获取所有活跃的会话ID
* @returns 会话ID列表
*/
getActiveSessions(): Promise<string[]>;
/**
* 清理过期的请求
* @param maxAge 最大存活时间(毫秒)
*/
cleanupExpiredRequests(maxAge?: number): Promise<void>;
/**
* 定期清理过期请求
*/
startCleanupTask(interval?: number): void;
/**
* 关闭资源连接(主要用于Redis)
*/
disconnect(): Promise<void>;
}