import { AnsiLogger } from 'matterbridge/logger';
import { RoborockAuthGateway } from '../../roborockCommunication/adapters/RoborockAuthGateway.js';
import { AuthenticationStateRepository } from './AuthenticationStateRepository.js';
/** Service for managing verification code requests and rate limiting. */
export declare class VerificationCodeService {
    private readonly authGateway;
    private readonly stateRepository;
    private readonly logger;
    constructor(authGateway: RoborockAuthGateway, stateRepository: AuthenticationStateRepository, logger: AnsiLogger);
    /** Request verification code to be sent to email. */
    requestVerificationCode(email: string): Promise<void>;
    /** Check if rate limit is active for verification code requests. */
    isRateLimited(): Promise<boolean>;
    /** Get remaining wait time in seconds before next code request. */
    getRemainingWaitTime(): Promise<number>;
    /** Record that a verification code was requested. */
    recordCodeRequest(email: string): Promise<void>;
    /** Clear verification code request state. */
    clearCodeRequestState(): Promise<void>;
}
//# sourceMappingURL=VerificationCodeService.d.ts.map