///
import { Router, Request } from "express";
export interface AuthParam {
config: any;
getAuth: (id) => Promise;
setAuth?: (auth) => Promise;
removeAuth?: (userhash) => Promise;
getCache: (key) => Promise;
setCache: (key, value, duration: number) => Promise;
removeCache?: (key) => Promise;
getUser?: (userhash: String, saltIndex: number) => Promise;
getRoles: (roles: string[]) => Promise;
getSaltIndex?: (req: Request) => number;
validateNonce: (userhash: string, seq: number) => Promise;
}
export declare class AuthRouter {
private config;
private getAuth;
private setAuth;
private removeAuth;
private getCache;
private setCache;
private removeCache;
private getUser;
private getRoles;
private getSaltIndex;
private validateNonce;
private hook;
readonly router: Router;
init(param: AuthParam): void;
private getSalt;
getUsernameSalt: (req: any, res: any, next: any) => Promise;
getLoginSalt: (req: any, res: any, next: any) => Promise;
login: (req: any, res: any, next: any) => Promise;
getLoginUser: (req: Request, res: any, next: any) => Promise;
refreshToken: (req: any, res: any, next: any) => Promise;
logout: (req: any, res: any, next: any) => Promise;
validateAuthorization: (req: any, res: any, next: any) => Promise;
}
export declare const hook: (fn: any) => (req: Request, res: any, next: any) => Promise;
export declare function toSecond(tokenExpiryS: string): number;
export declare const authRouter: AuthRouter;