import { t as ChannelPlugin } from "../../types.plugin-M6Pttpij.js";
import { IncomingMessage, ServerResponse } from "node:http";

//#region extensions/sms/src/types.d.ts
interface ResolvedSmsAccount {
  accountId: string;
  enabled: boolean;
  accountSid: string;
  authToken: string;
  fromNumber: string;
  messagingServiceSid: string;
  defaultTo: string;
  webhookPath: string;
  publicWebhookUrl: string;
  dangerouslyDisableSignatureValidation: boolean;
  dmPolicy: "pairing" | "open" | "allowlist" | "disabled";
  allowFrom: string[];
  textChunkLimit: number;
}
//#endregion
//#region extensions/sms/src/twilio.d.ts
type TwilioMessageLogEntry = {
  sid: string;
  direction: string;
  status: string;
  to: string;
  from: string;
  errorCode: string;
  body: string;
  dateCreated: string;
  dateSent: string;
};
//#endregion
//#region extensions/sms/src/status.d.ts
type SmsTwilioWebhookProbe = {
  status: "skipped";
  reason: string;
} | {
  status: "unavailable";
  reason: string;
} | {
  status: "number-not-found";
  expectedNumber: string;
} | {
  status: "missing";
  phoneNumber: string;
  expectedUrl: string;
  configuredMethod: string;
} | {
  status: "method-mismatch";
  phoneNumber: string;
  expectedUrl: string;
  configuredUrl: string;
  configuredMethod: string;
} | {
  status: "url-mismatch";
  phoneNumber: string;
  expectedUrl: string;
  configuredUrl: string;
  configuredMethod: string;
} | {
  status: "matches";
  phoneNumber: string;
  expectedUrl: string;
  configuredUrl: string;
  configuredMethod: string;
  voiceUrl: string;
} | {
  status: "messaging-service-missing";
  serviceSid: string;
  expectedUrl: string;
  configuredMethod: string;
} | {
  status: "messaging-service-method-mismatch";
  serviceSid: string;
  expectedUrl: string;
  configuredUrl: string;
  configuredMethod: string;
} | {
  status: "messaging-service-url-mismatch";
  serviceSid: string;
  expectedUrl: string;
  configuredUrl: string;
  configuredMethod: string;
} | {
  status: "messaging-service-matches";
  serviceSid: string;
  expectedUrl: string;
  configuredUrl: string;
  configuredMethod: string;
};
type SmsProbe = {
  ok: boolean;
  error?: string;
  webhook: SmsTwilioWebhookProbe;
  recentInbound?: Pick<TwilioMessageLogEntry, "sid" | "direction" | "status" | "errorCode" | "dateCreated" | "dateSent">;
  hints: string[];
};
//#endregion
//#region extensions/sms/src/channel.d.ts
declare const smsPlugin: ChannelPlugin<ResolvedSmsAccount, SmsProbe>;
//#endregion
export { smsPlugin };