# Protocols

The following declarations are available globally.
- `
  ### [EmbeddingProvider](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/EmbeddingProvider.md.txt)

  ` Protocol for generating embeddings across different modalities using task content parts.

  #### Declaration

  Swift

      protocol EmbeddingProvider: NSObjectProtocol

- `
  ### [FaceDetectorLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/FaceDetectorLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `FaceDetector` face to receive results of performing asynchronous face detection on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `FaceDetector` must adopt `FaceDetectorLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol FaceDetectorLiveStreamDelegate: NSObjectProtocol

- `
  ### [FaceLandmarkerLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/FaceLandmarkerLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `FaceLandmarker` face to receive results of performing asynchronous face detection on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `FaceLandmarker` must adopt `FaceLandmarkerLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol FaceLandmarkerLiveStreamDelegate: NSObjectProtocol

- `
  ### [GestureRecognizerLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/GestureRecognizerLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `GestureRecognizer` object to receive results of performing asynchronous gesture recognition on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `GestureRecognizer` must adopt `GestureRecognizerLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol GestureRecognizerLiveStreamDelegate: NSObjectProtocol

- `
  ### [HandLandmarkerLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/HandLandmarkerLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `HandLandmarker` object to receive results of performing asynchronous hand landmark detection on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `HandLandmarker` must adopt `HandLandmarkerLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol HandLandmarkerLiveStreamDelegate: NSObjectProtocol

- `
  ### [HolisticLandmarkerLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/HolisticLandmarkerLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `HolisticLandmarker` to receive results of performing asynchronous holistic landmarks detection on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `FaceLandmarker` must adopt `FaceLandmarkerLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol HolisticLandmarkerLiveStreamDelegate: NSObjectProtocol

- `
  ### [ImageClassifierLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/ImageClassifierLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `ImageClassifier` object to receive results of asynchronous classification of images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `ImageClassifier` must adopt `ImageClassifierLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol ImageClassifierLiveStreamDelegate: NSObjectProtocol

- `
  ### [ImageEmbedderLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/ImageEmbedderLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `ImageEmbedder` object to receive results of asynchronous embedding extraction on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `ImageEmbedder` must adopt `ImageEmbedderLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol ImageEmbedderLiveStreamDelegate: NSObjectProtocol

- `
  ### [ImageSegmenterLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/ImageSegmenterLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `ImageSegmenter` object to receive results of performing asynchronous segmentation on images (i.e, when `runningMode` = `liveStream`).

  The delegate of `ImageSegmenter` must adopt `ImageSegmenterLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol ImageSegmenterLiveStreamDelegate: NSObjectProtocol

- `
  ### [ObjectDetectorLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/ObjectDetectorLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `ObjectDetector` object to receive results of performing asynchronous object detection on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `ObjectDetector` must adopt `ObjectDetectorLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol ObjectDetectorLiveStreamDelegate: NSObjectProtocol

- `
  ### [PoseLandmarkerLiveStreamDelegate](https://developers.google.com/edge/api/mediapipe/swift/vision/Protocols/PoseLandmarkerLiveStreamDelegate.md.txt)

  ` This protocol defines an interface for the delegates of `PoseLandmarker` to receive results of performing asynchronous pose landmark detection on images (i.e, when `runningMode` = `.liveStream`).

  The delegate of `PoseLandmarker` must adopt `PoseLandmarkerLiveStreamDelegate` protocol. The methods in this protocol are optional.

  #### Declaration

  Swift

      protocol PoseLandmarkerLiveStreamDelegate: NSObjectProtocol