# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.2

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

try:
    import winsdk.windows.media.core
except Exception:
    pass

try:
    import winsdk.windows.media.protection
except Exception:
    pass

try:
    import winsdk.windows.storage
except Exception:
    pass

class NDCertificateFeature(enum.IntEnum):
    TRANSMITTER = 1
    RECEIVER = 2
    SHARED_CERTIFICATE = 3
    SECURE_CLOCK = 4
    ANTI_ROLL_BACK_CLOCK = 5
    C_R_L_S = 9
    PLAY_READY3_FEATURES = 13

class NDCertificatePlatformID(enum.IntEnum):
    WINDOWS = 0
    O_S_X = 1
    WINDOWS_ON_A_R_M = 2
    WINDOWS_MOBILE7 = 5
    I_O_S_ON_A_R_M = 6
    X_BOX_ON_P_P_C = 7
    WINDOWS_PHONE8_ON_A_R_M = 8
    WINDOWS_PHONE8_ON_X86 = 9
    XBOX_ONE = 10
    ANDROID_ON_A_R_M = 11
    WINDOWS_PHONE81_ON_A_R_M = 12
    WINDOWS_PHONE81_ON_X86 = 13

class NDCertificateType(enum.IntEnum):
    UNKNOWN = 0
    P_C = 1
    DEVICE = 2
    DOMAIN = 3
    ISSUER = 4
    CRL_SIGNER = 5
    SERVICE = 6
    SILVERLIGHT = 7
    APPLICATION = 8
    METERING = 9
    KEY_FILE_SIGNER = 10
    SERVER = 11
    LICENSE_SIGNER = 12

class NDClosedCaptionFormat(enum.IntEnum):
    A_T_S_C = 0
    S_C_T_E20 = 1
    UNKNOWN = 2

class NDContentIDType(enum.IntEnum):
    KEY_I_D = 1
    PLAY_READY_OBJECT = 2
    CUSTOM = 3

class NDMediaStreamType(enum.IntEnum):
    AUDIO = 1
    VIDEO = 2

class NDProximityDetectionType(enum.IntEnum):
    U_D_P = 1
    T_C_P = 2
    TRANSPORT_AGNOSTIC = 4

class NDStartAsyncOptions(enum.IntEnum):
    MUTUAL_AUTHENTICATION = 1
    WAIT_FOR_LICENSE_DESCRIPTOR = 2

class PlayReadyDecryptorSetup(enum.IntEnum):
    UNINITIALIZED = 0
    ON_DEMAND = 1

class PlayReadyEncryptionAlgorithm(enum.IntEnum):
    UNPROTECTED = 0
    AES128_CTR = 1
    COCKTAIL = 4
    AES128_CBC = 5
    UNSPECIFIED = 65535
    UNINITIALIZED = 2147483647

class PlayReadyHardwareDRMFeatures(enum.IntEnum):
    HARDWARE_D_R_M = 1
    H_E_V_C = 2
    AES128_CBC = 3

class PlayReadyITADataFormat(enum.IntEnum):
    SERIALIZED_PROPERTIES = 0
    SERIALIZED_PROPERTIES_WITH_CONTENT_PROTECTION_WRAPPER = 1

