import { OTPTransportIdentifier } from "../types/otp"; import { ConfigData, User, UserSession } from "../types/session"; /** * @description Implements the authentication methods */ export declare class Authentication { private sessionManager; private otpManager; private userManager?; private config; private mailerConfig; private smsConfig; constructor(config: ConfigData); loginWithOTP(OTP: string, key: string, transporterIdentifier: OTPTransportIdentifier, expire: number, user?: User): Promise; loginWithUsernamePassword(username: string, password: string, expire: number, user?: User): Promise; /** * * @param phone {string} * @returns OTPKey */ authenticateBySMSOTP(phone: string): Promise; /** * * @param email {string} * @returns OTPKey */ authenticateByEmailOTP(email: string): Promise; resendOTP(key: string, transporterIdentifier: OTPTransportIdentifier): Promise; private getMessageTemplate; }