import type { IBaseConfig, IRateLimitConfig } from './base.config.js'; /** * SMS service configuration */ export interface ISmsConfig extends IBaseConfig { /** * API token for the gateway service */ apiGatewayApiToken: string; /** * Default sender ID or phone number */ defaultSender?: string; /** * SMS rate limiting */ rateLimit?: IRateLimitConfig & { /** * Maximum messages per recipient per day */ maxPerRecipientPerDay?: number; }; /** * SMS provider configuration */ provider?: { /** * Provider type */ type?: 'gateway' | 'twilio' | 'other'; /** * Provider-specific configuration */ config?: Record; /** * Fallback provider configuration */ fallback?: { /** * Whether to use fallback provider */ enabled?: boolean; /** * Provider type */ type?: 'gateway' | 'twilio' | 'other'; /** * Provider-specific configuration */ config?: Record; }; }; /** * Verification code settings */ verification?: { /** * Code length */ codeLength?: number; /** * Code expiration time in seconds */ expirationSeconds?: number; /** * Maximum number of attempts */ maxAttempts?: number; /** * Cooldown period in seconds */ cooldownSeconds?: number; }; }