import { BaseSmsProvider } from './base-sms-provider.adapter'; export interface TwilioConfig { accountSid: string; authToken: string; fromPhoneNumber?: string; pollingInterval?: number; } /** * Twilio SMS provider adapter. * Uses Twilio API to receive SMS messages and extract OTP codes. */ export declare class TwilioProvider extends BaseSmsProvider { private client; private fromPhoneNumber; private pollingInterval; private lastCheckDate; constructor(config: TwilioConfig); /** * Initialize the Twilio client. */ initialize(): Promise; /** * Clean up Twilio resources. */ cleanup(): Promise; /** * Get a phone number for receiving SMS via Twilio. * Note: Twilio doesn't provide temporary phone numbers as easily as other services. * This method returns the configured "fromPhoneNumber" or throws an error if not set. * @returns A phone number in international format */ getPhoneNumber(): Promise; /** * Wait for an OTP code to be received via Twilio. * Uses polling to check for new messages. * @param phoneNumber The phone number to monitor (Twilio number that receives messages) * @param timeout Timeout in milliseconds (default: 30000) * @returns The extracted OTP code */ waitForOtpCode(phoneNumber: string, timeout?: number): Promise; }