interface TeamsActivity extends Record { channelData?: { channel?: { id?: string; }; team?: { id?: string; }; teamsChannelId?: string; teamsTeamId?: string; tenant?: { id?: string; }; [key: string]: unknown; }; conversation?: { id?: string; tenantId?: string; [key: string]: unknown; }; entities?: Array<{ mentioned?: { id?: string; name?: string; }; text?: string; type?: string; [key: string]: unknown; }>; from?: { aadObjectId?: string; id?: string; name?: string; [key: string]: unknown; }; id?: string; name?: string; replyToId?: string; serviceUrl?: string; text?: string; type?: string; value?: Record; } interface TeamsContinuation { activityId?: string; channelId?: string; conversationId: string; replyToId?: string; serviceUrl: string; teamId?: string; tenantId?: string; } interface TeamsWebhookUser { aadObjectId?: string; id: string; name?: string; } interface TeamsWebhookAttachment { content?: unknown; contentType?: string; contentUrl?: string; name?: string; raw: Record; } interface TeamsParseOptions { botAppId?: string; } type TeamsWebhookPayload = TeamsCardActionPayload | TeamsConversationUpdatePayload | TeamsDialogOpenPayload | TeamsDialogSubmitPayload | TeamsInstallationUpdatePayload | TeamsMessagePayload | TeamsMessageReactionPayload | TeamsUnsupportedPayload; interface TeamsPayloadBase { continuation?: TeamsContinuation; raw: TeamsActivity; } interface TeamsMessagePayload extends TeamsPayloadBase { attachments: TeamsWebhookAttachment[]; isMention: boolean; kind: "message"; text: string; user?: TeamsWebhookUser; } interface TeamsMessageReactionPayload extends TeamsPayloadBase { action?: string; kind: "message_reaction"; messageId?: string; user?: TeamsWebhookUser; } interface TeamsCardActionPayload extends TeamsPayloadBase { actionId?: string; kind: "card_action"; user?: TeamsWebhookUser; value?: unknown; } interface TeamsDialogOpenPayload extends TeamsPayloadBase { kind: "dialog_open"; user?: TeamsWebhookUser; value?: unknown; } interface TeamsDialogSubmitPayload extends TeamsPayloadBase { kind: "dialog_submit"; user?: TeamsWebhookUser; value?: unknown; } interface TeamsConversationUpdatePayload extends TeamsPayloadBase { kind: "conversation_update"; } interface TeamsInstallationUpdatePayload extends TeamsPayloadBase { action?: string; kind: "installation_update"; } interface TeamsUnsupportedPayload extends TeamsPayloadBase { kind: "unsupported"; reason: string; } declare function extractTeamsContinuation(activity: TeamsActivity): TeamsContinuation; declare function extractTeamsUser(activity: TeamsActivity): TeamsWebhookUser | undefined; declare function extractTeamsAttachments(activity: TeamsActivity): TeamsWebhookAttachment[]; declare function isTeamsMention(activity: TeamsActivity, botAppId?: string): boolean; declare class TeamsWebhookParseError extends Error { constructor(message: string); } declare function parseTeamsWebhookBody(body: string | unknown, options?: TeamsParseOptions): TeamsWebhookPayload; declare function readTeamsWebhook(request: Request, options?: TeamsParseOptions): Promise; export { type TeamsActivity, type TeamsCardActionPayload, type TeamsContinuation, type TeamsConversationUpdatePayload, type TeamsDialogOpenPayload, type TeamsDialogSubmitPayload, type TeamsInstallationUpdatePayload, type TeamsMessagePayload, type TeamsMessageReactionPayload, type TeamsParseOptions, type TeamsPayloadBase, type TeamsUnsupportedPayload, type TeamsWebhookAttachment, TeamsWebhookParseError, type TeamsWebhookPayload, type TeamsWebhookUser, extractTeamsAttachments, extractTeamsContinuation, extractTeamsUser, isTeamsMention, parseTeamsWebhookBody, readTeamsWebhook };