import { type PairingCode, type PairingCodeValidationResult } from "./pairing-code.js"; export interface InMemoryPairingCodeStoreOptions { /** Interval for automatic cleanup in milliseconds (default: 60000) */ cleanupIntervalMs?: number; } /** * In-memory store for pairing codes with automatic cleanup */ export declare class InMemoryPairingCodeStore { private codes; private cleanupTimer; private invalidAttempts; constructor(options?: InMemoryPairingCodeStoreOptions); /** * Generate a new pairing code * @param clientIp - IP address of the client generating the code * @returns The generated pairing code entry */ generate(clientIp: string): PairingCode; /** * Validate a pairing code * @param code - The code to validate * @param _clientIp - IP address of the client (for logging/auditing, not strict validation) * @returns Validation result */ validate(code: string, _clientIp: string): PairingCodeValidationResult; /** * Get the current active (non-expired) pairing code * @returns The most recent non-expired code, or null if none exists */ getCurrent(): PairingCode | null; /** * Clean up expired pairing codes */ cleanup(): void; /** * Dispose of the store and stop cleanup timer */ dispose(): void; /** * Generate a cryptographically secure session token */ private generateSessionToken; }