import { ILogger } from '@loopx/core'; import { AuthClientRepository, UserCredentialsRepository, UserRepository } from '@loopx/user-core'; import { CodeReaderFn, CodeWriterFn } from '../../providers'; import { OtpCacheRepository } from '../../repositories'; import { AuthTokenRequest, CodeResponse, OtpLoginRequest, QrCodeCheckResponse, QrCodeCreateResponse } from './'; import { AuthUser } from './models/auth-user.model'; import { OtpSendRequest } from './models/otp-send-request.dto'; export declare class OtpController { authClientRepository: AuthClientRepository; userRepo: UserRepository; otpCacheRepo: OtpCacheRepository; userCredsRepository: UserCredentialsRepository; logger: ILogger; constructor(authClientRepository: AuthClientRepository, userRepo: UserRepository, otpCacheRepo: OtpCacheRepository, userCredsRepository: UserCredentialsRepository, logger: ILogger); sendOtp(req: OtpSendRequest): Promise; verifyOtp(req: OtpLoginRequest, user: AuthUser | undefined, codeWriter: CodeWriterFn): Promise; checkQr(code: string, clientId: string, codeReader: CodeReaderFn): Promise; createQr(req: AuthTokenRequest, codeReader: CodeReaderFn): Promise; }