# Protocols

The following protocols are available globally.

### MediaDownloadDelegate

- `DownloadDelegate`

  Delegate interface for download lifecycle/progress notifications.

  See more

  #### Declaration

  Swift

      public protocol DownloadDelegate

### Track

- `Track`

  Common interface shared by all track types.

  #### Declaration

  Swift

      public protocol Track

### CLDrmPrefetcherAPI

- `CLDrmPrefetcherAPI`

  API for prefetching and managing persistent DRM keys.

  See more

  #### Declaration

  Swift

      public protocol CLDrmPrefetcherAPI : InterceptableAPI

### PlayerViewControllerAPI

- `PlayerViewControllerAPI`

  Control and manage the player view controller.

  See more

  #### Declaration

  Swift

      public protocol PlayerViewControllerAPI : UIViewController, PlayerAPI

- `PlaylistAPI`

  Control and manage the playlists

  See more

  #### Declaration

  Swift

      public protocol PlaylistAPI

- `DispatcherProtocol`

  Common dispatcher behaviour

  See more

  #### Declaration

  Swift

      public protocol DispatcherProtocol