import { AnsiLogger } from 'matterbridge/logger';
import { PlatformConfigManager } from '../../platform/platformConfigManager.js';
import type { UserData } from '../../roborockCommunication/models/index.js';
import { WssSendSnackbarMessage } from '../../types/WssSendSnackbarMessage.js';
import { AuthenticationService } from '../authenticationService.js';
import type { AuthContext } from './AuthContext.js';
import { BaseAuthStrategy } from './BaseAuthStrategy.js';
import type { IAuthStrategy } from './IAuthStrategy.js';
import { UserDataRepository } from './UserDataRepository.js';
import { VerificationCodeService } from './VerificationCodeService.js';
/** Two-factor authentication strategy with verification code. */
export declare class TwoFactorAuthStrategy extends BaseAuthStrategy implements IAuthStrategy {
    private readonly verificationCodeService;
    private readonly toastMessage;
    constructor(authService: AuthenticationService, userDataRepository: UserDataRepository, verificationCodeService: VerificationCodeService, configManager: PlatformConfigManager, toastMessage: WssSendSnackbarMessage, logger: AnsiLogger);
    authenticate(context: AuthContext): Promise<UserData | undefined>;
    private hasVerificationCode;
    private handleVerificationCodeRequest;
    private requestVerificationCode;
    private authenticateWithCode;
    private saveAuthenticationState;
    /** Display verification code banner instructions to user. */
    private logVerificationCodeBanner;
}
//# sourceMappingURL=TwoFactorAuthStrategy.d.ts.map