"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.extension_dict
import google.protobuf.message
import pyatv.protocols.mrp.protobuf.Common_pb2
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class AVOutputDeviceSourceInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROUTINGCONTEXTUID_FIELD_NUMBER: builtins.int
    MULTIPLEBUILTINDEVICES_FIELD_NUMBER: builtins.int
    routingContextUID: builtins.str
    multipleBuiltInDevices: builtins.bool
    def __init__(
        self,
        *,
        routingContextUID: builtins.str | None = ...,
        multipleBuiltInDevices: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["multipleBuiltInDevices", b"multipleBuiltInDevices", "routingContextUID", b"routingContextUID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["multipleBuiltInDevices", b"multipleBuiltInDevices", "routingContextUID", b"routingContextUID"]) -> None: ...

global___AVOutputDeviceSourceInfo = AVOutputDeviceSourceInfo

@typing.final
class AVOutputDeviceDescriptor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    UNIQUEIDENTIFIER_FIELD_NUMBER: builtins.int
    GROUPID_FIELD_NUMBER: builtins.int
    MODELID_FIELD_NUMBER: builtins.int
    MACADDRESS_FIELD_NUMBER: builtins.int
    CANACCESSREMOTEASSETS_FIELD_NUMBER: builtins.int
    ISREMOTECONTROLLABLE_FIELD_NUMBER: builtins.int
    ISGROUPLEADER_FIELD_NUMBER: builtins.int
    ISGROUPABLE_FIELD_NUMBER: builtins.int
    DEVICETYPE_FIELD_NUMBER: builtins.int
    DEVICESUBTYPE_FIELD_NUMBER: builtins.int
    MODELSPECIFICINFODATA_FIELD_NUMBER: builtins.int
    BATTERYLEVEL_FIELD_NUMBER: builtins.int
    ISLOCALDEVICE_FIELD_NUMBER: builtins.int
    SUPPORTSEXTERNALSCREEN_FIELD_NUMBER: builtins.int
    REQUIRESAUTHORIZATION_FIELD_NUMBER: builtins.int
    SHOULDFORCEREMOTECONTROLABILLITY_FIELD_NUMBER: builtins.int
    SOURCEINFO_FIELD_NUMBER: builtins.int
    ISDEVICEGROUPABLE_FIELD_NUMBER: builtins.int
    CANRELAYCOMMUNICATIONCHANNEL_FIELD_NUMBER: builtins.int
    LOGICALDEVICEID_FIELD_NUMBER: builtins.int
    ISPROXYGROUPPLAYER_FIELD_NUMBER: builtins.int
    FIRMWAREVERSION_FIELD_NUMBER: builtins.int
    VOLUME_FIELD_NUMBER: builtins.int
    ISVOLUMECONTROLAVAILABLE_FIELD_NUMBER: builtins.int
    CANACCESSAPPLEMUSIC_FIELD_NUMBER: builtins.int
    CANACCESSICLOUDMUSICLIBRARY_FIELD_NUMBER: builtins.int
    GROUPCONTAINSGROUPLEADER_FIELD_NUMBER: builtins.int
    SUPPORTSBUFFEREDAIRPLAY_FIELD_NUMBER: builtins.int
    CANPLAYENCRYPTEDPROGRESSIVEDOWNLOADASSETS_FIELD_NUMBER: builtins.int
    CANFETCHMEDIADATAFROMSENDER_FIELD_NUMBER: builtins.int
    RESENTSOPTIMIZEDUSERINTERFACEWHENPLAYINGFETCHEDAUDIOONLYASSETS_FIELD_NUMBER: builtins.int
    ISAIRPLAYRECEIVERSESSIONACTIVE_FIELD_NUMBER: builtins.int
    PARENTGROUPIDENTIFIER_FIELD_NUMBER: builtins.int
    PARENTGROUPCONTAINSDISCOVERABLELEADER_FIELD_NUMBER: builtins.int
    ISADDEDTOHOMEKIT_FIELD_NUMBER: builtins.int
    VOLUMECAPABILITIES_FIELD_NUMBER: builtins.int
    BLUETOOTHID_FIELD_NUMBER: builtins.int
    SUPPORTSHAP_FIELD_NUMBER: builtins.int
    USINGJSONPROTOCOL_FIELD_NUMBER: builtins.int
    CLUSTERCOMPOSITIONS_FIELD_NUMBER: builtins.int
    CLUSTERTYPE_FIELD_NUMBER: builtins.int
    PRIMARYUID_FIELD_NUMBER: builtins.int
    CONFIGUREDCLUSTERSIZE_FIELD_NUMBER: builtins.int
    SUPPORTSRAPPORTREMOTECONTROLTRANSPORT_FIELD_NUMBER: builtins.int
    CURRENTBLUETOOTHLISTENINGMODE_FIELD_NUMBER: builtins.int
    AVAILABLEBLUETOOTHLISTENINGMODES_FIELD_NUMBER: builtins.int
    SUPPORTSMULTIPLAYER_FIELD_NUMBER: builtins.int
    PRODUCESLOWFIDELITYAUDIO_FIELD_NUMBER: builtins.int
    HOSTDEVICECLASS_FIELD_NUMBER: builtins.int
    AIRPLAYGROUPID_FIELD_NUMBER: builtins.int
    SUPPORTSSHAREPLAYHANDOFF_FIELD_NUMBER: builtins.int
    DISTANCE_FIELD_NUMBER: builtins.int
    DISCOVEREDONSAMEINFRA_FIELD_NUMBER: builtins.int
    ACTIVATEDCLUSTERMEMBERS_FIELD_NUMBER: builtins.int
    PICKABLE_FIELD_NUMBER: builtins.int
    TRANSPORTTYPE_FIELD_NUMBER: builtins.int
    CLUSTERID_FIELD_NUMBER: builtins.int
    ISCLUSTERLEADER_FIELD_NUMBER: builtins.int
    ISAPPLEACCESSORY_FIELD_NUMBER: builtins.int
    PARENTUNIQUEIDENTIFIER_FIELD_NUMBER: builtins.int
    ROOMID_FIELD_NUMBER: builtins.int
    ROOMNAME_FIELD_NUMBER: builtins.int
    ALLCLUSTERMEMBERS_FIELD_NUMBER: builtins.int
    ENGAGEONCLUSTERACTIVATE_FIELD_NUMBER: builtins.int
    name: builtins.str
    uniqueIdentifier: builtins.str
    groupID: builtins.str
    modelID: builtins.str
    macAddress: builtins.bytes
    canAccessRemoteAssets: builtins.bool
    isRemoteControllable: builtins.bool
    isGroupLeader: builtins.bool
    isGroupable: builtins.bool
    deviceType: pyatv.protocols.mrp.protobuf.Common_pb2.DeviceType.Enum.ValueType
    deviceSubType: pyatv.protocols.mrp.protobuf.Common_pb2.DeviceSubType.Enum.ValueType
    modelSpecificInfoData: builtins.bytes
    batteryLevel: builtins.float
    isLocalDevice: builtins.bool
    supportsExternalScreen: builtins.bool
    requiresAuthorization: builtins.bool
    shouldForceRemoteControlabillity: builtins.bool
    isDeviceGroupable: builtins.bool
    canRelayCommunicationChannel: builtins.bool
    logicalDeviceID: builtins.str
    isProxyGroupPlayer: builtins.bool
    firmwareVersion: builtins.str
    volume: builtins.float
    isVolumeControlAvailable: builtins.bool
    canAccessAppleMusic: builtins.bool
    canAccessiCloudMusicLibrary: builtins.bool
    groupContainsGroupLeader: builtins.bool
    supportsBufferedAirPlay: builtins.bool
    canPlayEncryptedProgressiveDownloadAssets: builtins.bool
    canFetchMediaDataFromSender: builtins.bool
    resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: builtins.bool
    isAirPlayReceiverSessionActive: builtins.bool
    parentGroupIdentifier: builtins.str
    parentGroupContainsDiscoverableLeader: builtins.bool
    isAddedToHomeKit: builtins.bool
    volumeCapabilities: builtins.int
    bluetoothID: builtins.str
    supportsHAP: builtins.bool
    usingJSONProtocol: builtins.bool
    clusterType: builtins.int
    primaryUID: builtins.str
    configuredClusterSize: builtins.int
    supportsRapportRemoteControlTransport: builtins.bool
    currentBluetoothListeningMode: builtins.str
    producesLowFidelityAudio: builtins.bool
    hostDeviceClass: builtins.int
    airPlayGroupID: builtins.str
    supportsSharePlayHandoff: builtins.bool
    distance: builtins.float
    discoveredOnSameInfra: builtins.bool
    transportType: builtins.int
    clusterID: builtins.str
    isClusterLeader: builtins.bool
    isAppleAccessory: builtins.bool
    parentUniqueIdentifier: builtins.str
    roomID: builtins.str
    roomName: builtins.str
    engageOnClusterActivate: builtins.bool
    @property
    def sourceInfo(self) -> global___AVOutputDeviceSourceInfo: ...
    @property
    def clusterCompositions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AVOutputDeviceDescriptor]: ...
    @property
    def availableBluetoothListeningModes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def supportsMultiplayer(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ...
    @property
    def activatedClusterMembers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AVOutputDeviceDescriptor]: ...
    @property
    def pickable(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ...
    @property
    def allClusterMembers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AVOutputDeviceDescriptor]: ...
    def __init__(
        self,
        *,
        name: builtins.str | None = ...,
        uniqueIdentifier: builtins.str | None = ...,
        groupID: builtins.str | None = ...,
        modelID: builtins.str | None = ...,
        macAddress: builtins.bytes | None = ...,
        canAccessRemoteAssets: builtins.bool | None = ...,
        isRemoteControllable: builtins.bool | None = ...,
        isGroupLeader: builtins.bool | None = ...,
        isGroupable: builtins.bool | None = ...,
        deviceType: pyatv.protocols.mrp.protobuf.Common_pb2.DeviceType.Enum.ValueType | None = ...,
        deviceSubType: pyatv.protocols.mrp.protobuf.Common_pb2.DeviceSubType.Enum.ValueType | None = ...,
        modelSpecificInfoData: builtins.bytes | None = ...,
        batteryLevel: builtins.float | None = ...,
        isLocalDevice: builtins.bool | None = ...,
        supportsExternalScreen: builtins.bool | None = ...,
        requiresAuthorization: builtins.bool | None = ...,
        shouldForceRemoteControlabillity: builtins.bool | None = ...,
        sourceInfo: global___AVOutputDeviceSourceInfo | None = ...,
        isDeviceGroupable: builtins.bool | None = ...,
        canRelayCommunicationChannel: builtins.bool | None = ...,
        logicalDeviceID: builtins.str | None = ...,
        isProxyGroupPlayer: builtins.bool | None = ...,
        firmwareVersion: builtins.str | None = ...,
        volume: builtins.float | None = ...,
        isVolumeControlAvailable: builtins.bool | None = ...,
        canAccessAppleMusic: builtins.bool | None = ...,
        canAccessiCloudMusicLibrary: builtins.bool | None = ...,
        groupContainsGroupLeader: builtins.bool | None = ...,
        supportsBufferedAirPlay: builtins.bool | None = ...,
        canPlayEncryptedProgressiveDownloadAssets: builtins.bool | None = ...,
        canFetchMediaDataFromSender: builtins.bool | None = ...,
        resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: builtins.bool | None = ...,
        isAirPlayReceiverSessionActive: builtins.bool | None = ...,
        parentGroupIdentifier: builtins.str | None = ...,
        parentGroupContainsDiscoverableLeader: builtins.bool | None = ...,
        isAddedToHomeKit: builtins.bool | None = ...,
        volumeCapabilities: builtins.int | None = ...,
        bluetoothID: builtins.str | None = ...,
        supportsHAP: builtins.bool | None = ...,
        usingJSONProtocol: builtins.bool | None = ...,
        clusterCompositions: collections.abc.Iterable[global___AVOutputDeviceDescriptor] | None = ...,
        clusterType: builtins.int | None = ...,
        primaryUID: builtins.str | None = ...,
        configuredClusterSize: builtins.int | None = ...,
        supportsRapportRemoteControlTransport: builtins.bool | None = ...,
        currentBluetoothListeningMode: builtins.str | None = ...,
        availableBluetoothListeningModes: collections.abc.Iterable[builtins.str] | None = ...,
        supportsMultiplayer: collections.abc.Iterable[builtins.bool] | None = ...,
        producesLowFidelityAudio: builtins.bool | None = ...,
        hostDeviceClass: builtins.int | None = ...,
        airPlayGroupID: builtins.str | None = ...,
        supportsSharePlayHandoff: builtins.bool | None = ...,
        distance: builtins.float | None = ...,
        discoveredOnSameInfra: builtins.bool | None = ...,
        activatedClusterMembers: collections.abc.Iterable[global___AVOutputDeviceDescriptor] | None = ...,
        pickable: collections.abc.Iterable[builtins.bool] | None = ...,
        transportType: builtins.int | None = ...,
        clusterID: builtins.str | None = ...,
        isClusterLeader: builtins.bool | None = ...,
        isAppleAccessory: builtins.bool | None = ...,
        parentUniqueIdentifier: builtins.str | None = ...,
        roomID: builtins.str | None = ...,
        roomName: builtins.str | None = ...,
        allClusterMembers: collections.abc.Iterable[global___AVOutputDeviceDescriptor] | None = ...,
        engageOnClusterActivate: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["airPlayGroupID", b"airPlayGroupID", "batteryLevel", b"batteryLevel", "bluetoothID", b"bluetoothID", "canAccessAppleMusic", b"canAccessAppleMusic", "canAccessRemoteAssets", b"canAccessRemoteAssets", "canAccessiCloudMusicLibrary", b"canAccessiCloudMusicLibrary", "canFetchMediaDataFromSender", b"canFetchMediaDataFromSender", "canPlayEncryptedProgressiveDownloadAssets", b"canPlayEncryptedProgressiveDownloadAssets", "canRelayCommunicationChannel", b"canRelayCommunicationChannel", "clusterID", b"clusterID", "clusterType", b"clusterType", "configuredClusterSize", b"configuredClusterSize", "currentBluetoothListeningMode", b"currentBluetoothListeningMode", "deviceSubType", b"deviceSubType", "deviceType", b"deviceType", "discoveredOnSameInfra", b"discoveredOnSameInfra", "distance", b"distance", "engageOnClusterActivate", b"engageOnClusterActivate", "firmwareVersion", b"firmwareVersion", "groupContainsGroupLeader", b"groupContainsGroupLeader", "groupID", b"groupID", "hostDeviceClass", b"hostDeviceClass", "isAddedToHomeKit", b"isAddedToHomeKit", "isAirPlayReceiverSessionActive", b"isAirPlayReceiverSessionActive", "isAppleAccessory", b"isAppleAccessory", "isClusterLeader", b"isClusterLeader", "isDeviceGroupable", b"isDeviceGroupable", "isGroupLeader", b"isGroupLeader", "isGroupable", b"isGroupable", "isLocalDevice", b"isLocalDevice", "isProxyGroupPlayer", b"isProxyGroupPlayer", "isRemoteControllable", b"isRemoteControllable", "isVolumeControlAvailable", b"isVolumeControlAvailable", "logicalDeviceID", b"logicalDeviceID", "macAddress", b"macAddress", "modelID", b"modelID", "modelSpecificInfoData", b"modelSpecificInfoData", "name", b"name", "parentGroupContainsDiscoverableLeader", b"parentGroupContainsDiscoverableLeader", "parentGroupIdentifier", b"parentGroupIdentifier", "parentUniqueIdentifier", b"parentUniqueIdentifier", "primaryUID", b"primaryUID", "producesLowFidelityAudio", b"producesLowFidelityAudio", "requiresAuthorization", b"requiresAuthorization", "resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets", b"resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets", "roomID", b"roomID", "roomName", b"roomName", "shouldForceRemoteControlabillity", b"shouldForceRemoteControlabillity", "sourceInfo", b"sourceInfo", "supportsBufferedAirPlay", b"supportsBufferedAirPlay", "supportsExternalScreen", b"supportsExternalScreen", "supportsHAP", b"supportsHAP", "supportsRapportRemoteControlTransport", b"supportsRapportRemoteControlTransport", "supportsSharePlayHandoff", b"supportsSharePlayHandoff", "transportType", b"transportType", "uniqueIdentifier", b"uniqueIdentifier", "usingJSONProtocol", b"usingJSONProtocol", "volume", b"volume", "volumeCapabilities", b"volumeCapabilities"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["activatedClusterMembers", b"activatedClusterMembers", "airPlayGroupID", b"airPlayGroupID", "allClusterMembers", b"allClusterMembers", "availableBluetoothListeningModes", b"availableBluetoothListeningModes", "batteryLevel", b"batteryLevel", "bluetoothID", b"bluetoothID", "canAccessAppleMusic", b"canAccessAppleMusic", "canAccessRemoteAssets", b"canAccessRemoteAssets", "canAccessiCloudMusicLibrary", b"canAccessiCloudMusicLibrary", "canFetchMediaDataFromSender", b"canFetchMediaDataFromSender", "canPlayEncryptedProgressiveDownloadAssets", b"canPlayEncryptedProgressiveDownloadAssets", "canRelayCommunicationChannel", b"canRelayCommunicationChannel", "clusterCompositions", b"clusterCompositions", "clusterID", b"clusterID", "clusterType", b"clusterType", "configuredClusterSize", b"configuredClusterSize", "currentBluetoothListeningMode", b"currentBluetoothListeningMode", "deviceSubType", b"deviceSubType", "deviceType", b"deviceType", "discoveredOnSameInfra", b"discoveredOnSameInfra", "distance", b"distance", "engageOnClusterActivate", b"engageOnClusterActivate", "firmwareVersion", b"firmwareVersion", "groupContainsGroupLeader", b"groupContainsGroupLeader", "groupID", b"groupID", "hostDeviceClass", b"hostDeviceClass", "isAddedToHomeKit", b"isAddedToHomeKit", "isAirPlayReceiverSessionActive", b"isAirPlayReceiverSessionActive", "isAppleAccessory", b"isAppleAccessory", "isClusterLeader", b"isClusterLeader", "isDeviceGroupable", b"isDeviceGroupable", "isGroupLeader", b"isGroupLeader", "isGroupable", b"isGroupable", "isLocalDevice", b"isLocalDevice", "isProxyGroupPlayer", b"isProxyGroupPlayer", "isRemoteControllable", b"isRemoteControllable", "isVolumeControlAvailable", b"isVolumeControlAvailable", "logicalDeviceID", b"logicalDeviceID", "macAddress", b"macAddress", "modelID", b"modelID", "modelSpecificInfoData", b"modelSpecificInfoData", "name", b"name", "parentGroupContainsDiscoverableLeader", b"parentGroupContainsDiscoverableLeader", "parentGroupIdentifier", b"parentGroupIdentifier", "parentUniqueIdentifier", b"parentUniqueIdentifier", "pickable", b"pickable", "primaryUID", b"primaryUID", "producesLowFidelityAudio", b"producesLowFidelityAudio", "requiresAuthorization", b"requiresAuthorization", "resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets", b"resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets", "roomID", b"roomID", "roomName", b"roomName", "shouldForceRemoteControlabillity", b"shouldForceRemoteControlabillity", "sourceInfo", b"sourceInfo", "supportsBufferedAirPlay", b"supportsBufferedAirPlay", "supportsExternalScreen", b"supportsExternalScreen", "supportsHAP", b"supportsHAP", "supportsMultiplayer", b"supportsMultiplayer", "supportsRapportRemoteControlTransport", b"supportsRapportRemoteControlTransport", "supportsSharePlayHandoff", b"supportsSharePlayHandoff", "transportType", b"transportType", "uniqueIdentifier", b"uniqueIdentifier", "usingJSONProtocol", b"usingJSONProtocol", "volume", b"volume", "volumeCapabilities", b"volumeCapabilities"]) -> None: ...

global___AVOutputDeviceDescriptor = AVOutputDeviceDescriptor

@typing.final
class UpdateOutputDeviceMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OUTPUTDEVICES_FIELD_NUMBER: builtins.int
    ENDPOINTUID_FIELD_NUMBER: builtins.int
    CLUSTERAWAREOUTPUTDEVICES_FIELD_NUMBER: builtins.int
    endpointUID: builtins.str
    @property
    def outputDevices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AVOutputDeviceDescriptor]: ...
    @property
    def clusterAwareOutputDevices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AVOutputDeviceDescriptor]: ...
    def __init__(
        self,
        *,
        outputDevices: collections.abc.Iterable[global___AVOutputDeviceDescriptor] | None = ...,
        endpointUID: builtins.str | None = ...,
        clusterAwareOutputDevices: collections.abc.Iterable[global___AVOutputDeviceDescriptor] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["endpointUID", b"endpointUID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["clusterAwareOutputDevices", b"clusterAwareOutputDevices", "endpointUID", b"endpointUID", "outputDevices", b"outputDevices"]) -> None: ...

global___UpdateOutputDeviceMessage = UpdateOutputDeviceMessage

UPDATEOUTPUTDEVICEMESSAGE_FIELD_NUMBER: builtins.int
updateOutputDeviceMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___UpdateOutputDeviceMessage]
