@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
TypeScript
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 {};