declare enum Envs { Dev = "dev", Stage = "stage", Prod = "prod" } interface ICstProps { env: Envs; source: string; source_appid?: string; } interface ISignInProps { ref?: string; } declare enum AuthType { WxH5 = "wx_h5", Pc = "pc" } declare class Auth { private readonly SSO_HOST_MAP; readonly SSO_HOST: string; private readonly cstProps; static readonly EXPIRE_TIME: number; static readonly DEFAULT_SOURCE_APPID_MAP: Map; constructor(params: ICstProps); private checkEnvs; private getSignInUrlIst; /** * wx h5登录 * @param params.ref 登录成功后的回调url */ toSignInWxH5(params?: ISignInProps): void; /** * pc登录 * @param params.ref 登录成功后的回调url */ toSignInPC(params?: ISignInProps): void; /** * 退出登录 * @param ref 回调链接(可选,默认为当前链接) */ signOut({ ref }?: ISignInProps): void; /** * 获取加密后的token * params.token 需要加密的token */ static getEncodeToken(params?: { token?: string; }): string; /** * 从地址栏上解出token,并存入本地,此方法可以在全局挂上 * params.currentUrl? 需要解析的地址,默认为当前地址 * params.isKeepTokenInUrl? 是否需要保留sso_token在url上,默认会去除掉 */ static decodeSsoToken(params?: { currentUrl?: string; isKeepTokenInUrl?: boolean; }): { status: boolean; msg: string; }; /** * 解析 token */ static getTokenInfo(ticket: string): string | { token: string; expire: number; } | null; /** * 把token ticket 带在一个链接上,然后跳过去 * @param params.url 跳过去的链接 * @param params?.token 需要加密的token,不填默认取本地token * @param params?.isReplace 跳过去是否replace当前页面,默认location.assign */ static toUrlWithTicket(params: { url: string; token?: string; isReplace?: boolean; }): void; } /* 集本地存储,内存存储,发布订阅于一身 */ declare class Storage { private readonly cacheMap; private readonly eventKeyNameSpace; constructor(); /** * 本地存储获取一个值,如果是数字字面量,一定是 number,因为基于 JSON.parse */ getItem(key: TKey): T | null; /** * 本地存储设置一个值,value可以是对象 */ setItem(key: TKey, value: { [key: string]: any; } | string | number): void; /** * 清空localstorage */ clear(): void; /** * 本地会话存储获取一个值,如果是数字字面量,一定是 number,因为基于 JSON.parse */ getSessionItem(key: TKey): T | null; /** * 本地会话存储设置一个值,value可以是一个值 */ setSessionItem(key: TKey, value: unknown): void; /** * 清空sessionStorage */ sessionClear(): void; /** * 在内存设 kv */ set(key: TKey, value: any): void; /** * 在内存获取 kv */ get(key: TKey): T | null; /** * 在内存移除 kv */ remove(key: TKey): void; /** * 本地存储移除一个值 */ removeItem(key: TKey): void; /** * 本地会话存储移除一个值 */ removeSessionItem(key: TKey): void; /** * 监听事件 * @param key 要监听的事件名 * @param callback 监听回调 */ on(key: TKey, callback: (params: CustomEventInit) => void): void; /** * 发射事件 * @param key 要发射的事件名 * @param eventInit 事件参数 * @param eventInit.detail 携带的数据 * @param eventInit.bubbles bubbles 是否可以冒泡 * @param eventInit.cancelable cancelable 是否可以取消 */ emit(key: TKey, eventInit?: CustomEventInit): void; } export { Envs, ICstProps, ISignInProps, AuthType, Auth, Storage };