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

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.devices.pointofservice
import winrt.windows.foundation
import winrt.windows.foundation.collections
import winrt.windows.graphics.imaging
import winrt.windows.storage.streams

from winrt.windows.devices.pointofservice.provider import BarcodeScannerTriggerState

Self = typing.TypeVar('Self')

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

@typing.final
class BarcodeScannerDisableScannerRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerDisableScannerRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerDisableScannerRequest]: ...

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

@typing.final
class BarcodeScannerEnableScannerRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerEnableScannerRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerEnableScannerRequest]: ...

@typing.final
class BarcodeScannerFrameReader(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerFrameReader: ...
    def close(self) -> None: ...
    def start_async(self) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    def stop_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def try_acquire_latest_frame_async(self) -> winrt.windows.foundation.IAsyncOperation[BarcodeScannerVideoFrame]: ...
    def add_frame_arrived(self, handler: winrt.windows.foundation.TypedEventHandler[BarcodeScannerFrameReader, BarcodeScannerFrameReaderFrameArrivedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_frame_arrived(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def connection(self) -> typing.Optional[BarcodeScannerProviderConnection]: ...

@typing.final
class BarcodeScannerFrameReaderFrameArrivedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerFrameReaderFrameArrivedEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...

@typing.final
class BarcodeScannerGetSymbologyAttributesRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerGetSymbologyAttributesRequest: ...
    def report_completed_async(self, attributes: typing.Optional[winrt.windows.devices.pointofservice.BarcodeSymbologyAttributes], /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: winrt.system.Int32, /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: winrt.system.Int32, failed_reason_description: str, /) -> winrt.windows.foundation.IAsyncAction: ...
    @_property
    def symbology(self) -> winrt.system.UInt32: ...

@typing.final
class BarcodeScannerGetSymbologyAttributesRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerGetSymbologyAttributesRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerGetSymbologyAttributesRequest]: ...

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

@typing.final
class BarcodeScannerHideVideoPreviewRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerHideVideoPreviewRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerHideVideoPreviewRequest]: ...

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

@typing.final
class BarcodeScannerProviderTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerProviderTriggerDetails: ...
    @_property
    def connection(self) -> typing.Optional[BarcodeScannerProviderConnection]: ...

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

@typing.final
class BarcodeScannerSetActiveSymbologiesRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerSetActiveSymbologiesRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerSetActiveSymbologiesRequest]: ...

@typing.final
class BarcodeScannerSetSymbologyAttributesRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerSetSymbologyAttributesRequest: ...
    def report_completed_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: winrt.system.Int32, /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, reason: winrt.system.Int32, failed_reason_description: str, /) -> winrt.windows.foundation.IAsyncAction: ...
    @_property
    def attributes(self) -> typing.Optional[winrt.windows.devices.pointofservice.BarcodeSymbologyAttributes]: ...
    @_property
    def symbology(self) -> winrt.system.UInt32: ...

@typing.final
class BarcodeScannerSetSymbologyAttributesRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerSetSymbologyAttributesRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerSetSymbologyAttributesRequest]: ...

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

@typing.final
class BarcodeScannerStartSoftwareTriggerRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerStartSoftwareTriggerRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerStartSoftwareTriggerRequest]: ...

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

@typing.final
class BarcodeScannerStopSoftwareTriggerRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerStopSoftwareTriggerRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winrt.windows.foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[BarcodeScannerStopSoftwareTriggerRequest]: ...

@typing.final
class BarcodeScannerVideoFrame(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeScannerVideoFrame: ...
    def close(self) -> None: ...
    @_property
    def format(self) -> winrt.windows.graphics.imaging.BitmapPixelFormat: ...
    @_property
    def height(self) -> winrt.system.UInt32: ...
    @_property
    def pixel_data(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def width(self) -> winrt.system.UInt32: ...

@typing.final
class BarcodeSymbologyAttributesBuilder(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BarcodeSymbologyAttributesBuilder: ...
    def __new__(cls: typing.Type[BarcodeSymbologyAttributesBuilder]) -> BarcodeSymbologyAttributesBuilder:...
    def create_attributes(self) -> typing.Optional[winrt.windows.devices.pointofservice.BarcodeSymbologyAttributes]: ...
    @_property
    def is_decode_length_supported(self) -> bool: ...
    @is_decode_length_supported.setter
    def is_decode_length_supported(self, value: bool) -> None: ...
    @_property
    def is_check_digit_validation_supported(self) -> bool: ...
    @is_check_digit_validation_supported.setter
    def is_check_digit_validation_supported(self, value: bool) -> None: ...
    @_property
    def is_check_digit_transmission_supported(self) -> bool: ...
    @is_check_digit_transmission_supported.setter
    def is_check_digit_transmission_supported(self, value: bool) -> None: ...

