import type { EmailSendInput } from './email.types.js'; import type { SmsSendInput } from './sms.types.js'; import type { PushSendInput } from './push.types.js'; import type { ChatSendInput } from './chat.types.js'; import type { SesEmailSendInput } from '../providers/ses/index.js'; import type { ResendEmailSendInput } from '../providers/resend/index.js'; import type { MailgunEmailSendInput } from '../providers/mailgun/index.js'; import type { SendgridEmailSendInput } from '../providers/sendgrid/index.js'; import type { PostmarkEmailSendInput } from '../providers/postmark/index.js'; import type { MailerSendEmailSendInput } from '../providers/mailersend/index.js'; import type { MailtrapEmailSendInput } from '../providers/mailtrap/index.js'; import type { BrevoEmailSendInput } from '../providers/brevo/index.js'; import type { SparkPostEmailSendInput } from '../providers/sparkpost/index.js'; import type { ScalewayEmailSendInput } from '../providers/scaleway/index.js'; import type { VonageNarrowedInput } from '../providers/vonage/index.js'; import type { TwilioNarrowedInput } from '../providers/twilio/index.js'; import type { PlivoNarrowedInput } from '../providers/plivo/index.js'; import type { SnsNarrowedInput } from '../providers/sns/index.js'; import type { SinchNarrowedInput } from '../providers/sinch/index.js'; import type { TelnyxNarrowedInput } from '../providers/telnyx/index.js'; import type { InfobipNarrowedInput } from '../providers/infobip/index.js'; import type { MessageBirdNarrowedInput } from '../providers/messagebird/index.js'; import type { TextmagicNarrowedInput } from '../providers/textmagic/index.js'; import type { D7NetworksNarrowedInput } from '../providers/d7networks/index.js'; import type { FcmPushSendInput } from '../providers/fcm/index.js'; import type { ExpoNarrowedInput } from '../providers/expo/index.js'; import type { ApnsPushSendInput } from '../providers/apns/index.js'; import type { OneSignalNarrowedInput } from '../providers/one-signal/index.js'; import type { PusherBeamsPushSendInput } from '../providers/pusher-beams/index.js'; import type { WonderPushNarrowedInput } from '../providers/wonderpush/index.js'; import type { TelegramNarrowedInput } from '../providers/telegram/index.js'; import type { SlackNarrowedInput } from '../providers/slack/index.js'; import type { WhatsAppBusinessNarrowedInput } from '../providers/whatsapp-business/index.js'; import type { DiscordNarrowedInput } from '../providers/discord/index.js'; import type { MsTeamsNarrowedInput } from '../providers/ms-teams/index.js'; import type { GoogleChatNarrowedInput } from '../providers/google-chat/index.js'; import type { MattermostNarrowedInput } from '../providers/mattermost/index.js'; import type { RocketChatNarrowedInput } from '../providers/rocket-chat/index.js'; import type { LineNarrowedInput } from '../providers/line/index.js'; /** * Maps each provider id to its narrowed input type. The facade `send` method * uses this map so consumers passing a provider-specific input get full * type-narrowing through the facade. * * Under the >=90% baseline-coverage rule, provider-specific fields * are exposed via these narrowed types; baseline fields live on the channel * `SendInput` interface. */ export interface EmailInputMap { ses: SesEmailSendInput; resend: ResendEmailSendInput; mailgun: MailgunEmailSendInput; sendgrid: SendgridEmailSendInput; postmark: PostmarkEmailSendInput; mailersend: MailerSendEmailSendInput; mailtrap: MailtrapEmailSendInput; brevo: BrevoEmailSendInput; sparkpost: SparkPostEmailSendInput; scaleway: ScalewayEmailSendInput; } export interface SmsInputMap { vonage: VonageNarrowedInput; twilio: TwilioNarrowedInput; plivo: PlivoNarrowedInput; sns: SnsNarrowedInput; sinch: SinchNarrowedInput; telnyx: TelnyxNarrowedInput; infobip: InfobipNarrowedInput; messagebird: MessageBirdNarrowedInput; textmagic: TextmagicNarrowedInput; d7networks: D7NetworksNarrowedInput; } export interface PushInputMap { fcm: FcmPushSendInput; expo: ExpoNarrowedInput; apns: ApnsPushSendInput; 'one-signal': OneSignalNarrowedInput; 'pusher-beams': PusherBeamsPushSendInput; wonderpush: WonderPushNarrowedInput; } export interface ChatInputMap { telegram: TelegramNarrowedInput; slack: SlackNarrowedInput; 'whatsapp-business': WhatsAppBusinessNarrowedInput; discord: DiscordNarrowedInput; 'ms-teams': MsTeamsNarrowedInput; 'google-chat': GoogleChatNarrowedInput; mattermost: MattermostNarrowedInput; 'rocket-chat': RocketChatNarrowedInput; line: LineNarrowedInput; } export type { EmailSendInput, SmsSendInput, PushSendInput, ChatSendInput };