import { EventEmitter } from '@microsoft/teams.common';
import { IActivityEvent, IActivityResponseEvent, IActivitySentEvent, IErrorEvent } from './events';
import { AppEvents, IPlugin } from './types';
/**
 * Owns the app event emitter and fans inbound/outbound activity events out to
 * plugins before re-emitting them on the app's public event emitter.
 *
 * This used to live as a set of `this: App`-bound free functions; it is now a
 * collaborator the {@link App} constructs and owns.
 */
export declare class EventManager<TPlugin extends IPlugin = IPlugin> {
    private readonly events;
    private readonly plugins;
    constructor(events: EventEmitter<AppEvents<TPlugin>>, plugins: ReadonlyArray<TPlugin>);
    onError(event: IErrorEvent): Promise<void>;
    onActivity(event: IActivityEvent): void;
    onActivitySent(event: IActivitySentEvent): Promise<void>;
    onActivityResponse(event: IActivityResponseEvent): Promise<void>;
}
