@netgsm/sms
Version:
Netgsm API Client for SMS sending and reporting
79 lines (78 loc) • 3.25 kB
TypeScript
/**
* @module Netgsm
* @description Netgsm SMS API client implementation
*/
import { NetgsmConfig, ReportPayload, ReportResponse, HeaderQueryResponse, HeaderQueryPayload, BalanceResponse, BalancePayload, CancelSmsPayload, CancelSmsResponse, SmsInboxResponse, SmsInboxPayload, RestSmsPayload, RestSmsResponse, OtpSmsPayload, OtpSmsResponse, StatsPayload, StatsResponse } from "./types";
/**
* Netgsm API Client
*
* Provides methods to interact with Netgsm's REST API for sending SMS.
*/
declare class Netgsm {
private config;
private baseURL;
private headers;
private sdkAppName?;
/**
* Initialize the Netgsm client.
* @param {NetgsmConfig} config - Configuration object containing username and password.
*/
constructor(config: NetgsmConfig);
/**
* Generate Base64 encoded authorization token
* @param {string} username - Username for authentication.
* @param {string} password - Password for authentication.
* @returns {string} - Base64 encoded token.
*/
private generateAuthToken;
/**
* Send SMS using REST v2 API
* @param {RestSmsPayload} payload - JSON payload for sending SMS.
* @returns {Promise<RestSmsResponse>} - The API response.
*/
sendRestSms(payload: RestSmsPayload): Promise<RestSmsResponse>;
/**
* Send OTP SMS using REST v2 API
* @param {OtpSmsPayload} payload - JSON payload for sending OTP SMS.
* @returns {Promise<OtpSmsResponse>} - The API response.
*/
sendOtpSms(payload: OtpSmsPayload): Promise<OtpSmsResponse>;
/**
* Cancel a scheduled SMS
* @param {CancelSmsPayload} payload - JSON payload for cancelling SMS.
* @returns {Promise<CancelSmsResponse>} - The API response.
*/
cancelSms(payload: CancelSmsPayload): Promise<CancelSmsResponse>;
/**
* Get SMS report using REST v2 API
* @param {ReportPayload} payload - JSON payload for fetching SMS report.
* @returns {Promise<ReportResponse>} - The API response containing report details.
*/
getReport(payload: ReportPayload): Promise<ReportResponse>;
/**
* Get SMS statistics using REST v2 API
* @param {StatsPayload} payload - JSON payload for fetching SMS report.
* @returns {Promise<StatsResponse>} - The API response containing report details.
*/
getStats(payload: StatsPayload): Promise<StatsResponse>;
/**
* Get registered sender IDs/headers using REST v2 API
* @param {HeaderQueryPayload} payload - Optional payload for the query
* @returns {Promise<HeaderQueryResponse>} - The API response containing header details.
*/
getHeaders(payload?: HeaderQueryPayload): Promise<HeaderQueryResponse>;
/**
* Get inbox messages
* @param {SmsInboxPayload} payload - Optional payload for the query
* @returns {Promise<SmsInboxResponse>} - The API response containing inbox messages.
*/
getInbox(payload?: SmsInboxPayload): Promise<SmsInboxResponse>;
/**
* Checks balance/package information
* @param payload Balance query parameters
* @returns Balance information
*/
checkBalance(payload: BalancePayload): Promise<BalanceResponse>;
private handleResponse;
}
export default Netgsm;