import * as jwt from 'jsonwebtoken'; export declare const createToken: (userInfo: any) => string; export declare const parseToken: (token: any) => string | jwt.JwtPayload; export declare class SessionUser { userId: string; deptId: string; account: string; name: string; roles?: string[]; } export type SeeksSession = { userId: string; time: number; token: string; data: SessionUser; }; export interface SessionManager { sessionAlive: (req: any) => Promise; getUserByToken: (token: string) => Promise; resetToKen: (token: string) => Promise; getUserInfoFromSession: (req: any) => Promise; regSession: (_new_token: string, userinfo: SessionUser) => Promise; destroySession: (userId: string) => Promise; getOnlineUsers: () => Promise; mounted: () => void; } export type LoginResult = { success?: boolean; tokenId?: string; sessionUser?: SessionUser; message: string; }; export declare class Authorization { sessionManager: SessionManager; constructor(sessionManager: SessionManager); isHasPermission(user: SessionUser, roles: string[]): Promise; getToken(req: any): any; clearSecretInfo(userInfo: any): any; sessionAlive(req: any): Promise; getUserByToken(token: string): Promise; resetToKen(token: string): Promise; getUserInfoFromSession(req: any): Promise; regSession(_new_token: string, userinfo: SessionUser): Promise; destroySession(userId: string): Promise; getOnlineUsers(): Promise; } export declare const setupSessionManager: (sessionManager: SessionManager) => void; export declare const getSessionManager: () => Authorization;