import { ISmsProvider } from './interfaces/sms-provider.interface'; import { MailSlurpConfig } from './adapters/mailslurp-provider.adapter'; import { TwilioConfig } from './adapters/twilio-provider.adapter'; import { MailosaurConfig } from './adapters/mailosaur-provider.adapter'; export interface OtpClientConfig { provider?: 'mailslurp' | 'twilio' | 'mailosaur' | 'custom'; providerConfig?: MailSlurpConfig | TwilioConfig | MailosaurConfig | Record; customProvider?: ISmsProvider; timeout?: number; } /** * PlaywrightOtpClient - Main class for retrieving OTP codes from SMS. * Integrates with Playwright for e2e testing. */ export declare class PlaywrightOtpClient { private provider; private timeout; private currentPhoneNumber; /** * Create a new OTP client instance. * @param config Configuration options for the client */ constructor(config?: OtpClientConfig); /** * Initialize the OTP client and the underlying provider. * @returns Promise */ initialize(): Promise; /** * Clean up resources used by the OTP client. * @returns Promise */ cleanup(): Promise; /** * Get a phone number for receiving SMS. * @returns Promise A phone number in international format */ getPhoneNumber(): Promise; /** * Wait for an OTP code to be received via SMS. * If no phone number is provided, uses the phone number from the last getPhoneNumber() call. * * @param phoneNumber Optional phone number to use (if different from the one obtained with getPhoneNumber) * @param timeout Optional timeout in milliseconds (overrides the timeout set in the constructor) * @returns Promise The extracted OTP code */ getOtpCode(phoneNumber?: string, timeout?: number): Promise; /** * Convenience method to get a phone number and then wait for an OTP code. * Useful for quick, one-off OTP retrieval. * * @param timeout Optional timeout in milliseconds for waiting for the OTP * @returns Promise<{phoneNumber: string, otpCode: string}> Object containing both the phone number and OTP code */ getPhoneNumberAndOtpCode(timeout?: number): Promise<{ phoneNumber: string; otpCode: string; }>; } export * from './interfaces/sms-provider.interface'; export * from './adapters/base-sms-provider.adapter'; export * from './adapters/mailslurp-provider.adapter'; export * from './adapters/twilio-provider.adapter'; export * from './adapters/mailosaur-provider.adapter'; export * from './utils/otp-extractor';