import { EventHandler } from '@microsoft/teams.common';
import { App } from './app';
import { IActivityResponseEvent, IActivitySentEvent, IErrorEvent } from './events';
import { AppEvents, IPlugin } from './types';
/**
 * subscribe to an event
 * @param name the event to subscribe to
 * @param cb the callback to invoke
 */
export declare function event<TPlugin extends IPlugin, Name extends keyof AppEvents<TPlugin>>(this: App<TPlugin>, name: Name, cb: EventHandler<AppEvents<TPlugin>[Name]>): App<TPlugin>;
export declare function onError<TPlugin extends IPlugin>(this: App<TPlugin>, event: IErrorEvent): Promise<void>;
export declare function onActivitySent<TPlugin extends IPlugin>(this: App<TPlugin>, event: IActivitySentEvent): Promise<void>;
export declare function onActivityResponse<TPlugin extends IPlugin>(this: App<TPlugin>, event: IActivityResponseEvent): Promise<void>;