class NDClient(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> NDClient: ...
    @typing.overload
    def __init__(self, download_engine: INDDownloadEngine, stream_parser: INDStreamParser, p_messenger: INDMessenger) -> None: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def license_fetch_async(self, license_fetch_descriptor: INDLicenseFetchDescriptor) -> winsdk.windows.foundation.IAsyncOperation[INDLicenseFetchResult]: ...
    @typing.overload
    def re_registration_async(self, registration_custom_data: INDCustomData) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def start_async(self, content_url: winsdk.windows.foundation.Uri, start_async_options: _winrt.UInt32, registration_custom_data: INDCustomData, license_fetch_descriptor: INDLicenseFetchDescriptor) -> winsdk.windows.foundation.IAsyncOperation[INDStartResult]: ...
    @typing.overload
    def add_closed_caption_data_received(self, handler: winsdk.windows.foundation.TypedEventHandler[NDClient, INDClosedCaptionDataReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_closed_caption_data_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_license_fetch_completed(self, handler: winsdk.windows.foundation.TypedEventHandler[NDClient, INDLicenseFetchCompletedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_license_fetch_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_proximity_detection_completed(self, handler: winsdk.windows.foundation.TypedEventHandler[NDClient, INDProximityDetectionCompletedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_proximity_detection_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_re_registration_needed(self, handler: winsdk.windows.foundation.TypedEventHandler[NDClient, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_re_registration_needed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_registration_completed(self, handler: winsdk.windows.foundation.TypedEventHandler[NDClient, INDRegistrationCompletedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_registration_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class NDCustomData(INDCustomData, _winrt.Object):
    custom_data: _winrt.UInt8
    custom_data_type_i_d: _winrt.UInt8
    @staticmethod
    def _from(obj: _winrt.Object) -> NDCustomData: ...
    @typing.overload
    def __init__(self, custom_data_type_i_d_bytes: typing.Sequence[_winrt.UInt8], custom_data_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...

class NDDownloadEngineNotifier(INDDownloadEngineNotifier, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> NDDownloadEngineNotifier: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def on_content_i_d_received(self, license_fetch_descriptor: INDLicenseFetchDescriptor) -> None: ...
    @typing.overload
    def on_data_received(self, data_bytes: typing.Sequence[_winrt.UInt8], bytes_received: _winrt.UInt32) -> None: ...
    @typing.overload
    def on_end_of_stream(self) -> None: ...
    @typing.overload
    def on_network_error(self) -> None: ...
    @typing.overload
    def on_play_ready_object_received(self, data_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def on_stream_opened(self) -> None: ...

class NDLicenseFetchDescriptor(INDLicenseFetchDescriptor, _winrt.Object):
    license_fetch_challenge_custom_data: INDCustomData
    content_i_d: _winrt.UInt8
    content_i_d_type: NDContentIDType
    @staticmethod
    def _from(obj: _winrt.Object) -> NDLicenseFetchDescriptor: ...
    @typing.overload
    def __init__(self, content_i_d_type: NDContentIDType, content_i_d_bytes: typing.Sequence[_winrt.UInt8], license_fetch_challenge_custom_data: INDCustomData) -> None: ...

class NDStorageFileHelper(INDStorageFileHelper, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> NDStorageFileHelper: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def get_file_u_r_ls(self, file: winsdk.windows.storage.IStorageFile) -> winsdk.windows.foundation.collections.IVector[str]: ...

class NDStreamParserNotifier(INDStreamParserNotifier, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> NDStreamParserNotifier: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def on_begin_setup_decryptor(self, descriptor: winsdk.windows.media.core.IMediaStreamDescriptor, key_i_d: uuid.UUID, pro_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def on_content_i_d_received(self, license_fetch_descriptor: INDLicenseFetchDescriptor) -> None: ...
    @typing.overload
    def on_media_stream_descriptor_created(self, audio_stream_descriptors: winsdk.windows.foundation.collections.IVector[winsdk.windows.media.core.AudioStreamDescriptor], video_stream_descriptors: winsdk.windows.foundation.collections.IVector[winsdk.windows.media.core.VideoStreamDescriptor]) -> None: ...
    @typing.overload
    def on_sample_parsed(self, stream_i_d: _winrt.UInt32, stream_type: NDMediaStreamType, stream_sample: winsdk.windows.media.core.MediaStreamSample, pts: _winrt.Int64, cc_format: NDClosedCaptionFormat, cc_data_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...

class NDTCPMessenger(INDMessenger, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> NDTCPMessenger: ...
    @typing.overload
    def __init__(self, remote_host_name: str, remote_host_port: _winrt.UInt32) -> None: ...
    @typing.overload
    def send_license_fetch_request_async(self, session_i_d_bytes: typing.Sequence[_winrt.UInt8], challenge_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...
    @typing.overload
    def send_proximity_detection_response_async(self, pd_type: NDProximityDetectionType, transmitter_channel_bytes: typing.Sequence[_winrt.UInt8], session_i_d_bytes: typing.Sequence[_winrt.UInt8], response_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...
    @typing.overload
    def send_proximity_detection_start_async(self, pd_type: NDProximityDetectionType, transmitter_channel_bytes: typing.Sequence[_winrt.UInt8], session_i_d_bytes: typing.Sequence[_winrt.UInt8], challenge_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...
    @typing.overload
    def send_registration_request_async(self, session_i_d_bytes: typing.Sequence[_winrt.UInt8], challenge_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...

class PlayReadyContentHeader(_winrt.Object):
    custom_attributes: str
    decryptor_setup: PlayReadyDecryptorSetup
    domain_service_id: uuid.UUID
    encryption_type: PlayReadyEncryptionAlgorithm
    header_with_embedded_updates: PlayReadyContentHeader
    key_id: uuid.UUID
    key_id_string: str
    license_acquisition_url: winsdk.windows.foundation.Uri
    license_acquisition_user_interface_url: winsdk.windows.foundation.Uri
    key_id_strings: str
    key_ids: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyContentHeader: ...
    @typing.overload
    def __init__(self, dw_flags: _winrt.UInt32, content_key_ids: typing.Sequence[uuid.UUID], content_key_id_strings: typing.Sequence[str], content_encryption_algorithm: PlayReadyEncryptionAlgorithm, license_acquisition_url: winsdk.windows.foundation.Uri, license_acquisition_user_interface_url: winsdk.windows.foundation.Uri, custom_attributes: str, domain_service_id: uuid.UUID) -> None: ...
    @typing.overload
    def __init__(self, header_bytes: typing.Sequence[_winrt.UInt8], license_acquisition_url: winsdk.windows.foundation.Uri, license_acquisition_user_interface_url: winsdk.windows.foundation.Uri, custom_attributes: str, domain_service_id: uuid.UUID) -> None: ...
    @typing.overload
    def __init__(self, content_key_id: uuid.UUID, content_key_id_string: str, content_encryption_algorithm: PlayReadyEncryptionAlgorithm, license_acquisition_url: winsdk.windows.foundation.Uri, license_acquisition_user_interface_url: winsdk.windows.foundation.Uri, custom_attributes: str, domain_service_id: uuid.UUID) -> None: ...
    @typing.overload
    def __init__(self, header_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def get_serialized_header(self) -> _winrt.UInt8: ...

class PlayReadyContentResolver(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyContentResolver: ...
    @typing.overload
    @staticmethod
    def service_request(content_header: PlayReadyContentHeader) -> IPlayReadyServiceRequest: ...

class PlayReadyDomain(IPlayReadyDomain, _winrt.Object):
    account_id: uuid.UUID
    domain_join_url: winsdk.windows.foundation.Uri
    friendly_name: str
    revision: _winrt.UInt32
    service_id: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyDomain: ...

class PlayReadyDomainIterable(winsdk.windows.foundation.collections.IIterable[IPlayReadyDomain], _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyDomainIterable: ...
    @typing.overload
    def __init__(self, domain_account_id: uuid.UUID) -> None: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[IPlayReadyDomain]: ...

class PlayReadyDomainIterator(winsdk.windows.foundation.collections.IIterator[IPlayReadyDomain], _winrt.Object):
    current: IPlayReadyDomain
    has_current: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyDomainIterator: ...
    @typing.overload
    def get_many(self, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IPlayReadyDomain]]: ...
    @typing.overload
    def move_next(self) -> _winrt.Boolean: ...

class PlayReadyDomainJoinServiceRequest(IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    protection_system: uuid.UUID
    type: uuid.UUID
    domain_service_id: uuid.UUID
    domain_friendly_name: str
    domain_account_id: uuid.UUID
    uri: winsdk.windows.foundation.Uri
    challenge_custom_data: str
    response_custom_data: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyDomainJoinServiceRequest: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class PlayReadyDomainLeaveServiceRequest(IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    protection_system: uuid.UUID
    type: uuid.UUID
    domain_service_id: uuid.UUID
    domain_account_id: uuid.UUID
    uri: winsdk.windows.foundation.Uri
    challenge_custom_data: str
    response_custom_data: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyDomainLeaveServiceRequest: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class PlayReadyITADataGenerator(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyITADataGenerator: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def generate_data(self, guid_c_p_system_id: uuid.UUID, count_of_streams: _winrt.UInt32, configuration: winsdk.windows.foundation.collections.IPropertySet, format: PlayReadyITADataFormat) -> _winrt.UInt8: ...

class PlayReadyIndividualizationServiceRequest(IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    protection_system: uuid.UUID
    type: uuid.UUID
    uri: winsdk.windows.foundation.Uri
    challenge_custom_data: str
    response_custom_data: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyIndividualizationServiceRequest: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class PlayReadyLicense(IPlayReadyLicense, _winrt.Object):
    chain_depth: _winrt.UInt32
    domain_account_i_d: uuid.UUID
    expiration_date: typing.Optional[winsdk.windows.foundation.DateTime]
    expire_after_first_play: _winrt.UInt32
    fully_evaluated: _winrt.Boolean
    usable_for_play: _winrt.Boolean
    expires_in_real_time: _winrt.Boolean
    in_memory_only: _winrt.Boolean
    secure_stop_id: uuid.UUID
    security_level: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyLicense: ...
    @typing.overload
    def get_k_i_d_at_chain_depth(self, chain_depth: _winrt.UInt32) -> uuid.UUID: ...

class PlayReadyLicenseAcquisitionServiceRequest(IPlayReadyLicenseAcquisitionServiceRequest, IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    protection_system: uuid.UUID
    type: uuid.UUID
    domain_service_id: uuid.UUID
    content_header: PlayReadyContentHeader
    session_id: uuid.UUID
    uri: winsdk.windows.foundation.Uri
    challenge_custom_data: str
    response_custom_data: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyLicenseAcquisitionServiceRequest: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def create_license_iterable(self, content_header: PlayReadyContentHeader, fully_evaluated: _winrt.Boolean) -> PlayReadyLicenseIterable: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class PlayReadyLicenseIterable(winsdk.windows.foundation.collections.IIterable[IPlayReadyLicense], _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyLicenseIterable: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, content_header: PlayReadyContentHeader, fully_evaluated: _winrt.Boolean) -> None: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[IPlayReadyLicense]: ...

class PlayReadyLicenseIterator(winsdk.windows.foundation.collections.IIterator[IPlayReadyLicense], _winrt.Object):
    current: IPlayReadyLicense
    has_current: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyLicenseIterator: ...
    @typing.overload
    def get_many(self, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IPlayReadyLicense]]: ...
    @typing.overload
    def move_next(self) -> _winrt.Boolean: ...

class PlayReadyLicenseManagement(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyLicenseManagement: ...
    @typing.overload
    @staticmethod
    def delete_licenses(content_header: PlayReadyContentHeader) -> winsdk.windows.foundation.IAsyncAction: ...

class PlayReadyLicenseSession(IPlayReadyLicenseSession, IPlayReadyLicenseSession2, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyLicenseSession: ...
    @typing.overload
    def __init__(self, configuration: winsdk.windows.foundation.collections.IPropertySet) -> None: ...
    @typing.overload
    def configure_media_protection_manager(self, mpm: winsdk.windows.media.protection.MediaProtectionManager) -> None: ...
    @typing.overload
    def create_l_a_service_request(self) -> IPlayReadyLicenseAcquisitionServiceRequest: ...
    @typing.overload
    def create_license_iterable(self, content_header: PlayReadyContentHeader, fully_evaluated: _winrt.Boolean) -> PlayReadyLicenseIterable: ...

class PlayReadyMeteringReportServiceRequest(IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    protection_system: uuid.UUID
    type: uuid.UUID
    metering_certificate: _winrt.UInt8
    uri: winsdk.windows.foundation.Uri
    challenge_custom_data: str
    response_custom_data: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyMeteringReportServiceRequest: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class PlayReadyRevocationServiceRequest(IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    protection_system: uuid.UUID
    type: uuid.UUID
    uri: winsdk.windows.foundation.Uri
    challenge_custom_data: str
    response_custom_data: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyRevocationServiceRequest: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class PlayReadySecureStopIterable(winsdk.windows.foundation.collections.IIterable[IPlayReadySecureStopServiceRequest], _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadySecureStopIterable: ...
    @typing.overload
    def __init__(self, publisher_cert_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[IPlayReadySecureStopServiceRequest]: ...

class PlayReadySecureStopIterator(winsdk.windows.foundation.collections.IIterator[IPlayReadySecureStopServiceRequest], _winrt.Object):
    current: IPlayReadySecureStopServiceRequest
    has_current: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadySecureStopIterator: ...
    @typing.overload
    def get_many(self, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IPlayReadySecureStopServiceRequest]]: ...
    @typing.overload
    def move_next(self) -> _winrt.Boolean: ...

class PlayReadySecureStopServiceRequest(IPlayReadySecureStopServiceRequest, IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    protection_system: uuid.UUID
    type: uuid.UUID
    publisher_certificate: _winrt.UInt8
    session_i_d: uuid.UUID
    start_time: winsdk.windows.foundation.DateTime
    stopped: _winrt.Boolean
    update_time: winsdk.windows.foundation.DateTime
    uri: winsdk.windows.foundation.Uri
    challenge_custom_data: str
    response_custom_data: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadySecureStopServiceRequest: ...
    @typing.overload
    def __init__(self, publisher_cert_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def __init__(self, session_i_d: uuid.UUID, publisher_cert_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class PlayReadySoapMessage(_winrt.Object):
    message_headers: winsdk.windows.foundation.collections.IPropertySet
    uri: winsdk.windows.foundation.Uri
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadySoapMessage: ...
    @typing.overload
    def get_message_body(self) -> _winrt.UInt8: ...

class PlayReadyStatics(_winrt.Object):
    domain_join_service_request_type: uuid.UUID
    domain_leave_service_request_type: uuid.UUID
    individualization_service_request_type: uuid.UUID
    license_acquirer_service_request_type: uuid.UUID
    media_protection_system_id: uuid.UUID
    metering_report_service_request_type: uuid.UUID
    play_ready_security_version: _winrt.UInt32
    revocation_service_request_type: uuid.UUID
    play_ready_certificate_security_level: _winrt.UInt32
    secure_stop_service_request_type: uuid.UUID
    protection_system_id: uuid.UUID
    input_trust_authority_to_create: str
    hardware_d_r_m_disabled_until_time: typing.Optional[winsdk.windows.foundation.DateTime]
    hardware_d_r_m_disabled_at_time: typing.Optional[winsdk.windows.foundation.DateTime]
    @staticmethod
    def _from(obj: _winrt.Object) -> PlayReadyStatics: ...
    @typing.overload
    @staticmethod
    def check_supported_hardware(hwdrm_feature: PlayReadyHardwareDRMFeatures) -> _winrt.Boolean: ...
    @typing.overload
    @staticmethod
    def reset_hardware_d_r_m_disabled() -> None: ...

class INDClosedCaptionDataReceivedEventArgs(_winrt.Object):
    closed_caption_data: _winrt.UInt8
    closed_caption_data_format: NDClosedCaptionFormat
    presentation_timestamp: _winrt.Int64
    @staticmethod
    def _from(obj: _winrt.Object) -> INDClosedCaptionDataReceivedEventArgs: ...

class INDCustomData(_winrt.Object):
    custom_data: _winrt.UInt8
    custom_data_type_i_d: _winrt.UInt8
    @staticmethod
    def _from(obj: _winrt.Object) -> INDCustomData: ...

class INDDownloadEngine(_winrt.Object):
    buffer_full_max_threshold_in_samples: _winrt.UInt32
    buffer_full_min_threshold_in_samples: _winrt.UInt32
    can_seek: _winrt.Boolean
    notifier: NDDownloadEngineNotifier
    @staticmethod
    def _from(obj: _winrt.Object) -> INDDownloadEngine: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def open(self, uri: winsdk.windows.foundation.Uri, session_i_d_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def pause(self) -> None: ...
    @typing.overload
    def resume(self) -> None: ...
    @typing.overload
    def seek(self, start_position: winsdk.windows.foundation.TimeSpan) -> None: ...

class INDDownloadEngineNotifier(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> INDDownloadEngineNotifier: ...
    @typing.overload
    def on_content_i_d_received(self, license_fetch_descriptor: INDLicenseFetchDescriptor) -> None: ...
    @typing.overload
    def on_data_received(self, data_bytes: typing.Sequence[_winrt.UInt8], bytes_received: _winrt.UInt32) -> None: ...
    @typing.overload
    def on_end_of_stream(self) -> None: ...
    @typing.overload
    def on_network_error(self) -> None: ...
    @typing.overload
    def on_play_ready_object_received(self, data_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def on_stream_opened(self) -> None: ...

class INDLicenseFetchCompletedEventArgs(_winrt.Object):
    response_custom_data: INDCustomData
    @staticmethod
    def _from(obj: _winrt.Object) -> INDLicenseFetchCompletedEventArgs: ...

class INDLicenseFetchDescriptor(_winrt.Object):
    content_i_d: _winrt.UInt8
    content_i_d_type: NDContentIDType
    license_fetch_challenge_custom_data: INDCustomData
    @staticmethod
    def _from(obj: _winrt.Object) -> INDLicenseFetchDescriptor: ...

class INDLicenseFetchResult(_winrt.Object):
    response_custom_data: INDCustomData
    @staticmethod
    def _from(obj: _winrt.Object) -> INDLicenseFetchResult: ...

class INDMessenger(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> INDMessenger: ...
    @typing.overload
    def send_license_fetch_request_async(self, session_i_d_bytes: typing.Sequence[_winrt.UInt8], challenge_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...
    @typing.overload
    def send_proximity_detection_response_async(self, pd_type: NDProximityDetectionType, transmitter_channel_bytes: typing.Sequence[_winrt.UInt8], session_i_d_bytes: typing.Sequence[_winrt.UInt8], response_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...
    @typing.overload
    def send_proximity_detection_start_async(self, pd_type: NDProximityDetectionType, transmitter_channel_bytes: typing.Sequence[_winrt.UInt8], session_i_d_bytes: typing.Sequence[_winrt.UInt8], challenge_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...
    @typing.overload
    def send_registration_request_async(self, session_i_d_bytes: typing.Sequence[_winrt.UInt8], challenge_data_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.IAsyncOperation[INDSendResult]: ...

class INDProximityDetectionCompletedEventArgs(_winrt.Object):
    proximity_detection_retry_count: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> INDProximityDetectionCompletedEventArgs: ...

class INDRegistrationCompletedEventArgs(_winrt.Object):
    response_custom_data: INDCustomData
    transmitter_certificate_accepted: _winrt.Boolean
    transmitter_properties: INDTransmitterProperties
    @staticmethod
    def _from(obj: _winrt.Object) -> INDRegistrationCompletedEventArgs: ...

class INDSendResult(_winrt.Object):
    response: _winrt.UInt8
    @staticmethod
    def _from(obj: _winrt.Object) -> INDSendResult: ...

class INDStartResult(_winrt.Object):
    media_stream_source: winsdk.windows.media.core.MediaStreamSource
    @staticmethod
    def _from(obj: _winrt.Object) -> INDStartResult: ...

class INDStorageFileHelper(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> INDStorageFileHelper: ...
    @typing.overload
    def get_file_u_r_ls(self, file: winsdk.windows.storage.IStorageFile) -> winsdk.windows.foundation.collections.IVector[str]: ...

class INDStreamParser(_winrt.Object):
    notifier: NDStreamParserNotifier
    @staticmethod
    def _from(obj: _winrt.Object) -> INDStreamParser: ...
    @typing.overload
    def begin_of_stream(self) -> None: ...
    @typing.overload
    def end_of_stream(self) -> None: ...
    @typing.overload
    def get_stream_information(self, descriptor: winsdk.windows.media.core.IMediaStreamDescriptor) -> typing.Tuple[_winrt.UInt32, NDMediaStreamType]: ...
    @typing.overload
    def parse_data(self, data_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...

class INDStreamParserNotifier(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> INDStreamParserNotifier: ...
    @typing.overload
    def on_begin_setup_decryptor(self, descriptor: winsdk.windows.media.core.IMediaStreamDescriptor, key_i_d: uuid.UUID, pro_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...
    @typing.overload
    def on_content_i_d_received(self, license_fetch_descriptor: INDLicenseFetchDescriptor) -> None: ...
    @typing.overload
    def on_media_stream_descriptor_created(self, audio_stream_descriptors: winsdk.windows.foundation.collections.IVector[winsdk.windows.media.core.AudioStreamDescriptor], video_stream_descriptors: winsdk.windows.foundation.collections.IVector[winsdk.windows.media.core.VideoStreamDescriptor]) -> None: ...
    @typing.overload
    def on_sample_parsed(self, stream_i_d: _winrt.UInt32, stream_type: NDMediaStreamType, stream_sample: winsdk.windows.media.core.MediaStreamSample, pts: _winrt.Int64, cc_format: NDClosedCaptionFormat, cc_data_bytes: typing.Sequence[_winrt.UInt8]) -> None: ...

class INDTransmitterProperties(_winrt.Object):
    certificate_type: NDCertificateType
    client_i_d: _winrt.UInt8
    expiration_date: winsdk.windows.foundation.DateTime
    model_digest: _winrt.UInt8
    model_manufacturer_name: str
    model_name: str
    model_number: str
    platform_identifier: NDCertificatePlatformID
    security_level: _winrt.UInt32
    security_version: _winrt.UInt32
    supported_features: NDCertificateFeature
    @staticmethod
    def _from(obj: _winrt.Object) -> INDTransmitterProperties: ...

class IPlayReadyDomain(_winrt.Object):
    account_id: uuid.UUID
    domain_join_url: winsdk.windows.foundation.Uri
    friendly_name: str
    revision: _winrt.UInt32
    service_id: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> IPlayReadyDomain: ...

class IPlayReadyLicense(_winrt.Object):
    chain_depth: _winrt.UInt32
    domain_account_i_d: uuid.UUID
    expiration_date: typing.Optional[winsdk.windows.foundation.DateTime]
    expire_after_first_play: _winrt.UInt32
    fully_evaluated: _winrt.Boolean
    usable_for_play: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> IPlayReadyLicense: ...
    @typing.overload
    def get_k_i_d_at_chain_depth(self, chain_depth: _winrt.UInt32) -> uuid.UUID: ...

class IPlayReadyLicenseAcquisitionServiceRequest(IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    content_header: PlayReadyContentHeader
    domain_service_id: uuid.UUID
    challenge_custom_data: str
    response_custom_data: str
    uri: winsdk.windows.foundation.Uri
    protection_system: uuid.UUID
    type: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> IPlayReadyLicenseAcquisitionServiceRequest: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class IPlayReadyLicenseSession(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IPlayReadyLicenseSession: ...
    @typing.overload
    def configure_media_protection_manager(self, mpm: winsdk.windows.media.protection.MediaProtectionManager) -> None: ...
    @typing.overload
    def create_l_a_service_request(self) -> IPlayReadyLicenseAcquisitionServiceRequest: ...

class IPlayReadyLicenseSession2(IPlayReadyLicenseSession, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IPlayReadyLicenseSession2: ...
    @typing.overload
    def create_license_iterable(self, content_header: PlayReadyContentHeader, fully_evaluated: _winrt.Boolean) -> PlayReadyLicenseIterable: ...
    @typing.overload
    def configure_media_protection_manager(self, mpm: winsdk.windows.media.protection.MediaProtectionManager) -> None: ...
    @typing.overload
    def create_l_a_service_request(self) -> IPlayReadyLicenseAcquisitionServiceRequest: ...

class IPlayReadySecureStopServiceRequest(IPlayReadyServiceRequest, winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    publisher_certificate: _winrt.UInt8
    session_i_d: uuid.UUID
    start_time: winsdk.windows.foundation.DateTime
    stopped: _winrt.Boolean
    update_time: winsdk.windows.foundation.DateTime
    challenge_custom_data: str
    response_custom_data: str
    uri: winsdk.windows.foundation.Uri
    protection_system: uuid.UUID
    type: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> IPlayReadySecureStopServiceRequest: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

class IPlayReadyServiceRequest(winsdk.windows.media.protection.IMediaProtectionServiceRequest, _winrt.Object):
    challenge_custom_data: str
    response_custom_data: str
    uri: winsdk.windows.foundation.Uri
    protection_system: uuid.UUID
    type: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def begin_service_request(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def generate_manual_enabling_challenge(self) -> PlayReadySoapMessage: ...
    @typing.overload
    def next_service_request(self) -> IPlayReadyServiceRequest: ...
    @typing.overload
    def process_manual_enabling_response(self, response_bytes: typing.Sequence[_winrt.UInt8]) -> winsdk.windows.foundation.HResult: ...

