# Protocols

The following protocols are available globally.

- `NotificationCenterObserving`

  This helper protocol is introduced to make testing with `NotificationCenter` easier.

  See more

  #### Declaration

  Swift

      public protocol NotificationCenterObserving

- `GuidanceCurrentStreetNameMonitorDelegate`

  The protocol used to notify the delegate about changes in the current street name.

  See more

  #### Declaration

  Swift

      public protocol GuidanceCurrentStreetNameMonitorDelegate : AnyObject

- `GuidanceEstimatedArrivalMonitorDelegate`

  The protocol used to notify the delegate about changes on the estimated arrival at the destination.

  See more

  #### Declaration

  Swift

      public protocol GuidanceEstimatedArrivalMonitorDelegate : AnyObject

- `GuidanceManeuverMonitorDelegate`

  This protocol lets the implementer monitor the maneuvers during gudiance.

  See more

  #### Declaration

  Swift

      public protocol GuidanceManeuverMonitorDelegate : AnyObject

- `GuidanceNextManeuverMonitorDelegate`

  The protocol used to notify the delegate about changes on the estimated arrival at the destination.

  See more

  #### Declaration

  Swift

      public protocol GuidanceNextManeuverMonitorDelegate : AnyObject

- `GuidanceSpeedMonitorDelegate`

  The protocol used to notify the delegate about changes on the speed and speed limit.

  See more

  #### Declaration

  Swift

      public protocol GuidanceSpeedMonitorDelegate : AnyObject

- `ManeuverTableViewDelegate`

  The delegate of a `ManeuverTableView` object must adopt the `ManeuverTableViewDelegate` protocol. This protocol lets the `ManeuverTableView` object to inform its `delegate` about updates occurred.

  See more

  #### Declaration

  Swift

      @objc
      public protocol ManeuverTableViewDelegate : AnyObject

- `OptionItemDelegate`

  The delegate of an `OptionItem` object must adopt the `OptionItemDelegate` protocol to get notified on updates.

  See more

  #### Declaration

  Swift

      public protocol OptionItemDelegate : AnyObject

- `OptionsPanelDelegate`

  The delegate of an `OptionsPanel` object must adopt the `OptionsPanelDelegate` protocol to get notified on updates.

  See more

  #### Declaration

  Swift

      public protocol OptionsPanelDelegate : AnyObject

- `RouteDescriptionListDelegate`

  The delegate of a `RouteDescriptionList` object must adopt the `RouteDescriptionListDelegate` protocol. This protocol lets the `RouteDescriptionList` object to inform its `delegate` about updates occurred.

  See more

  #### Declaration

  Swift

      @objc
      public protocol RouteDescriptionListDelegate : AnyObject

- `PickerViewDelegate`

  This protocol provides the methods to customize a pickerview.

  See more

  #### Declaration

  Swift

      @objc
      public protocol PickerViewDelegate : AnyObject

- `TransportModePanelDelegate`

  The delegate of a `TransportModePanel` object must adopt the `TransportModePanelDelegate` protocol to get notified on updates.

  See more

  #### Declaration

  Swift

      public protocol TransportModePanelDelegate : AnyObject

- `TravelTimePanelDelegate`

  The delegate of a `TravelTimePanel` object must adopt the `TravelTimePanelDelegate` protocol to get notified on updates.

  See more

  #### Declaration

  Swift

      @objc
      public protocol TravelTimePanelDelegate : AnyObject

- `TravelTimePickerDelegate`

  The delegate of a `travelTimePicker` object must adopt the `TravelTimePickerDelegate` protocol to get notified on updates.

  See more

  #### Declaration

  Swift

      public protocol TravelTimePickerDelegate : AnyObject

- `WaypointListDelegate`

  This protocol provides the methods which a `WaypointList` object needs after user interactions to inform its delegate object.

  See more

  #### Declaration

  Swift

      @objc
      public protocol WaypointListDelegate : AnyObject