import { AccountLockoutStorage, StorageAdapter } from '../interfaces/storage-adapter.interface'; /** * Account lockout storage implementation using StorageAdapter (Platform-Agnostic) * * SECURITY: Uses IP addresses instead of user identifiers to prevent * attackers from locking out legitimate users by guessing their email/username. */ export declare class AccountLockoutStorageService implements AccountLockoutStorage { private readonly storageAdapter; private readonly keyPrefix; private readonly lockKeyPrefix; constructor(storageAdapter: StorageAdapter); /** * Record failed login attempt for an IP address * @param ipAddress - IP address that made the failed attempt * @param ttlSeconds - Optional TTL (seconds) for the attempt counter window * @returns Number of failed attempts for this IP */ recordFailedAttempt(ipAddress: string, ttlSeconds?: number): Promise; /** * Get failed attempts count for an IP address * @param ipAddress - IP address to check * @returns Number of failed attempts */ getFailedAttempts(ipAddress: string): Promise; /** * Check if an IP address is locked out * @param ipAddress - IP address to check * @returns True if IP is locked out */ isAccountLocked(ipAddress: string): Promise; /** * Lock an IP address for a specified duration * @param ipAddress - IP address to lock * @param duration - Lock duration in seconds * @param reason - Reason for lockout */ lockIpAddress(ipAddress: string, duration: number, reason: string): Promise; /** * Unlock an IP address and reset failed attempts * @param ipAddress - IP address to unlock */ unlockIpAddress(ipAddress: string): Promise; /** * Reset failed attempts counter for an IP address * @param ipAddress - IP address to reset */ resetFailedAttempts(ipAddress: string): Promise; private getKey; private getLockKey; } //# sourceMappingURL=account-lockout-storage.service.d.ts.map