@mirad-work/sms-core
Version:
A framework-agnostic TypeScript SMS service core with provider abstraction for Iranian SMS providers
75 lines • 2.11 kB
TypeScript
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