/** * SmsShuttle — the SMS (Twilio) channel, on the ShuttleAdapter base (SH7). * * The agent is a PHONE NUMBER here: a business points its Twilio number's * inbound webhook at `handleInbound`, and every customer who texts the number * talks to the agent, one thread per number. Reply goes out via the Twilio * REST API (async — the agent takes time, so we don't reply in the webhook * response). This is exactly the "deploy your agent on a number" case. */ import type { ThreadMap } from '../types.js'; import type { DeliveryPolicy, DeliveryResult } from '../delivery.js'; import type { GatewayClient } from '../gateway-client.js'; export interface SmsShuttleOptions { readonly accountSid: string; readonly authToken: string; /** The business's Twilio number (the reply `from`). */ readonly from: string; readonly profileId: string; readonly gateway: GatewayClient; readonly threads?: ThreadMap; readonly delivery?: DeliveryPolicy; readonly fetch?: typeof fetch; readonly baseUrl?: string; } export interface HandleInboundOptions { /** The public webhook URL, for signature validation. */ readonly url?: string; /** The `X-Twilio-Signature` header value. */ readonly signature?: string; } export declare class SmsShuttle { private readonly adapter; private readonly authToken; constructor(opts: SmsShuttleOptions); /** * Handle one inbound Twilio webhook (the parsed form params). Mount this on * your HTTP endpoint. Pass `url`+`signature` to verify the request is Twilio's. * Returns what was delivered, or null if ignored (empty/non-message). */ handleInbound(params: Record, opts?: HandleInboundOptions): Promise; } //# sourceMappingURL=shuttle.d.ts.map