import { BaseConnector } from '../../base/base.connector'; import type { ISmsOptions, ISmsProvider, ISendMessageSuccessResponse, WithPassthrough, SmsSendResult, ISmsConnector } from '../../types'; import { ChannelTypeEnum } from '../../types'; import type { SinchConfig } from './sinch.config'; import type { SinchNarrowedInput } from './sinch.types'; export declare class SinchSmsConnector extends BaseConnector implements ISmsProvider, ISmsConnector { private config; readonly id = "sinch"; readonly channelType: ChannelTypeEnum.SMS; constructor(config: SinchConfig, fetchImpl?: typeof fetch); /** * Thinwrap-native send. Implements `ISmsConnector`. * Builds a JSON body in snake_case (explicit casing — no `transformKeys` * invocation since each key is written by hand) and POSTs to the regional * batches endpoint `https://.sms.api.sinch.com/xms/v1//batches`. * * Sinch's batches API expects `to: string[]` even for single-recipient sends; * the connector wraps `[input.to]` automatically. Multi-recipient batches are * out of v1.0 Thinwrap baseline — consumers can override * `_passthrough.body.to`. */ send(input: SinchNarrowedInput): Promise; /** * Map Sinch error responses to canonical `ConnectorError` with the 6-value * `ProviderCode` union. Parses `Retry-After`: * parsed seconds embedded in `providerMessage` text; raw header value on * `cause.retryAfter`. No structured `retryAfterSeconds` field per * Retry is consumer policy (no retryAfterSeconds field). */ private mapVendorError; sendMessage(options: ISmsOptions, bridgeProviderData?: WithPassthrough>): Promise; }