import type { SmsHooks, SmsOptions, SmsPlugin, SmsSendResult, SmsTransport } from "./core/sms-types.js"; import type { VerifyResult } from "./core/types.js"; /** Configuration for {@link createSmsSender}. */ export interface SmsSenderConfig { /** SMS delivery transport. */ transport: SmsTransport; /** Optional plugins run before each send. */ plugins?: SmsPlugin[]; /** Optional lifecycle hooks for metrics and tracing. */ hooks?: SmsHooks; } /** SMS sender returned by {@link createSmsSender}. */ export interface SmsSender { /** Send an SMS through the configured transport. */ send(options: SmsOptions): Promise; /** Test connectivity and credentials without sending. */ verify(): Promise; /** Release resources held by the transport. */ close(): Promise; } /** * Create an SMS sender that wraps an {@link SmsTransport}. * * Pipeline: plugins → onSend → transport.send → onSuccess / onError. * `onRetry` / `onFallback` wire when the transport is a retry or fallback decorator. */ export declare function createSmsSender(config: SmsSenderConfig): SmsSender;