/** * Interface for SMS provider adapters. * All SMS provider implementations must implement this interface. */ export interface ISmsProvider { /** * Get a phone number for receiving SMS. * @returns Promise A phone number in international format (e.g., +1234567890) */ getPhoneNumber(): Promise; /** * Wait for an OTP code to be received via SMS. * @param phoneNumber The phone number to wait for SMS on * @param timeout Optional timeout in milliseconds (default: 30000) * @returns Promise The extracted OTP code */ waitForOtpCode(phoneNumber: string, timeout?: number): Promise; /** * Initialize the SMS provider with necessary configuration. * @returns Promise */ initialize(): Promise; /** * Clean up any resources used by the SMS provider. * @returns Promise */ cleanup(): Promise; }