UNPKG

@mirad-work/sms-core

Version:

A framework-agnostic TypeScript SMS service core with provider abstraction for Iranian SMS providers

75 lines 2.11 kB
import { ISmsConfig } from "../interfaces/sms-config.interface"; /** * Configuration manager for SMS service * Supports environment variables, config objects, and default values */ export declare class SmsConfigManager { /** * Parse a numeric environment variable, falling back to a default when the * value is absent or not a usable number. * * Without this, a malformed value (e.g. SMS_TIMEOUT=fast) yields NaN, which * silently aborts every request because setTimeout(fn, NaN) fires immediately. */ private static parseNumber; /** * Create configuration from environment variables */ static fromEnvironment(): ISmsConfig; /** * Create configuration with validation */ static create(config: Partial<ISmsConfig>): ISmsConfig; /** * Create a simple configuration for testing with mock driver */ static createForTesting(options?: { shouldFail?: boolean; delay?: number; }): ISmsConfig; /** * Create configuration for Kavenegar */ static createKavenegarConfig(options: { apiKey: string; lineNumber: string; url?: string; }): ISmsConfig; /** * Create configuration for SMS.ir */ static createSmsIrConfig(options: { apiKey: string; lineNumber: string; url?: string; }): ISmsConfig; /** * Create configuration for Melipayamak */ static createMelipayamakConfig(options: { username: string; password: string; url?: string; }): ISmsConfig; /** * Create configuration for IPPanel */ static createIppanelConfig(options: { apiKey: string; lineNumber: string; url?: string; }): ISmsConfig; /** * Merge multiple configurations */ static merge(...configs: Partial<ISmsConfig>[]): ISmsConfig; /** * Validate configuration */ private static validateConfig; /** * Get sample environment variables */ static getSampleEnvVars(): string; } //# sourceMappingURL=sms-config.d.ts.map