import { BaseConnector } from '../../base/base.connector'; import type { ISmsOptions, ISmsProvider, ISendMessageSuccessResponse, WithPassthrough, SmsSendResult, ISmsConnector } from '../../types'; import { ChannelTypeEnum } from '../../types'; import type { D7NetworksConfig } from './d7networks.config'; import type { D7NetworksNarrowedInput } from './d7networks.types'; export declare class D7NetworksSmsConnector extends BaseConnector implements ISmsProvider, ISmsConnector { private config; readonly id = "d7networks"; readonly channelType: ChannelTypeEnum.SMS; constructor(config: D7NetworksConfig, fetchImpl?: typeof fetch); /** * Thinwrap-native send. Implements `ISmsConnector`. * POSTs JSON to `https://api.d7networks.com/messages/v1/send` with Bearer * auth. * * D7's wire shape is the most nested of any SMS provider (outlier): * per-message fields live inside `messages[]`, global fields live inside * `message_globals`. The connector silently allocates each narrowed-input * field to the correct nesting level. Snake-case wire keys (`msg_type`, * `data_coding`, `schedule_time`, `validity_period`, `report_url`, * `message_globals`) are written explicitly — no `transformKeys` * invocation. * * `originator` precedence: `input.originator` (preferred, matches D7's * vocabulary) → `input.from` (matches Thinwrap baseline) → `config.from`. */ send(input: D7NetworksNarrowedInput): Promise; /** * Map D7 error responses to canonical `ConnectorError` with the 6-value * `ProviderCode` union. D7's body error structure is * `{ code: string, detail: string }`; both fields preserved in error message * and `cause.raw`. 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; }