 {Emitter, Disposable} = require 'event-kit'
 Notification = require '../src/notification'
 
-# Experimental: Allows messaging the user. This will likely change, dont use
-# quite yet!
+# Public: A notification manager used to create {Notification}s to be shown
+# to the user.
 module.exports =
 class NotificationManager
   constructor: ->

  Section: Events
  ###

  onDidAddNotification: (callback) ->
    @emitter.on 'did-add-notification', callback


  Section: Adding Notifications
  ###

  # Public: Add a success notification.
  #
  # * `message` A {String} message
  # * `options` An options {Object} with optional keys such as:
  #    * `detail` A {String} with additional details about the notification
  addSuccess: (message, options) ->
    @addNotification(new Notification('success', message, options))

  # Public: Add an informational notification.
  #
  # * `message` A {String} message
  # * `options` An options {Object} with optional keys such as:
  #    * `detail` A {String} with additional details about the notification
  addInfo: (message, options) ->
    @addNotification(new Notification('info', message, options))

  # Public: Add a warning notification.
  #
  # * `message` A {String} message
  # * `options` An options {Object} with optional keys such as:
  #    * `detail` A {String} with additional details about the notification
  addWarning: (message, options) ->
    @addNotification(new Notification('warning', message, options))

  # Public: Add an error notification.
  #
  # * `message` A {String} message
  # * `options` An options {Object} with optional keys such as:
  #    * `detail` A {String} with additional details about the notification
  addError: (message, options) ->
    @addNotification(new Notification('error', message, options))

  # Public: Add a fatal error notification.
  #
  # * `message` A {String} message
  # * `options` An options {Object} with optional keys such as:
  #    * `detail` A {String} with additional details about the notification
  addFatalError: (message, options) ->
    @addNotification(new Notification('fatal', message, options))

