/// <reference types="jquery" />
import { EventHandler, EventListener, EventSupport, InitModelOf, ObjectModel, ObjectWithType, UiNotificationDo, UiNotificationHandler, UiNotificationPoller } from '../index';
export declare class UiNotificationSystem implements UiNotificationSystemModel, ObjectWithType {
    model: UiNotificationSystemModel;
    initModel: UiNotificationSystemModel;
    poller: UiNotificationPoller;
    name: string;
    events: UiNotificationEventSupport;
    objectType: string;
    constructor();
    init(model: InitModelOf<this>): void;
    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 interface UiNotificationSystemModel extends ObjectModel<UiNotificationSystem> {
    name?: string;
}
export {};
//# sourceMappingURL=UiNotificationSystem.d.ts.map