Normalized webhook event from any telephony provider.
Uses a discriminated union on the kind field so consumers can narrow
with a switch (event.kind) and get full type safety for each variant's
payload.
Provider-specific webhook formats (Twilio form-encoded, Telnyx JSON,
Plivo URL-encoded/JSON) are all mapped into these canonical shapes by
each provider's IVoiceCallProvider.parseWebhookEvent implementation.
Normalized webhook event from any telephony provider.
Uses a discriminated union on the
kindfield so consumers can narrow with aswitch (event.kind)and get full type safety for each variant's payload.Provider-specific webhook formats (Twilio form-encoded, Telnyx JSON, Plivo URL-encoded/JSON) are all mapped into these canonical shapes by each provider's IVoiceCallProvider.parseWebhookEvent implementation.