import { Enums } from './Enums';
export declare module NotificationPanel {
    interface INotificationPanelControl {
        controlId: string;
        controlDisplayName: string;
    }
    interface INotificationModuleAngularEntity {
        objectType: NotificationPanelAngularEntityType;
        objectName: string;
        object: any;
    }
    interface INotificationPanelCategory {
        id?: string;
        title?: string;
        icon?: string;
        iconColor?: string;
        viewControls?: Array<INotificationPanelViewControl>;
        notificationType?: Enums.PanelNotificationTypes;
        notificationQueryUrl?: string;
        notificationProvider?: string;
        notificationCount?: number;
        shouldFadeOut?: boolean;
        visible?: boolean;
        emptyControl?: Array<string>;
    }
    interface INotificationPanelViewControl {
        controlId?: string;
        id?: string;
        title?: string;
        inEditMode?: boolean;
        draftTitle?: string;
    }
    interface INotificationProvider {
        providerId: string;
        providerName: string;
        getNotifications: (callback: (notifications: Array<any>) => void) => void;
    }
    enum NotificationPanelAngularEntityType {
        controller = 0,
        service = 1,
    }
    function registerNotificationPanelControl(controlId: string, controlDisplayName: string): void;
    function getNotificationPanelControls(supportAngular1?: boolean): INotificationPanelControl[];
    function publishNewDataNotification(containerId: string, notificationCount: number): void;
    function onControlVisibleInNotificationPanel(containerId: string, handler: () => void): void;
    function isControlInNotificationPanel(containerId: string): boolean;
    function registerNotificationProvider(providerId: string, providerName: string, getNotificationsMethod: (callback: (notifications: Array<any>) => void) => void): void;
    function getNoficiationProvider(providerId: string): INotificationProvider;
    function getNotificationProviders(): Array<INotificationProvider>;
}
