import { JWT, UpdatePasswordInput, UserDB } from "../shared/types/User";
export declare function decodeJWT(token: string): any;
export declare function encodeJWTPayload(payload: any, expires?: string): string;
export declare function generateTokensForUser(user: UserDB, editFn: (userId: any, data: any) => {}): Promise<JWT>;
/**
 * Sets the initial verify hash for email
 */
export declare function generateVerifyHash(user: UserDB, editFn: (userId: any, data: any) => {}): Promise<string>;
export declare function validateAuthInput(email: string): void;
export declare function validatePasswordCreate(input: UpdatePasswordInput): void;
/**
 * Check if user has associated role.
 *
 * @param user
 */
export declare function checkUserHasRole(user: UserDB, checkRole: string): never;
/**
 * Hash a password string using bcrypt
 * @param password
 */
export declare function hashPassword(password: string): Promise<string>;
