 //
 
 import UIKit
+
+public enum SlideDirection: Int {
+  case left
+  case right
+  case top
+  case bottom
+}
+
+public struct SlidableImageBorder {
+  var borderWidth: CGFloat
+  var borderColor: CGColor
+    
+  public init(borderWidth width: CGFloat, borderColor color: CGColor) {
+    self.borderWidth = width
+    self.borderColor = color
+  }
+}
 
 /// Super easy Slider for before&after images
 open class SlidableImage: UIView {

  ///
  /// - Parameter maskLocation: Position of slider
  open func updateMask(location maskLocation: CGFloat) {
    let maskRectPath = UIBezierPath(rect: CGRect(x: bounds.minX,
                                                 y: bounds.minY,
                                                 width: maskLocation,
                                                 height: bounds.height))
    let mask = CAShapeLayer()
    mask.path = maskRectPath.cgPath
    secondView.layer.mask = mask

    sliderCircle.center.x = maskLocation
  }


  /// Circle view with icon for sliding images. You can override it with your custom view.
  open var sliderCircle: UIView

  /// Enum that describes which direction the slider will slide from.
  open var slideDirection: SlideDirection
    
  /// Generic initializer with views
  ///
  /// - Parameters:
  ///   - frame: Frame size
  ///   - firstView: First view - should have size equal to frame and second view
  ///   - secondView: Second view - should have size equal to frame and second view
  public init(frame: CGRect, firstView: UIView, secondView: UIView, sliderImage: UIImage? = nil, slideDirection: SlideDirection? = nil) {
    self.firstView = firstView
    self.secondView = secondView
    self.sliderCircle = SlidableImage.setupSliderCircle(sliderImage: sliderImage)
    self.slideDirection = slideDirection ?? .right
    super.init(frame: frame)

    initializeViews()
