    final class DeviceTypeController

    extension DeviceTypeController : Sendable, SendableMetatype

Controller to access concrete `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html`s for a `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeDevice.html`.
- `


  ### [contains(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController#/s:13GoogleHomeSDK20DeviceTypeControllerC8containsySbxmAA0dE0RzlF)


  ` Checks if the device supports the given `type`.

  #### Declaration

  Swift

      func contains<T>(_ type: T.Type = T.self) -> Bool where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

- `


  ### [get(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController#/s:13GoogleHomeSDK20DeviceTypeControllerC3getyxSgxmYaAA0dE0RzlF)


  ` Returns an instance of the given `type` if the device supports it, otherwise returns nil.

  This is a convenience method that returns the first value published by the `subscribe`
  publisher.

  #### Declaration

  Swift

      func get<T>(_ type: T.Type = T.self) async -> T? where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

- `


  ### [subscribe(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController#/s:13GoogleHomeSDK20DeviceTypeControllerC9subscribey7Combine12AnyPublisherVyxAA0B5ErrorVGxmAA0dE0RzlF)


  ` Returns a publisher of the given `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html`.

  If the device type is not supported, the publisher will not emit any values.

  #### Declaration

  Swift

      func subscribe<T>(_ type: T.Type = T.self) -> AnyPublisher<T, https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html> where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

- `


  ### [getAll(of:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController#/s:13GoogleHomeSDK20DeviceTypeControllerC6getAll2ofSayxGxm_tYaKAA0dE0RzlF)


  ` Returns any array of the top level `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html`s satisfying the given criteria.

  #### Declaration

  Swift

      func getAll<T>(of type: T.Type) async throws -> [T] where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

  #### Return Value

  An array of matching types.
- `


  ### [subscribeAll(of:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController#/s:13GoogleHomeSDK20DeviceTypeControllerC12subscribeAll2of7Combine12AnyPublisherVySayxGAA0B5ErrorVGxm_tAA0dE0RzlF)


  ` Returns a publisher of arrays of the top level `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html`s satisfying the given criteria.

  #### Declaration

  Swift

      func subscribeAll<T>(of type: T.Type) -> AnyPublisher<[T], https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html> where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

  #### Return Value

  An array of matching types.
- `


  ### [count(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController#/s:13GoogleHomeSDK20DeviceTypeControllerC5countySixmAA0dE0RzlF)


  ` Returns the number of parts of the given type.

  #### Declaration

  Swift

      func count<T>(_ type: T.Type) -> Int where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

- `


  ### [subscribeAll()](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController#/s:13GoogleHomeSDK20DeviceTypeControllerC12subscribeAll7Combine12AnyPublisherVyAA0dE10CollectionCAA0B5ErrorVGyF)


  ` Return a Publisher that emits a collection of all the device types for the given device.

  #### Declaration

  Swift

      func subscribeAll() -> AnyPublisher<https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeCollection.html, https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html>