/** * SMS service configuration interface */ export interface ISmsConfig { /** * API token for the gateway service */ apiGatewayApiToken: string; /** * Default sender ID or phone number */ defaultSender?: string; /** * SMS rate limiting */ rateLimit?: { /** * Whether rate limiting is enabled */ enabled?: boolean; /** * Maximum requests per period */ maxPerPeriod?: number; /** * Period duration in milliseconds */ periodMs?: number; /** * Whether to apply rate limit per key */ perKey?: boolean; /** * Number of burst tokens */ burstTokens?: number; /** * 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; }; }