/// <reference types="jquery" />
import { EventHandler, EventListener, EventSupport, UiNotificationDo, UiNotificationHandler, UiNotificationPoller } from '../index';
export declare class UiNotificationSystem {
    poller: UiNotificationPoller;
    name: string;
    events: UiNotificationEventSupport;
    constructor(name: string);
    subscribe(topic: string, handler: UiNotificationHandler): JQuery.Promise<string>;
    subscribeOne(topic: string, handler: UiNotificationHandler): JQuery.Promise<string>;
    unsubscribe(topic: string, handler?: UiNotificationHandler): void;
    whenSubscriptionStart(topic: string): JQuery.Promise<string>;
    protected _dispatch(notifications: UiNotificationDo[]): void;
    protected _trigger(type: string, notification: UiNotificationDo): void;
    updatePoller(): void;
    destroy(): void;
}
declare class UiNotificationEventSupport extends EventSupport {
    system: UiNotificationSystem;
    constructor(system: UiNotificationSystem);
    on(type: string, func: EventHandler, origFunc?: EventHandler): EventListener;
    off(type: string, func?: EventHandler): void;
}
export {};
//# sourceMappingURL=UiNotificationSystem.d.ts.map