x

### Notifications manager singleton

    interface INotificationsManager {
        init(): void;
        addNotification(notification: Notification): void;
        removeNotification(notification: Notification): void;
        getNotifications(): Notification[];

    }

    interface INotificationsManagerSettings {
        callback?: {
            notificationAdded?(): any;
            notificationRemoved?(): any;
            notificationClosed?(): any;
        };
        $componentSelector: JQuery;
        $closeComponentSelector?: JQuery;
        deleteOnClose?: boolean;
    }

    new NotificationsManager(settings: INotificationsManagerSettings);

### Single notification class

    interface INotification {
        getMessage(): string;
        getType(): string;
        remove(): string;
        setType(type: INotificationType): void;
        hide(hiddenClassName?: string): void;
        show(): void;
        getTemplate(): HTMLElement;
    }

    interface INotificationSettings {
        notificationHTML: string|JQuery;
        textSelector: string|JQuery;
        iconSelector: string|JQuery;
        onClose?(): any;
        onAdd?(): any;
    }

    interface INotificationType {
        name: string;
        iconHTML?: string;
        textClass?: string;
    }

    new Notification(message: string, settings: INotificationSettings);