import * as Logger from "bunyan";
import { INotification, INotificationDispatchResult, INotificationDispatchHandler, INotificationHandlerConstructor } from "./core";
export interface INotificationDispatcher {
    dispatch(notification: INotification): Promise<INotificationDispatchResult[]>;
    shutdown(): void;
}
export declare class NotificationDispatcher implements INotificationDispatcher {
    private logger;
    dispatchHandlers: INotificationDispatchHandler[];
    private handlerClassConstructor?;
    constructor(logger: Logger, dispatchHandlers: INotificationDispatchHandler[], handlerClassConstructor?: INotificationHandlerConstructor);
    dispatch(notification: INotification): Promise<INotificationDispatchResult[]>;
    shutdown(): void;
    private validateMessageCore;
    private findMessageHandlerDecoration;
    private validateMessage;
}
