# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.1

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

import winrt._winrt
import winrt.system
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.graphics.printing as windows_graphics_printing
import winrt.windows.storage as windows_storage
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.devices.scanners import ImageScannerAutoCroppingMode, ImageScannerColorMode, ImageScannerFormat, ImageScannerScanSource

Self = typing.TypeVar('Self')

@typing.final
class ImageScannerResolution:
    @_property
    def dpi_x(self) -> winrt.system.Single: ...
    @_property
    def dpi_y(self) -> winrt.system.Single: ...
    def __new__(cls, dpi_x: winrt.system.Single = 0, dpi_y: winrt.system.Single = 0) -> ImageScannerResolution: ...
    def __replace__(self, /, **changes: typing.Any) -> ImageScannerResolution: ...
    def unpack(self) -> typing.Tuple[winrt.system.Single, winrt.system.Single]: ...

@typing.final
class ImageScanner_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Scanners.ImageScanner> Windows.Devices.Scanners.ImageScanner::FromIdAsync(System.String)
    def from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[ImageScanner]: ...
    # System.String Windows.Devices.Scanners.ImageScanner::GetDeviceSelector()
    def get_device_selector(cls) -> str: ...

@typing.final
class ImageScanner(winrt.system.Object, metaclass=ImageScanner_Static):
    # System.Boolean Windows.Devices.Scanners.ImageScanner::IsPreviewSupported(Windows.Devices.Scanners.ImageScannerScanSource)
    def is_preview_supported(self, scan_source: ImageScannerScanSource, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScanner::IsScanSourceSupported(Windows.Devices.Scanners.ImageScannerScanSource)
    def is_scan_source_supported(self, value: ImageScannerScanSource, /) -> bool: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Devices.Scanners.ImageScannerScanResult,System.UInt32> Windows.Devices.Scanners.ImageScanner::ScanFilesToFolderAsync(Windows.Devices.Scanners.ImageScannerScanSource,Windows.Storage.StorageFolder)
    def scan_files_to_folder_async(self, scan_source: ImageScannerScanSource, storage_folder: windows_storage.StorageFolder, /) -> windows_foundation.IAsyncOperationWithProgress[ImageScannerScanResult, winrt.system.UInt32]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Scanners.ImageScannerPreviewResult> Windows.Devices.Scanners.ImageScanner::ScanPreviewToStreamAsync(Windows.Devices.Scanners.ImageScannerScanSource,Windows.Storage.Streams.IRandomAccessStream)
    def scan_preview_to_stream_async(self, scan_source: ImageScannerScanSource, target_stream: windows_storage_streams.IRandomAccessStream, /) -> windows_foundation.IAsyncOperation[ImageScannerPreviewResult]: ...
    # Windows.Devices.Scanners.ImageScannerAutoConfiguration Windows.Devices.Scanners.ImageScanner::get_AutoConfiguration()
    @_property
    def auto_configuration(self) -> ImageScannerAutoConfiguration: ...
    # Windows.Devices.Scanners.ImageScannerScanSource Windows.Devices.Scanners.ImageScanner::get_DefaultScanSource()
    @_property
    def default_scan_source(self) -> ImageScannerScanSource: ...
    # System.String Windows.Devices.Scanners.ImageScanner::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Scanners.ImageScannerFeederConfiguration Windows.Devices.Scanners.ImageScanner::get_FeederConfiguration()
    @_property
    def feeder_configuration(self) -> ImageScannerFeederConfiguration: ...
    # Windows.Devices.Scanners.ImageScannerFlatbedConfiguration Windows.Devices.Scanners.ImageScanner::get_FlatbedConfiguration()
    @_property
    def flatbed_configuration(self) -> ImageScannerFlatbedConfiguration: ...

@typing.final
class ImageScannerAutoConfiguration(winrt.system.Object, IImageScannerFormatConfiguration):
    # System.Boolean Windows.Devices.Scanners.ImageScannerAutoConfiguration::IsFormatSupported(Windows.Devices.Scanners.ImageScannerFormat)
    def is_format_supported(self, value: ImageScannerFormat, /) -> bool: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.ImageScannerAutoConfiguration::get_Format()
    @_property
    def format(self) -> ImageScannerFormat: ...
    # System.Void Windows.Devices.Scanners.ImageScannerAutoConfiguration::put_Format(Windows.Devices.Scanners.ImageScannerFormat)
    @format.setter
    def format(self, value: ImageScannerFormat) -> None: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.ImageScannerAutoConfiguration::get_DefaultFormat()
    @_property
    def default_format(self) -> ImageScannerFormat: ...

@typing.final
class ImageScannerFeederConfiguration(winrt.system.Object, IImageScannerSourceConfiguration, IImageScannerFormatConfiguration):
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::IsAutoCroppingModeSupported(Windows.Devices.Scanners.ImageScannerAutoCroppingMode)
    def is_auto_cropping_mode_supported(self, value: ImageScannerAutoCroppingMode, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::IsColorModeSupported(Windows.Devices.Scanners.ImageScannerColorMode)
    def is_color_mode_supported(self, value: ImageScannerColorMode, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::IsFormatSupported(Windows.Devices.Scanners.ImageScannerFormat)
    def is_format_supported(self, value: ImageScannerFormat, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::IsPageSizeSupported(Windows.Graphics.Printing.PrintMediaSize,Windows.Graphics.Printing.PrintOrientation)
    def is_page_size_supported(self, page_size: windows_graphics_printing.PrintMediaSize, page_orientation: windows_graphics_printing.PrintOrientation, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_ScanAhead()
    @_property
    def scan_ahead(self) -> bool: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_ScanAhead(System.Boolean)
    @scan_ahead.setter
    def scan_ahead(self, value: bool) -> None: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_AutoDetectPageSize()
    @_property
    def auto_detect_page_size(self) -> bool: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_AutoDetectPageSize(System.Boolean)
    @auto_detect_page_size.setter
    def auto_detect_page_size(self, value: bool) -> None: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_Duplex()
    @_property
    def duplex(self) -> bool: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_Duplex(System.Boolean)
    @duplex.setter
    def duplex(self, value: bool) -> None: ...
    # System.UInt32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MaxNumberOfPages()
    @_property
    def max_number_of_pages(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_MaxNumberOfPages(System.UInt32)
    @max_number_of_pages.setter
    def max_number_of_pages(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Graphics.Printing.PrintOrientation Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_PageOrientation()
    @_property
    def page_orientation(self) -> windows_graphics_printing.PrintOrientation: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_PageOrientation(Windows.Graphics.Printing.PrintOrientation)
    @page_orientation.setter
    def page_orientation(self, value: windows_graphics_printing.PrintOrientation) -> None: ...
    # Windows.Graphics.Printing.PrintMediaSize Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_PageSize()
    @_property
    def page_size(self) -> windows_graphics_printing.PrintMediaSize: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_PageSize(Windows.Graphics.Printing.PrintMediaSize)
    @page_size.setter
    def page_size(self, value: windows_graphics_printing.PrintMediaSize) -> None: ...
    # Windows.Foundation.Size Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_PageSizeDimensions()
    @_property
    def page_size_dimensions(self) -> windows_foundation.Size: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_CanScanDuplex()
    @_property
    def can_scan_duplex(self) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_CanScanAhead()
    @_property
    def can_scan_ahead(self) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_CanAutoDetectPageSize()
    @_property
    def can_auto_detect_page_size(self) -> bool: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_Format()
    @_property
    def format(self) -> ImageScannerFormat: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_Format(Windows.Devices.Scanners.ImageScannerFormat)
    @format.setter
    def format(self, value: ImageScannerFormat) -> None: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_DefaultFormat()
    @_property
    def default_format(self) -> ImageScannerFormat: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_DesiredResolution()
    @_property
    def desired_resolution(self) -> ImageScannerResolution: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_DesiredResolution(Windows.Devices.Scanners.ImageScannerResolution)
    @desired_resolution.setter
    def desired_resolution(self, value: typing.Union[ImageScannerResolution, typing.Tuple[winrt.system.Single, winrt.system.Single]]) -> None: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_Contrast()
    @_property
    def contrast(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_Contrast(System.Int32)
    @contrast.setter
    def contrast(self, value: winrt.system.Int32) -> None: ...
    # Windows.Devices.Scanners.ImageScannerColorMode Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_ColorMode()
    @_property
    def color_mode(self) -> ImageScannerColorMode: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_ColorMode(Windows.Devices.Scanners.ImageScannerColorMode)
    @color_mode.setter
    def color_mode(self, value: ImageScannerColorMode) -> None: ...
    # Windows.Devices.Scanners.ImageScannerAutoCroppingMode Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_AutoCroppingMode()
    @_property
    def auto_cropping_mode(self) -> ImageScannerAutoCroppingMode: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_AutoCroppingMode(Windows.Devices.Scanners.ImageScannerAutoCroppingMode)
    @auto_cropping_mode.setter
    def auto_cropping_mode(self, value: ImageScannerAutoCroppingMode) -> None: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_Brightness()
    @_property
    def brightness(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_Brightness(System.Int32)
    @brightness.setter
    def brightness(self, value: winrt.system.Int32) -> None: ...
    # Windows.Foundation.Rect Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_SelectedScanRegion()
    @_property
    def selected_scan_region(self) -> windows_foundation.Rect: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFeederConfiguration::put_SelectedScanRegion(Windows.Foundation.Rect)
    @selected_scan_region.setter
    def selected_scan_region(self, value: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]]) -> None: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MinBrightness()
    @_property
    def min_brightness(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MinContrast()
    @_property
    def min_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MinResolution()
    @_property
    def min_resolution(self) -> ImageScannerResolution: ...
    # Windows.Foundation.Size Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MinScanArea()
    @_property
    def min_scan_area(self) -> windows_foundation.Size: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_OpticalResolution()
    @_property
    def optical_resolution(self) -> ImageScannerResolution: ...
    # Windows.Foundation.Size Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MaxScanArea()
    @_property
    def max_scan_area(self) -> windows_foundation.Size: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MaxResolution()
    @_property
    def max_resolution(self) -> ImageScannerResolution: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MaxContrast()
    @_property
    def max_contrast(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_MaxBrightness()
    @_property
    def max_brightness(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_DefaultContrast()
    @_property
    def default_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerColorMode Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_DefaultColorMode()
    @_property
    def default_color_mode(self) -> ImageScannerColorMode: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_DefaultBrightness()
    @_property
    def default_brightness(self) -> winrt.system.Int32: ...
    # System.UInt32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_ContrastStep()
    @_property
    def contrast_step(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_BrightnessStep()
    @_property
    def brightness_step(self) -> winrt.system.UInt32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFeederConfiguration::get_ActualResolution()
    @_property
    def actual_resolution(self) -> ImageScannerResolution: ...

@typing.final
class ImageScannerFlatbedConfiguration(winrt.system.Object, IImageScannerSourceConfiguration, IImageScannerFormatConfiguration):
    # System.Boolean Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::IsAutoCroppingModeSupported(Windows.Devices.Scanners.ImageScannerAutoCroppingMode)
    def is_auto_cropping_mode_supported(self, value: ImageScannerAutoCroppingMode, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::IsColorModeSupported(Windows.Devices.Scanners.ImageScannerColorMode)
    def is_color_mode_supported(self, value: ImageScannerColorMode, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::IsFormatSupported(Windows.Devices.Scanners.ImageScannerFormat)
    def is_format_supported(self, value: ImageScannerFormat, /) -> bool: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_Format()
    @_property
    def format(self) -> ImageScannerFormat: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::put_Format(Windows.Devices.Scanners.ImageScannerFormat)
    @format.setter
    def format(self, value: ImageScannerFormat) -> None: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_DefaultFormat()
    @_property
    def default_format(self) -> ImageScannerFormat: ...
    # Windows.Foundation.Rect Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_SelectedScanRegion()
    @_property
    def selected_scan_region(self) -> windows_foundation.Rect: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::put_SelectedScanRegion(Windows.Foundation.Rect)
    @selected_scan_region.setter
    def selected_scan_region(self, value: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]]) -> None: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_DesiredResolution()
    @_property
    def desired_resolution(self) -> ImageScannerResolution: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::put_DesiredResolution(Windows.Devices.Scanners.ImageScannerResolution)
    @desired_resolution.setter
    def desired_resolution(self, value: typing.Union[ImageScannerResolution, typing.Tuple[winrt.system.Single, winrt.system.Single]]) -> None: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_Contrast()
    @_property
    def contrast(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::put_Contrast(System.Int32)
    @contrast.setter
    def contrast(self, value: winrt.system.Int32) -> None: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_Brightness()
    @_property
    def brightness(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::put_Brightness(System.Int32)
    @brightness.setter
    def brightness(self, value: winrt.system.Int32) -> None: ...
    # Windows.Devices.Scanners.ImageScannerAutoCroppingMode Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_AutoCroppingMode()
    @_property
    def auto_cropping_mode(self) -> ImageScannerAutoCroppingMode: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::put_AutoCroppingMode(Windows.Devices.Scanners.ImageScannerAutoCroppingMode)
    @auto_cropping_mode.setter
    def auto_cropping_mode(self, value: ImageScannerAutoCroppingMode) -> None: ...
    # Windows.Devices.Scanners.ImageScannerColorMode Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_ColorMode()
    @_property
    def color_mode(self) -> ImageScannerColorMode: ...
    # System.Void Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::put_ColorMode(Windows.Devices.Scanners.ImageScannerColorMode)
    @color_mode.setter
    def color_mode(self, value: ImageScannerColorMode) -> None: ...
    # System.UInt32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_ContrastStep()
    @_property
    def contrast_step(self) -> winrt.system.UInt32: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_DefaultBrightness()
    @_property
    def default_brightness(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerColorMode Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_DefaultColorMode()
    @_property
    def default_color_mode(self) -> ImageScannerColorMode: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_DefaultContrast()
    @_property
    def default_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_ActualResolution()
    @_property
    def actual_resolution(self) -> ImageScannerResolution: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MaxBrightness()
    @_property
    def max_brightness(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MaxContrast()
    @_property
    def max_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MaxResolution()
    @_property
    def max_resolution(self) -> ImageScannerResolution: ...
    # Windows.Foundation.Size Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MaxScanArea()
    @_property
    def max_scan_area(self) -> windows_foundation.Size: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MinBrightness()
    @_property
    def min_brightness(self) -> winrt.system.Int32: ...
    # System.UInt32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_BrightnessStep()
    @_property
    def brightness_step(self) -> winrt.system.UInt32: ...
    # System.Int32 Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MinContrast()
    @_property
    def min_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MinResolution()
    @_property
    def min_resolution(self) -> ImageScannerResolution: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_OpticalResolution()
    @_property
    def optical_resolution(self) -> ImageScannerResolution: ...
    # Windows.Foundation.Size Windows.Devices.Scanners.ImageScannerFlatbedConfiguration::get_MinScanArea()
    @_property
    def min_scan_area(self) -> windows_foundation.Size: ...

@typing.final
class ImageScannerPreviewResult(winrt.system.Object):
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.ImageScannerPreviewResult::get_Format()
    @_property
    def format(self) -> ImageScannerFormat: ...
    # System.Boolean Windows.Devices.Scanners.ImageScannerPreviewResult::get_Succeeded()
    @_property
    def succeeded(self) -> bool: ...

@typing.final
class ImageScannerScanResult(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFile> Windows.Devices.Scanners.ImageScannerScanResult::get_ScannedFiles()
    @_property
    def scanned_files(self) -> typing.Sequence[windows_storage.StorageFile]: ...

@typing.final
class _IImageScannerFormatConfiguration: ...

class IImageScannerFormatConfiguration(winrt._winrt.IInspectable):
    # System.Boolean Windows.Devices.Scanners.IImageScannerFormatConfiguration::IsFormatSupported(Windows.Devices.Scanners.ImageScannerFormat)
    @abstractmethod
    def is_format_supported(self, value: ImageScannerFormat, /) -> bool: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.IImageScannerFormatConfiguration::get_DefaultFormat()
    @_property
    @abstractmethod
    def default_format(self) -> ImageScannerFormat: ...
    # Windows.Devices.Scanners.ImageScannerFormat Windows.Devices.Scanners.IImageScannerFormatConfiguration::get_Format()
    @_property
    @abstractmethod
    def format(self) -> ImageScannerFormat: ...
    # System.Void Windows.Devices.Scanners.IImageScannerFormatConfiguration::put_Format(Windows.Devices.Scanners.ImageScannerFormat)
    @format.setter
    @abstractmethod
    def format(self, value: ImageScannerFormat) -> None: ...

@typing.final
class _IImageScannerSourceConfiguration: ...

class IImageScannerSourceConfiguration(IImageScannerFormatConfiguration, winrt._winrt.IInspectable):
    # System.Boolean Windows.Devices.Scanners.IImageScannerSourceConfiguration::IsAutoCroppingModeSupported(Windows.Devices.Scanners.ImageScannerAutoCroppingMode)
    @abstractmethod
    def is_auto_cropping_mode_supported(self, value: ImageScannerAutoCroppingMode, /) -> bool: ...
    # System.Boolean Windows.Devices.Scanners.IImageScannerSourceConfiguration::IsColorModeSupported(Windows.Devices.Scanners.ImageScannerColorMode)
    @abstractmethod
    def is_color_mode_supported(self, value: ImageScannerColorMode, /) -> bool: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_ActualResolution()
    @_property
    @abstractmethod
    def actual_resolution(self) -> ImageScannerResolution: ...
    # Windows.Devices.Scanners.ImageScannerAutoCroppingMode Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_AutoCroppingMode()
    @_property
    @abstractmethod
    def auto_cropping_mode(self) -> ImageScannerAutoCroppingMode: ...
    # System.Void Windows.Devices.Scanners.IImageScannerSourceConfiguration::put_AutoCroppingMode(Windows.Devices.Scanners.ImageScannerAutoCroppingMode)
    @auto_cropping_mode.setter
    @abstractmethod
    def auto_cropping_mode(self, value: ImageScannerAutoCroppingMode) -> None: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_Brightness()
    @_property
    @abstractmethod
    def brightness(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Scanners.IImageScannerSourceConfiguration::put_Brightness(System.Int32)
    @brightness.setter
    @abstractmethod
    def brightness(self, value: winrt.system.Int32) -> None: ...
    # System.UInt32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_BrightnessStep()
    @_property
    @abstractmethod
    def brightness_step(self) -> winrt.system.UInt32: ...
    # Windows.Devices.Scanners.ImageScannerColorMode Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_ColorMode()
    @_property
    @abstractmethod
    def color_mode(self) -> ImageScannerColorMode: ...
    # System.Void Windows.Devices.Scanners.IImageScannerSourceConfiguration::put_ColorMode(Windows.Devices.Scanners.ImageScannerColorMode)
    @color_mode.setter
    @abstractmethod
    def color_mode(self, value: ImageScannerColorMode) -> None: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_Contrast()
    @_property
    @abstractmethod
    def contrast(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Scanners.IImageScannerSourceConfiguration::put_Contrast(System.Int32)
    @contrast.setter
    @abstractmethod
    def contrast(self, value: winrt.system.Int32) -> None: ...
    # System.UInt32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_ContrastStep()
    @_property
    @abstractmethod
    def contrast_step(self) -> winrt.system.UInt32: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_DefaultBrightness()
    @_property
    @abstractmethod
    def default_brightness(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerColorMode Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_DefaultColorMode()
    @_property
    @abstractmethod
    def default_color_mode(self) -> ImageScannerColorMode: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_DefaultContrast()
    @_property
    @abstractmethod
    def default_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_DesiredResolution()
    @_property
    @abstractmethod
    def desired_resolution(self) -> ImageScannerResolution: ...
    # System.Void Windows.Devices.Scanners.IImageScannerSourceConfiguration::put_DesiredResolution(Windows.Devices.Scanners.ImageScannerResolution)
    @desired_resolution.setter
    @abstractmethod
    def desired_resolution(self, value: typing.Union[ImageScannerResolution, typing.Tuple[winrt.system.Single, winrt.system.Single]]) -> None: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MaxBrightness()
    @_property
    @abstractmethod
    def max_brightness(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MaxContrast()
    @_property
    @abstractmethod
    def max_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MaxResolution()
    @_property
    @abstractmethod
    def max_resolution(self) -> ImageScannerResolution: ...
    # Windows.Foundation.Size Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MaxScanArea()
    @_property
    @abstractmethod
    def max_scan_area(self) -> windows_foundation.Size: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MinBrightness()
    @_property
    @abstractmethod
    def min_brightness(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MinContrast()
    @_property
    @abstractmethod
    def min_contrast(self) -> winrt.system.Int32: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MinResolution()
    @_property
    @abstractmethod
    def min_resolution(self) -> ImageScannerResolution: ...
    # Windows.Foundation.Size Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_MinScanArea()
    @_property
    @abstractmethod
    def min_scan_area(self) -> windows_foundation.Size: ...
    # Windows.Devices.Scanners.ImageScannerResolution Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_OpticalResolution()
    @_property
    @abstractmethod
    def optical_resolution(self) -> ImageScannerResolution: ...
    # Windows.Foundation.Rect Windows.Devices.Scanners.IImageScannerSourceConfiguration::get_SelectedScanRegion()
    @_property
    @abstractmethod
    def selected_scan_region(self) -> windows_foundation.Rect: ...
    # System.Void Windows.Devices.Scanners.IImageScannerSourceConfiguration::put_SelectedScanRegion(Windows.Foundation.Rect)
    @selected_scan_region.setter
    @abstractmethod
    def selected_scan_region(self, value: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]]) -> None: ...

