# 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.devices.pointofservice
except Exception:
    pass

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

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

try:
    import winsdk.windows.graphics.imaging
except Exception:
    pass

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

class BarcodeScannerTriggerState(enum.IntEnum):
    RELEASED = 0
    PRESSED = 1

class BarcodeScannerDisableScannerRequest(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerDisableScannerRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerDisableScannerRequestEventArgs(_winrt.Object):
    request: BarcodeScannerDisableScannerRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerDisableScannerRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerEnableScannerRequest(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerEnableScannerRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerEnableScannerRequestEventArgs(_winrt.Object):
    request: BarcodeScannerEnableScannerRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerEnableScannerRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerFrameReader(winsdk.windows.foundation.IClosable, _winrt.Object):
    connection: BarcodeScannerProviderConnection
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerFrameReader: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def start_async(self) -> winsdk.windows.foundation.IAsyncOperation[_winrt.Boolean]: ...
    @typing.overload
    def stop_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def try_acquire_latest_frame_async(self) -> winsdk.windows.foundation.IAsyncOperation[BarcodeScannerVideoFrame]: ...
    @typing.overload
    def add_frame_arrived(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerFrameReader, BarcodeScannerFrameReaderFrameArrivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_frame_arrived(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class BarcodeScannerFrameReaderFrameArrivedEventArgs(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerFrameReaderFrameArrivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerGetSymbologyAttributesRequest(_winrt.Object):
    symbology: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerGetSymbologyAttributesRequest: ...
    @typing.overload
    def report_completed_async(self, attributes: winsdk.windows.devices.pointofservice.BarcodeSymbologyAttributes) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerGetSymbologyAttributesRequestEventArgs(_winrt.Object):
    request: BarcodeScannerGetSymbologyAttributesRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerGetSymbologyAttributesRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerHideVideoPreviewRequest(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerHideVideoPreviewRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerHideVideoPreviewRequestEventArgs(_winrt.Object):
    request: BarcodeScannerHideVideoPreviewRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerHideVideoPreviewRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerProviderConnection(winsdk.windows.foundation.IClosable, _winrt.Object):
    version: str
    name: str
    company_name: str
    id: str
    supported_symbologies: winsdk.windows.foundation.collections.IVector[_winrt.UInt32]
    video_device_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerProviderConnection: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def create_frame_reader_async(self) -> winsdk.windows.foundation.IAsyncOperation[BarcodeScannerFrameReader]: ...
    @typing.overload
    def create_frame_reader_async(self, preferred_format: winsdk.windows.graphics.imaging.BitmapPixelFormat) -> winsdk.windows.foundation.IAsyncOperation[BarcodeScannerFrameReader]: ...
    @typing.overload
    def create_frame_reader_async(self, preferred_format: winsdk.windows.graphics.imaging.BitmapPixelFormat, preferred_size: winsdk.windows.graphics.imaging.BitmapSize) -> winsdk.windows.foundation.IAsyncOperation[BarcodeScannerFrameReader]: ...
    @typing.overload
    def report_error_async(self, error_data: winsdk.windows.devices.pointofservice.UnifiedPosErrorData) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_error_async(self, error_data: winsdk.windows.devices.pointofservice.UnifiedPosErrorData, is_retriable: _winrt.Boolean, scan_report: winsdk.windows.devices.pointofservice.BarcodeScannerReport) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_scanned_data_async(self, report: winsdk.windows.devices.pointofservice.BarcodeScannerReport) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_trigger_state_async(self, state: BarcodeScannerTriggerState) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def start(self) -> None: ...
    @typing.overload
    def add_disable_scanner_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerDisableScannerRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_disable_scanner_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_enable_scanner_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerEnableScannerRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_enable_scanner_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_get_barcode_symbology_attributes_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerGetSymbologyAttributesRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_get_barcode_symbology_attributes_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_hide_video_preview_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerHideVideoPreviewRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_hide_video_preview_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_set_active_symbologies_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerSetActiveSymbologiesRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_set_active_symbologies_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_set_barcode_symbology_attributes_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerSetSymbologyAttributesRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_set_barcode_symbology_attributes_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_start_software_trigger_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerStartSoftwareTriggerRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_start_software_trigger_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_stop_software_trigger_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[BarcodeScannerProviderConnection, BarcodeScannerStopSoftwareTriggerRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_stop_software_trigger_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class BarcodeScannerProviderTriggerDetails(_winrt.Object):
    connection: BarcodeScannerProviderConnection
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerProviderTriggerDetails: ...

class BarcodeScannerSetActiveSymbologiesRequest(_winrt.Object):
    symbologies: winsdk.windows.foundation.collections.IVectorView[_winrt.UInt32]
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerSetActiveSymbologiesRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerSetActiveSymbologiesRequestEventArgs(_winrt.Object):
    request: BarcodeScannerSetActiveSymbologiesRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerSetActiveSymbologiesRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerSetSymbologyAttributesRequest(_winrt.Object):
    attributes: winsdk.windows.devices.pointofservice.BarcodeSymbologyAttributes
    symbology: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerSetSymbologyAttributesRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerSetSymbologyAttributesRequestEventArgs(_winrt.Object):
    request: BarcodeScannerSetSymbologyAttributesRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerSetSymbologyAttributesRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerStartSoftwareTriggerRequest(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerStartSoftwareTriggerRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerStartSoftwareTriggerRequestEventArgs(_winrt.Object):
    request: BarcodeScannerStartSoftwareTriggerRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerStartSoftwareTriggerRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerStopSoftwareTriggerRequest(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerStopSoftwareTriggerRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: _winrt.Int32, failed_reason_description: str) -> winsdk.windows.foundation.IAsyncAction: ...

class BarcodeScannerStopSoftwareTriggerRequestEventArgs(_winrt.Object):
    request: BarcodeScannerStopSoftwareTriggerRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerStopSoftwareTriggerRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class BarcodeScannerVideoFrame(winsdk.windows.foundation.IClosable, _winrt.Object):
    format: winsdk.windows.graphics.imaging.BitmapPixelFormat
    height: _winrt.UInt32
    pixel_data: winsdk.windows.storage.streams.IBuffer
    width: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeScannerVideoFrame: ...
    @typing.overload
    def close(self) -> None: ...

class BarcodeSymbologyAttributesBuilder(_winrt.Object):
    is_decode_length_supported: _winrt.Boolean
    is_check_digit_validation_supported: _winrt.Boolean
    is_check_digit_transmission_supported: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> BarcodeSymbologyAttributesBuilder: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def create_attributes(self) -> winsdk.windows.devices.pointofservice.BarcodeSymbologyAttributes: ...

