import { EntityDict } from 'oak-app-domain'; import { Feature } from 'oak-frontend-base'; import { Aspect, Context } from 'oak-domain/lib/types'; import { Cache } from 'oak-frontend-base'; export declare class Token, AD extends Record>> extends Feature { private token?; private rwLock; private cache?; constructor(); loginByPassword(mobile: string, password: string, scene: string): Promise; loginWechatMp(scene: string): Promise; syncUserInfoWechatMp(scene: string): Promise; logout(): Promise; getToken(): Promise; setCache(cache: Cache): void; getUserId(): Promise<("userId" extends keyof ED["token"]["Schema"] ? ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"] extends 1 | undefined ? ED["token"]["Schema"][keyof ED["token"]["Schema"] & "userId"] : ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"] extends import("oak-domain/lib/types").OtmSubProjection ? never[] | import("oak-domain/lib/types").SelectRowShape[keyof ED["token"]["Schema"] & "userId"][0], ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"]["data"]>[] : keyof ED["token"]["Schema"] & "userId" extends import("oak-domain/lib/types").OptionalKeys ? import("oak-domain/lib/types").SelectRowShape[import("oak-domain/lib/types").OptionalKeys & keyof ED["token"]["Schema"] & "userId"]>, ED["token"]["Selection"]["data"][import("oak-domain/lib/types").OptionalKeys & keyof ED["token"]["Schema"] & "userId"]> | null : import("oak-domain/lib/types").SelectRowShape[keyof ED["token"]["Schema"] & "userId"]>, ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"]> : never) | undefined>; }