import { ISmsProvider } from '../interfaces/sms-provider.interface'; /** * Abstract base class for SMS provider implementations. * Provides common functionality and enforces implementation of the ISmsProvider interface. */ export declare abstract class BaseSmsProvider implements ISmsProvider { protected config: Record; /** * Create a new SMS provider instance. * @param config Configuration options for the provider */ constructor(config?: Record); /** * Initialize the SMS provider. * This method should be overridden by concrete implementations. */ initialize(): Promise; /** * Clean up resources used by the provider. * This method should be overridden by concrete implementations if necessary. */ cleanup(): Promise; /** * Get a phone number for receiving SMS. * Must be implemented by concrete implementations. */ abstract getPhoneNumber(): Promise; /** * Wait for and extract an OTP code from an SMS message. * Must be implemented by concrete implementations. * @param phoneNumber The phone number to monitor for SMS * @param timeout Timeout in milliseconds */ abstract waitForOtpCode(phoneNumber: string, timeout?: number): Promise; }