UNPKG

@microsoft/teams.apps

Version:

<p> <a href="https://www.npmjs.com/package/@microsoft/teams.apps" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.apps/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.apps?activeTab=code

994 lines 56.6 kB
import { ActivityLike, ChannelID, ConversationReference, Credentials, IToken, StripMentionsTextOptions } from '@microsoft/teams.api'; import { EventEmitter } from '@microsoft/teams.common/events'; import * as http from '@microsoft/teams.common/http'; import { ILogger } from '@microsoft/teams.common/logging'; import { IStorage, LocalStorage } from '@microsoft/teams.common/storage'; import { ApiClient, GraphClient } from './api'; import { configTab, func, tab } from './app.embed'; import { event, onActivity, onActivityResponse, onActivitySent, onError } from './app.events'; import { onTokenExchange, onVerifyState } from './app.oauth'; import { getPlugin, inject, plugin } from './app.plugins'; import { $process } from './app.process'; import { message, on, use } from './app.routing'; import { Container } from './container'; import * as manifest from './manifest'; import * as middleware from './middleware'; import { OAuthSettings } from './oauth'; import { HttpPlugin } from './plugins'; import { Router } from './router'; import { AppEvents, IPlugin } from './types'; import { PluginAdditionalContext } from './types/app-routing'; /** * App initialization options */ export type AppOptions<TPlugin extends IPlugin> = Partial<Credentials> & { /** * http client or client options used to make api requests */ readonly client?: http.Client | http.ClientOptions | (() => http.Client); /** * logger instance to use */ readonly logger?: ILogger; /** * storage instance to use */ readonly storage?: IStorage; /** * plugins to extend the apps functionality */ readonly plugins?: Array<TPlugin>; /** * OAuth Settings */ readonly oauth?: OAuthSettings; /** * The apps manifest */ readonly manifest?: Partial<manifest.Manifest>; /** * Activity Options */ readonly activity?: AppActivityOptions; /** * Skip authentication for HTTP requests */ readonly skipAuth?: boolean; }; export type AppActivityOptions = { readonly mentions?: { /** * Automatically remove `<at>...</at>` mention * from inbound activity `text` */ readonly stripText?: boolean | StripMentionsTextOptions; }; }; export type AppTokens = { /** * bot token used to send activities */ bot?: IToken; /** * graph token used to query the graph api */ graph?: IToken; }; /** * The orchestrator for receiving/sending activities */ export declare class App<TPlugin extends IPlugin = IPlugin> { readonly options: AppOptions<TPlugin>; readonly api: ApiClient; readonly graph: GraphClient; readonly log: ILogger; readonly http: HttpPlugin; readonly client: http.Client; readonly storage: IStorage; readonly credentials?: Credentials; readonly entraTokenValidator?: middleware.JwtValidator; /** * the apps id */ get id(): string | undefined; /** * the apps name */ get name(): string | undefined; get oauth(): { defaultConnectionName: string; }; /** * the apps manifest */ get manifest(): Partial<manifest.Manifest>; protected readonly _manifest: Partial<manifest.Manifest>; /** * the apps auth tokens */ get tokens(): AppTokens; protected _tokens: AppTokens; protected container: Container; protected plugins: Array<TPlugin>; protected router: Router<PluginAdditionalContext<TPlugin>>; protected tenantTokens: LocalStorage<string>; protected events: EventEmitter<AppEvents<TPlugin>>; protected startedAt?: Date; protected port?: number | string; private readonly _userAgent; constructor(options?: AppOptions<TPlugin>); /** * start the app * @param port port to listen on */ start(port?: number | string): Promise<void>; /** * stop the app */ stop(): Promise<void>; /** * send an activity proactively * @param conversationId the conversation to send to * @param activity the activity to send */ send(conversationId: string, activity: ActivityLike): Promise<{ id: string; type: "message"; text?: string | undefined; speak?: string | undefined; inputHint?: import("@microsoft/teams.api").InputHint | undefined; summary?: string | undefined; textFormat?: import("@microsoft/teams.api").TextFormat | undefined; attachmentLayout?: import("@microsoft/teams.api").AttachmentLayout | undefined; attachments?: import("@microsoft/teams.api").Attachment[] | undefined; suggestedActions?: import("@microsoft/teams.api").SuggestedActions | undefined; importance?: import("@microsoft/teams.api").Importance | undefined; deliveryMode?: import("@microsoft/teams.api").DeliveryMode | undefined; expiration?: Date | undefined; value?: any; stripMentionsText?: ((options?: StripMentionsTextOptions) => import("@microsoft/teams.api").IMessageActivity) | undefined; isRecipientMentioned?: (() => boolean) | undefined; getAccountMention?: ((accountId: string) => import("@microsoft/teams.api").MentionEntity | undefined) | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "messageUpdate"; text?: string | undefined; speak?: string | undefined; summary?: string | undefined; expiration?: Date | undefined; value?: any; channelData?: (import("@microsoft/teams.api").ChannelData & { eventType: "undeleteMessage" | "editMessage"; }) | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "messageDelete"; channelData?: (import("@microsoft/teams.api").ChannelData & { eventType: "softDeleteMessage"; }) | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "messageReaction"; reactionsAdded?: import("@microsoft/teams.api").MessageReaction[] | undefined; reactionsRemoved?: import("@microsoft/teams.api").MessageReaction[] | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "event"; name?: "application/vnd.microsoft.readReceipt" | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "event"; name?: "application/vnd.microsoft.meetingStart" | undefined; value?: { id: string; meetingType: string; joinUrl: string; title: string; startTime: Date; } | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "event"; name?: "application/vnd.microsoft.meetingEnd" | undefined; value?: { id: string; meetingType: string; joinUrl: string; title: string; endTime: Date; } | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "event"; name?: "application/vnd.microsoft.meetingParticipantJoin" | undefined; value?: { members: { user: import("@microsoft/teams.api").Account; meeting: { inMeeting: boolean; role: string; }; }[]; } | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "event"; name?: "application/vnd.microsoft.meetingParticipantLeave" | undefined; value?: { members: { user: import("@microsoft/teams.api").Account; meeting: { inMeeting: boolean; role: string; }; }[]; } | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "fileConsent/invoke" | undefined; value?: import("@microsoft/teams.api").FileConsentCardResponse | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "actionableMessage/executeAction" | undefined; value?: import("@microsoft/teams.api").O365ConnectorCardActionQuery | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/anonymousQueryLink" | undefined; value?: import("@microsoft/teams.api").AppBasedLinkQuery | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/fetchTask" | undefined; value?: import("@microsoft/teams.api").MessagingExtensionAction | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/onCardButtonClicked" | undefined; value?: any; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/queryLink" | undefined; value?: import("@microsoft/teams.api").AppBasedLinkQuery | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/querySettingUrl" | undefined; value?: import("@microsoft/teams.api").MessagingExtensionQuery | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/query" | undefined; value?: import("@microsoft/teams.api").MessagingExtensionQuery | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/selectItem" | undefined; value?: any; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/setting" | undefined; value?: import("@microsoft/teams.api").MessagingExtensionQuery | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "composeExtension/submitAction" | undefined; value?: import("@microsoft/teams.api").MessagingExtensionAction | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "config/fetch" | undefined; value?: any; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "config/submit" | undefined; value?: any; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "tab/fetch" | undefined; value?: import("@microsoft/teams.api").TabRequest | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "tab/submit" | undefined; value?: import("@microsoft/teams.api").TabRequest | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "task/fetch" | undefined; value?: import("@microsoft/teams.api").TaskModuleRequest | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "task/submit" | undefined; value?: import("@microsoft/teams.api").TaskModuleRequest | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "message/submitAction" | undefined; value?: { actionName: "feedback"; actionValue: { reaction: "like" | "dislike"; feedback: string; }; } | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "handoff/action" | undefined; value?: { continuation: string; } | undefined; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "signin/tokenExchange" | undefined; value?: import("@microsoft/teams.api").SignInExchangeToken | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "signin/verifyState" | undefined; value?: import("@microsoft/teams.api").SigninStateVerifyQuery | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "invoke"; name?: "adaptiveCard/action" | undefined; value?: import("@microsoft/teams.api").AdaptiveCardInvokeValue | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "trace"; name?: string | undefined; label?: string | undefined; valueType?: string | undefined; value?: any; relatesTo?: ConversationReference | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "typing"; text?: string | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "handoff"; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "conversationUpdate"; membersAdded?: import("@microsoft/teams.api").Account[] | undefined; membersRemoved?: import("@microsoft/teams.api").Account[] | undefined; topicName?: string | undefined; historyDisclosed?: boolean | undefined; channelData?: (import("@microsoft/teams.api").ChannelData & { eventType: "channelCreated" | "channelDeleted" | "channelRenamed" | "channelRestored" | "channelShared" | "channelUnshared" | "channelMemberAdded" | "channelMemberRemoved" | "teamArchived" | "teamDeleted" | "teamHardDeleted" | "teamRenamed" | "teamRestored" | "teamUnarchived"; }) | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "endOfConversation"; code?: import("@microsoft/teams.api").EndOfConversationCode | undefined; text?: string | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | undefined; recipient?: import("@microsoft/teams.api").Account | undefined; replyToId?: string | undefined; entities?: import("@microsoft/teams.api").Entity[] | undefined; channelData?: import("@microsoft/teams.api").ChannelData | undefined; channel?: import("@microsoft/teams.api").ChannelInfo | undefined; team?: import("@microsoft/teams.api").TeamInfo | undefined; meeting?: import("@microsoft/teams.api").MeetingInfo | undefined; notification?: import("@microsoft/teams.api").NotificationInfo | undefined; isStreaming?: (() => boolean) | undefined; } | { id: string; type: "command"; name?: string | undefined; value?: import("@microsoft/teams.api").CommandValue<any> | undefined; serviceUrl?: string | undefined; timestamp?: Date | undefined; locale?: string | undefined; localTimestamp?: Date | undefined; channelId?: ChannelID | undefined; from?: import("@microsoft/teams.api").Account | undefined; conversation?: import("@microsoft/teams.api").ConversationAccount | undefined; relatesTo?: ConversationReference | un