"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    FieldDescriptor as google___protobuf___descriptor___FieldDescriptor,
    FileDescriptor as google___protobuf___descriptor___FileDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from pyatv.mrp.protobuf.Common_pb2 import (
    DeviceSubType as pyatv___mrp___protobuf___Common_pb2___DeviceSubType,
    DeviceType as pyatv___mrp___protobuf___Common_pb2___DeviceType,
)

from typing import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
    Text as typing___Text,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int


DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class AVOutputDeviceSourceInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    routingContextUID: typing___Text = ...
    multipleBuiltInDevices: builtin___bool = ...

    def __init__(self,
        *,
        routingContextUID : typing___Optional[typing___Text] = None,
        multipleBuiltInDevices : typing___Optional[builtin___bool] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"multipleBuiltInDevices",b"multipleBuiltInDevices",u"routingContextUID",b"routingContextUID"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"multipleBuiltInDevices",b"multipleBuiltInDevices",u"routingContextUID",b"routingContextUID"]) -> None: ...
type___AVOutputDeviceSourceInfo = AVOutputDeviceSourceInfo

class AVOutputDeviceDescriptor(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    name: typing___Text = ...
    uniqueIdentifier: typing___Text = ...
    groupID: typing___Text = ...
    modelID: typing___Text = ...
    macAddress: builtin___bytes = ...
    canAccessRemoteAssets: builtin___bool = ...
    isRemoteControllable: builtin___bool = ...
    isGroupLeader: builtin___bool = ...
    isGroupable: builtin___bool = ...
    deviceType: pyatv___mrp___protobuf___Common_pb2___DeviceType.EnumValue = ...
    deviceSubType: pyatv___mrp___protobuf___Common_pb2___DeviceSubType.EnumValue = ...
    modelSpecificInfoData: builtin___bytes = ...
    batteryLevel: builtin___float = ...
    isLocalDevice: builtin___bool = ...
    supportsExternalScreen: builtin___bool = ...
    requiresAuthorization: builtin___bool = ...
    shouldForceRemoteControlabillity: builtin___bool = ...
    isDeviceGroupable: builtin___bool = ...
    canRelayCommunicationChannel: builtin___bool = ...
    logicalDeviceID: typing___Text = ...
    isProxyGroupPlayer: builtin___bool = ...
    firmwareVersion: typing___Text = ...
    volume: builtin___float = ...
    isVolumeControlAvailable: builtin___bool = ...
    canAccessAppleMusic: builtin___bool = ...
    canAccessiCloudMusicLibrary: builtin___bool = ...
    groupContainsGroupLeader: builtin___bool = ...
    supportsBufferedAirPlay: builtin___bool = ...
    canPlayEncryptedProgressiveDownloadAssets: builtin___bool = ...
    anFetchMediaDataFromSender: builtin___bool = ...
    resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: builtin___bool = ...
    isAirPlayReceiverSessionActive: builtin___bool = ...
    parentGroupIdentifier: typing___Text = ...
    parentGroupContainsDiscoverableLeader: builtin___bool = ...
    isAddedToHomeKit: builtin___bool = ...
    volumeCapabilities: builtin___int = ...
    bluetoothID: typing___Text = ...

    @property
    def sourceInfo(self) -> type___AVOutputDeviceSourceInfo: ...

    def __init__(self,
        *,
        name : typing___Optional[typing___Text] = None,
        uniqueIdentifier : typing___Optional[typing___Text] = None,
        groupID : typing___Optional[typing___Text] = None,
        modelID : typing___Optional[typing___Text] = None,
        macAddress : typing___Optional[builtin___bytes] = None,
        canAccessRemoteAssets : typing___Optional[builtin___bool] = None,
        isRemoteControllable : typing___Optional[builtin___bool] = None,
        isGroupLeader : typing___Optional[builtin___bool] = None,
        isGroupable : typing___Optional[builtin___bool] = None,
        deviceType : typing___Optional[pyatv___mrp___protobuf___Common_pb2___DeviceType.EnumValue] = None,
        deviceSubType : typing___Optional[pyatv___mrp___protobuf___Common_pb2___DeviceSubType.EnumValue] = None,
        modelSpecificInfoData : typing___Optional[builtin___bytes] = None,
        batteryLevel : typing___Optional[builtin___float] = None,
        isLocalDevice : typing___Optional[builtin___bool] = None,
        supportsExternalScreen : typing___Optional[builtin___bool] = None,
        requiresAuthorization : typing___Optional[builtin___bool] = None,
        shouldForceRemoteControlabillity : typing___Optional[builtin___bool] = None,
        sourceInfo : typing___Optional[type___AVOutputDeviceSourceInfo] = None,
        isDeviceGroupable : typing___Optional[builtin___bool] = None,
        canRelayCommunicationChannel : typing___Optional[builtin___bool] = None,
        logicalDeviceID : typing___Optional[typing___Text] = None,
        isProxyGroupPlayer : typing___Optional[builtin___bool] = None,
        firmwareVersion : typing___Optional[typing___Text] = None,
        volume : typing___Optional[builtin___float] = None,
        isVolumeControlAvailable : typing___Optional[builtin___bool] = None,
        canAccessAppleMusic : typing___Optional[builtin___bool] = None,
        canAccessiCloudMusicLibrary : typing___Optional[builtin___bool] = None,
        groupContainsGroupLeader : typing___Optional[builtin___bool] = None,
        supportsBufferedAirPlay : typing___Optional[builtin___bool] = None,
        canPlayEncryptedProgressiveDownloadAssets : typing___Optional[builtin___bool] = None,
        anFetchMediaDataFromSender : typing___Optional[builtin___bool] = None,
        resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets : typing___Optional[builtin___bool] = None,
        isAirPlayReceiverSessionActive : typing___Optional[builtin___bool] = None,
        parentGroupIdentifier : typing___Optional[typing___Text] = None,
        parentGroupContainsDiscoverableLeader : typing___Optional[builtin___bool] = None,
        isAddedToHomeKit : typing___Optional[builtin___bool] = None,
        volumeCapabilities : typing___Optional[builtin___int] = None,
        bluetoothID : typing___Optional[typing___Text] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"anFetchMediaDataFromSender",b"anFetchMediaDataFromSender",u"batteryLevel",b"batteryLevel",u"bluetoothID",b"bluetoothID",u"canAccessAppleMusic",b"canAccessAppleMusic",u"canAccessRemoteAssets",b"canAccessRemoteAssets",u"canAccessiCloudMusicLibrary",b"canAccessiCloudMusicLibrary",u"canPlayEncryptedProgressiveDownloadAssets",b"canPlayEncryptedProgressiveDownloadAssets",u"canRelayCommunicationChannel",b"canRelayCommunicationChannel",u"deviceSubType",b"deviceSubType",u"deviceType",b"deviceType",u"firmwareVersion",b"firmwareVersion",u"groupContainsGroupLeader",b"groupContainsGroupLeader",u"groupID",b"groupID",u"isAddedToHomeKit",b"isAddedToHomeKit",u"isAirPlayReceiverSessionActive",b"isAirPlayReceiverSessionActive",u"isDeviceGroupable",b"isDeviceGroupable",u"isGroupLeader",b"isGroupLeader",u"isGroupable",b"isGroupable",u"isLocalDevice",b"isLocalDevice",u"isProxyGroupPlayer",b"isProxyGroupPlayer",u"isRemoteControllable",b"isRemoteControllable",u"isVolumeControlAvailable",b"isVolumeControlAvailable",u"logicalDeviceID",b"logicalDeviceID",u"macAddress",b"macAddress",u"modelID",b"modelID",u"modelSpecificInfoData",b"modelSpecificInfoData",u"name",b"name",u"parentGroupContainsDiscoverableLeader",b"parentGroupContainsDiscoverableLeader",u"parentGroupIdentifier",b"parentGroupIdentifier",u"requiresAuthorization",b"requiresAuthorization",u"resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets",b"resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets",u"shouldForceRemoteControlabillity",b"shouldForceRemoteControlabillity",u"sourceInfo",b"sourceInfo",u"supportsBufferedAirPlay",b"supportsBufferedAirPlay",u"supportsExternalScreen",b"supportsExternalScreen",u"uniqueIdentifier",b"uniqueIdentifier",u"volume",b"volume",u"volumeCapabilities",b"volumeCapabilities"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"anFetchMediaDataFromSender",b"anFetchMediaDataFromSender",u"batteryLevel",b"batteryLevel",u"bluetoothID",b"bluetoothID",u"canAccessAppleMusic",b"canAccessAppleMusic",u"canAccessRemoteAssets",b"canAccessRemoteAssets",u"canAccessiCloudMusicLibrary",b"canAccessiCloudMusicLibrary",u"canPlayEncryptedProgressiveDownloadAssets",b"canPlayEncryptedProgressiveDownloadAssets",u"canRelayCommunicationChannel",b"canRelayCommunicationChannel",u"deviceSubType",b"deviceSubType",u"deviceType",b"deviceType",u"firmwareVersion",b"firmwareVersion",u"groupContainsGroupLeader",b"groupContainsGroupLeader",u"groupID",b"groupID",u"isAddedToHomeKit",b"isAddedToHomeKit",u"isAirPlayReceiverSessionActive",b"isAirPlayReceiverSessionActive",u"isDeviceGroupable",b"isDeviceGroupable",u"isGroupLeader",b"isGroupLeader",u"isGroupable",b"isGroupable",u"isLocalDevice",b"isLocalDevice",u"isProxyGroupPlayer",b"isProxyGroupPlayer",u"isRemoteControllable",b"isRemoteControllable",u"isVolumeControlAvailable",b"isVolumeControlAvailable",u"logicalDeviceID",b"logicalDeviceID",u"macAddress",b"macAddress",u"modelID",b"modelID",u"modelSpecificInfoData",b"modelSpecificInfoData",u"name",b"name",u"parentGroupContainsDiscoverableLeader",b"parentGroupContainsDiscoverableLeader",u"parentGroupIdentifier",b"parentGroupIdentifier",u"requiresAuthorization",b"requiresAuthorization",u"resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets",b"resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets",u"shouldForceRemoteControlabillity",b"shouldForceRemoteControlabillity",u"sourceInfo",b"sourceInfo",u"supportsBufferedAirPlay",b"supportsBufferedAirPlay",u"supportsExternalScreen",b"supportsExternalScreen",u"uniqueIdentifier",b"uniqueIdentifier",u"volume",b"volume",u"volumeCapabilities",b"volumeCapabilities"]) -> None: ...
type___AVOutputDeviceDescriptor = AVOutputDeviceDescriptor

class UpdateOutputDeviceMessage(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    endpointUID: typing___Text = ...

    @property
    def outputDevices(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___AVOutputDeviceDescriptor]: ...

    @property
    def clusterAwareOutputDevices(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___AVOutputDeviceDescriptor]: ...

    def __init__(self,
        *,
        outputDevices : typing___Optional[typing___Iterable[type___AVOutputDeviceDescriptor]] = None,
        endpointUID : typing___Optional[typing___Text] = None,
        clusterAwareOutputDevices : typing___Optional[typing___Iterable[type___AVOutputDeviceDescriptor]] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"endpointUID",b"endpointUID"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"clusterAwareOutputDevices",b"clusterAwareOutputDevices",u"endpointUID",b"endpointUID",u"outputDevices",b"outputDevices"]) -> None: ...
type___UpdateOutputDeviceMessage = UpdateOutputDeviceMessage

updateOutputDeviceMessage: google___protobuf___descriptor___FieldDescriptor = ...
