export declare class RateLimitService {
    private readonly logger;
    private readonly rateLimits;
    private readonly GENERATION_LIMIT;
    private readonly VERIFICATION_LIMIT;
    private readonly LOGIN_LIMIT;
    private readonly GENERATION_WINDOW;
    private readonly VERIFICATION_WINDOW;
    private readonly LOGIN_WINDOW;
    constructor();
    canGenerateToken(phoneNumber: string): {
        allowed: boolean;
        remainingAttempts: number;
        resetTime?: Date;
    };
    recordGenerationAttempt(phoneNumber: string): void;
    canVerifyToken(phoneNumber: string): {
        allowed: boolean;
        remainingAttempts: number;
        resetTime?: Date;
    };
    recordVerificationAttempt(phoneNumber: string): void;
    resetVerificationAttempts(phoneNumber: string): void;
    private cleanupExpiredRecords;
    canAttemptLogin(emailOrUsername: string): {
        allowed: boolean;
        remainingAttempts: number;
        resetTime?: Date;
    };
    recordLoginAttempt(emailOrUsername: string): void;
    resetLoginAttempts(emailOrUsername: string): void;
    getStats(): {
        totalRecords: number;
        generationRecords: number;
        verificationRecords: number;
        loginRecords: number;
    };
}
