     private(set) var actionHandler: ((UIAlertAction) -> Void)?
     let preferred: Bool
     
+    /**
+     Creates an instance of an `AlertAction` to be added to an `Alert`
+     - parameters:
+        - title: The text to use for the button title. The value you specify should be localized for the user’s current language. This parameter must not be nil, except in a tvOS app where a nil title may be used with cancel.
+        - style: Additional styling information to apply to the button. Use the style information to convey the type of action that is performed by the button. For a list of possible values, see the constants in UIAlertActionStyle.
+        - preferred: The preferred action for the user to take from an alert. *NOTE: Only available on iOS 9+
+        - completeOnDismiss: `true` to call `complete` automatically on the action completion. `false` to not add the complete on the action.
+        - actionHandler: A block to execute when the user selects the action. This block has no return value and takes the selected action-object as its only parameter.
+     */
     init(title: String, style: UIAlertActionStyle, preferred: Bool = false, completeOnDismiss: Bool = true, actionHandler: ((UIAlertAction) -> Void)? = nil) {
         self.title = title
         self.style = style

import Foundation
import UIKit

/// Coordinator for displaying multiple alerts to the foreground. Only one alert can display at any given time. The `AlertCoordinator` queues the alerts to display them after activity
class AlertCoordinator: NSObject {
    private(set) var highPriorityQueue = [Alert]()
    private(set) var defaultPriorityQueue = [Alert]()

    }
}

/**
 An `Alert` is an object that hanldes a `UIAlertController` with added features. This class replaces the direct use of `UIAlertContoller`. With an instance of this class display it by enqueueing to an instance of an `AlertCoordinator`.
 */
class Alert {
    let title: String?
    let message: String?
