import { Feature } from 'oak-frontend-base/lib/types/Feature'; import { Cache } from 'oak-frontend-base/lib/features/cache'; import { LocalStorage } from 'oak-frontend-base/lib/features/localStorage'; import { CommonAspectDict } from 'oak-common-aspect'; import { EntityDict } from '../general-app-domain'; import { AspectDict } from '../aspects/AspectDict'; import { RuntimeContext } from '../context/RuntimeContext'; import { AspectWrapper, SelectRowShape } from 'oak-domain/lib/types'; declare type UserProjection = { id: 1; nickname: 1; name: 1; userState: 1; extraFile$entity: { $entity: 'extraFile'; data: { id: 1; tag1: 1; origin: 1; bucket: 1; objectId: 1; filename: 1; extra1: 1; type: 1; entity: 1; extension: 1; }; filter: { tag1: 'avatar'; }; indexFrom: 0; count: 1; }; mobile$user: { $entity: 'mobile'; data: { id: 1; mobile: 1; userId: 1; }; }; }; declare type TokenProjection = { id: 1; userId: 1; user: UserProjection; ableState: 1; player: { id: 1; userRole$user: { $entity: 'userRole'; data: { id: 1; userId: 1; roleId: 1; role: { id: 1; name: 1; }; }; }; }; playerId: 1; }; export declare class Token, AD extends AspectDict> extends Feature> { private tokenValue?; private token?; private rwLock; private cache; private storage; constructor(aspectWrapper: AspectWrapper>, cache: Cache>, storage: LocalStorage>); loadTokenInfo(): Promise; loginByMobile(mobile: string, password?: string, captcha?: string): Promise; loginWechat(code: string): Promise; loginWechatMp(): Promise; syncUserInfoWechatMp(): Promise; logout(): Promise; getTokenValue(noWait?: true): Promise; getToken(): Promise>; getUserId(): Promise; getUserInfo(): Promise<("user" extends infer T ? T extends "user" ? T extends keyof ED["token"]["Schema"] ? TokenProjection[T] extends 1 | undefined ? ED["token"]["Schema"][T] : TokenProjection[T] extends import("oak-domain/lib/types").OtmSubProjection ? never[] | SelectRowShape[T][0], TokenProjection[T]["data"]>[] : T extends import("oak-domain/lib/types").OptionalKeys ? SelectRowShape[T]>, TokenProjection[T]> | null : SelectRowShape[T]>, TokenProjection[T]> : never : never : never) | SelectRowShape | undefined>; isRoot(): Promise; sendCaptcha(mobile: string): Promise; } export {};