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

27 lines (26 loc) 1.45 kB
import { Activity, InvokeResponse } from '@microsoft/teams.api'; import { App } from './app'; import { IActivityContext } from './contexts'; import { IRoutes } from './routes'; import { IPlugin, RouteHandler } from './types'; import { PluginAdditionalContext } from './types/app-routing'; type AppPlugin<TApp extends App> = TApp extends App<infer TPlugin> ? TPlugin : never; export type AppRoutingHandler<Name extends keyof IRoutes, TApp extends App<any>> = Exclude<IRoutes<PluginAdditionalContext<AppPlugin<TApp>>>[Name], undefined>; /** * subscribe to an event * @param name event to subscribe to * @param cb callback to invoke */ export declare function on<TPlugin extends IPlugin, Name extends keyof IRoutes>(this: App<TPlugin>, name: Name, cb: Exclude<IRoutes<PluginAdditionalContext<TPlugin>>[Name], undefined>): App<TPlugin>; /** * subscribe to a message event for a specific pattern * @param pattern pattern to match against message text * @param cb callback to invoke */ export declare function message<TPlugin extends IPlugin>(this: App<TPlugin>, pattern: string | RegExp, cb: Exclude<IRoutes<PluginAdditionalContext<TPlugin>>['message'], undefined>): App<TPlugin>; /** * register a middleware * @param cb callback to invoke */ export declare function use<TPlugin extends IPlugin>(this: App<TPlugin>, cb: RouteHandler<IActivityContext<Activity, PluginAdditionalContext<TPlugin>>, void | InvokeResponse>): App<TPlugin>; export {};