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

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.applicationmodel.datatransfer as windows_applicationmodel_datatransfer
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.graphics.printing import PrintBinding, PrintBordering, PrintCollation, PrintColorMode, PrintDuplex, PrintHolePunch, PrintMediaSize, PrintMediaType, PrintOrientation, PrintQuality, PrintStaple, PrintTaskCompletion
from winrt.windows.graphics.printing import PrintTaskSourceRequestedHandler

Self = typing.TypeVar('Self')

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

@typing.final
class PrintManager_Static(winrt._winrt.IInspectable_Static):
    # Windows.Graphics.Printing.PrintManager Windows.Graphics.Printing.PrintManager::GetForCurrentView()
    def get_for_current_view(cls) -> PrintManager: ...
    # System.Boolean Windows.Graphics.Printing.PrintManager::IsSupported()
    def is_supported(cls) -> bool: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Graphics.Printing.PrintManager::ShowPrintUIAsync()
    def show_print_ui_async(cls) -> windows_foundation.IAsyncOperation[bool]: ...

@typing.final
class PrintManager(winrt.system.Object, metaclass=PrintManager_Static):
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing.PrintManager::add_PrintTaskRequested(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing.PrintManager,Windows.Graphics.Printing.PrintTaskRequestedEventArgs>)
    def add_print_task_requested(self, event_handler: windows_foundation.TypedEventHandler[PrintManager, PrintTaskRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing.PrintManager::remove_PrintTaskRequested(Windows.Foundation.EventRegistrationToken)
    def remove_print_task_requested(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class PrintPageInfo(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Size Windows.Graphics.Printing.PrintPageInfo::get_PageSize()
    @_property
    def page_size(self) -> windows_foundation.Size: ...
    # System.Void Windows.Graphics.Printing.PrintPageInfo::put_PageSize(Windows.Foundation.Size)
    @page_size.setter
    def page_size(self, value: typing.Union[windows_foundation.Size, typing.Tuple[winrt.system.Single, winrt.system.Single]]) -> None: ...
    # Windows.Graphics.Printing.PrintOrientation Windows.Graphics.Printing.PrintPageInfo::get_Orientation()
    @_property
    def orientation(self) -> PrintOrientation: ...
    # System.Void Windows.Graphics.Printing.PrintPageInfo::put_Orientation(Windows.Graphics.Printing.PrintOrientation)
    @orientation.setter
    def orientation(self, value: PrintOrientation) -> None: ...
    # Windows.Graphics.Printing.PrintMediaSize Windows.Graphics.Printing.PrintPageInfo::get_MediaSize()
    @_property
    def media_size(self) -> PrintMediaSize: ...
    # System.Void Windows.Graphics.Printing.PrintPageInfo::put_MediaSize(Windows.Graphics.Printing.PrintMediaSize)
    @media_size.setter
    def media_size(self, value: PrintMediaSize) -> None: ...
    # System.UInt32 Windows.Graphics.Printing.PrintPageInfo::get_DpiY()
    @_property
    def dpi_y(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing.PrintPageInfo::put_DpiY(System.UInt32)
    @dpi_y.setter
    def dpi_y(self, value: winrt.system.UInt32) -> None: ...
    # System.UInt32 Windows.Graphics.Printing.PrintPageInfo::get_DpiX()
    @_property
    def dpi_x(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing.PrintPageInfo::put_DpiX(System.UInt32)
    @dpi_x.setter
    def dpi_x(self, value: winrt.system.UInt32) -> None: ...

@typing.final
class PrintPageRange(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self], first_page: winrt.system.Int32, last_page: winrt.system.Int32) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], page: winrt.system.Int32) -> Self: ...
    # System.Int32 Windows.Graphics.Printing.PrintPageRange::get_FirstPageNumber()
    @_property
    def first_page_number(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Graphics.Printing.PrintPageRange::get_LastPageNumber()
    @_property
    def last_page_number(self) -> winrt.system.Int32: ...

@typing.final
class PrintPageRangeOptions(winrt.system.Object):
    # System.Boolean Windows.Graphics.Printing.PrintPageRangeOptions::get_AllowCustomSetOfPages()
    @_property
    def allow_custom_set_of_pages(self) -> bool: ...
    # System.Void Windows.Graphics.Printing.PrintPageRangeOptions::put_AllowCustomSetOfPages(System.Boolean)
    @allow_custom_set_of_pages.setter
    def allow_custom_set_of_pages(self, value: bool) -> None: ...
    # System.Boolean Windows.Graphics.Printing.PrintPageRangeOptions::get_AllowCurrentPage()
    @_property
    def allow_current_page(self) -> bool: ...
    # System.Void Windows.Graphics.Printing.PrintPageRangeOptions::put_AllowCurrentPage(System.Boolean)
    @allow_current_page.setter
    def allow_current_page(self, value: bool) -> None: ...
    # System.Boolean Windows.Graphics.Printing.PrintPageRangeOptions::get_AllowAllPages()
    @_property
    def allow_all_pages(self) -> bool: ...
    # System.Void Windows.Graphics.Printing.PrintPageRangeOptions::put_AllowAllPages(System.Boolean)
    @allow_all_pages.setter
    def allow_all_pages(self, value: bool) -> None: ...

@typing.final
class PrintTask(winrt.system.Object):
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing.PrintTask::add_Completed(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing.PrintTask,Windows.Graphics.Printing.PrintTaskCompletedEventArgs>)
    def add_completed(self, event_handler: windows_foundation.TypedEventHandler[PrintTask, PrintTaskCompletedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing.PrintTask::remove_Completed(Windows.Foundation.EventRegistrationToken)
    def remove_completed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing.PrintTask::add_Previewing(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing.PrintTask,System.Object>)
    def add_previewing(self, event_handler: windows_foundation.TypedEventHandler[PrintTask, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing.PrintTask::remove_Previewing(Windows.Foundation.EventRegistrationToken)
    def remove_previewing(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing.PrintTask::add_Progressing(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing.PrintTask,Windows.Graphics.Printing.PrintTaskProgressingEventArgs>)
    def add_progressing(self, event_handler: windows_foundation.TypedEventHandler[PrintTask, PrintTaskProgressingEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing.PrintTask::remove_Progressing(Windows.Foundation.EventRegistrationToken)
    def remove_progressing(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing.PrintTask::add_Submitting(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing.PrintTask,System.Object>)
    def add_submitting(self, event_handler: windows_foundation.TypedEventHandler[PrintTask, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing.PrintTask::remove_Submitting(Windows.Foundation.EventRegistrationToken)
    def remove_submitting(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Graphics.Printing.PrintTaskOptions Windows.Graphics.Printing.PrintTask::get_Options()
    @_property
    def options(self) -> PrintTaskOptions: ...
    # Windows.ApplicationModel.DataTransfer.DataPackagePropertySet Windows.Graphics.Printing.PrintTask::get_Properties()
    @_property
    def properties(self) -> windows_applicationmodel_datatransfer.DataPackagePropertySet: ...
    # Windows.Graphics.Printing.IPrintDocumentSource Windows.Graphics.Printing.PrintTask::get_Source()
    @_property
    def source(self) -> IPrintDocumentSource: ...
    # System.Boolean Windows.Graphics.Printing.PrintTask::get_IsPreviewEnabled()
    @_property
    def is_preview_enabled(self) -> bool: ...
    # System.Void Windows.Graphics.Printing.PrintTask::put_IsPreviewEnabled(System.Boolean)
    @is_preview_enabled.setter
    def is_preview_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Graphics.Printing.PrintTask::get_IsPrinterTargetEnabled()
    @_property
    def is_printer_target_enabled(self) -> bool: ...
    # System.Void Windows.Graphics.Printing.PrintTask::put_IsPrinterTargetEnabled(System.Boolean)
    @is_printer_target_enabled.setter
    def is_printer_target_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Graphics.Printing.PrintTask::get_Is3DManufacturingTargetEnabled()
    @_property
    def is_3d_manufacturing_target_enabled(self) -> bool: ...
    # System.Void Windows.Graphics.Printing.PrintTask::put_Is3DManufacturingTargetEnabled(System.Boolean)
    @is_3d_manufacturing_target_enabled.setter
    def is_3d_manufacturing_target_enabled(self, value: bool) -> None: ...

@typing.final
class PrintTaskCompletedEventArgs(winrt.system.Object):
    # Windows.Graphics.Printing.PrintTaskCompletion Windows.Graphics.Printing.PrintTaskCompletedEventArgs::get_Completion()
    @_property
    def completion(self) -> PrintTaskCompletion: ...

@typing.final
class PrintTaskOptions(winrt.system.Object, IPrintTaskOptionsCoreUIConfiguration, IPrintTaskOptionsCoreProperties, IPrintTaskOptionsCore):
    # Windows.Graphics.Printing.PrintPageDescription Windows.Graphics.Printing.PrintTaskOptions::GetPageDescription(System.UInt32)
    def get_page_description(self, job_page_number: winrt.system.UInt32, /) -> PrintPageDescription: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Graphics.Printing.PrintTaskOptions::GetPagePrintTicket(Windows.Graphics.Printing.PrintPageInfo)
    def get_page_print_ticket(self, print_page_info: PrintPageInfo, /) -> windows_storage_streams.IRandomAccessStream: ...
    # Windows.Graphics.Printing.PrintBordering Windows.Graphics.Printing.PrintTaskOptions::get_Bordering()
    @_property
    def bordering(self) -> PrintBordering: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_Bordering(Windows.Graphics.Printing.PrintBordering)
    @bordering.setter
    def bordering(self, value: PrintBordering) -> None: ...
    # Windows.Graphics.Printing.PrintPageRangeOptions Windows.Graphics.Printing.PrintTaskOptions::get_PageRangeOptions()
    @_property
    def page_range_options(self) -> PrintPageRangeOptions: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing.PrintPageRange> Windows.Graphics.Printing.PrintTaskOptions::get_CustomPageRanges()
    @_property
    def custom_page_ranges(self) -> typing.MutableSequence[PrintPageRange]: ...
    # Windows.Graphics.Printing.PrintMediaType Windows.Graphics.Printing.PrintTaskOptions::get_MediaType()
    @_property
    def media_type(self) -> PrintMediaType: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_MediaType(Windows.Graphics.Printing.PrintMediaType)
    @media_type.setter
    def media_type(self, value: PrintMediaType) -> None: ...
    # Windows.Graphics.Printing.PrintHolePunch Windows.Graphics.Printing.PrintTaskOptions::get_HolePunch()
    @_property
    def hole_punch(self) -> PrintHolePunch: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_HolePunch(Windows.Graphics.Printing.PrintHolePunch)
    @hole_punch.setter
    def hole_punch(self, value: PrintHolePunch) -> None: ...
    # Windows.Graphics.Printing.PrintBinding Windows.Graphics.Printing.PrintTaskOptions::get_Binding()
    @_property
    def binding(self) -> PrintBinding: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_Binding(Windows.Graphics.Printing.PrintBinding)
    @binding.setter
    def binding(self, value: PrintBinding) -> None: ...
    # Windows.Graphics.Printing.PrintDuplex Windows.Graphics.Printing.PrintTaskOptions::get_Duplex()
    @_property
    def duplex(self) -> PrintDuplex: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_Duplex(Windows.Graphics.Printing.PrintDuplex)
    @duplex.setter
    def duplex(self, value: PrintDuplex) -> None: ...
    # Windows.Graphics.Printing.PrintColorMode Windows.Graphics.Printing.PrintTaskOptions::get_ColorMode()
    @_property
    def color_mode(self) -> PrintColorMode: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_ColorMode(Windows.Graphics.Printing.PrintColorMode)
    @color_mode.setter
    def color_mode(self, value: PrintColorMode) -> None: ...
    # Windows.Graphics.Printing.PrintCollation Windows.Graphics.Printing.PrintTaskOptions::get_Collation()
    @_property
    def collation(self) -> PrintCollation: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_Collation(Windows.Graphics.Printing.PrintCollation)
    @collation.setter
    def collation(self, value: PrintCollation) -> None: ...
    # Windows.Graphics.Printing.PrintStaple Windows.Graphics.Printing.PrintTaskOptions::get_Staple()
    @_property
    def staple(self) -> PrintStaple: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_Staple(Windows.Graphics.Printing.PrintStaple)
    @staple.setter
    def staple(self, value: PrintStaple) -> None: ...
    # Windows.Graphics.Printing.PrintQuality Windows.Graphics.Printing.PrintTaskOptions::get_PrintQuality()
    @_property
    def print_quality(self) -> PrintQuality: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_PrintQuality(Windows.Graphics.Printing.PrintQuality)
    @print_quality.setter
    def print_quality(self, value: PrintQuality) -> None: ...
    # Windows.Graphics.Printing.PrintOrientation Windows.Graphics.Printing.PrintTaskOptions::get_Orientation()
    @_property
    def orientation(self) -> PrintOrientation: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_Orientation(Windows.Graphics.Printing.PrintOrientation)
    @orientation.setter
    def orientation(self, value: PrintOrientation) -> None: ...
    # Windows.Graphics.Printing.PrintMediaSize Windows.Graphics.Printing.PrintTaskOptions::get_MediaSize()
    @_property
    def media_size(self) -> PrintMediaSize: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_MediaSize(Windows.Graphics.Printing.PrintMediaSize)
    @media_size.setter
    def media_size(self, value: PrintMediaSize) -> None: ...
    # System.UInt32 Windows.Graphics.Printing.PrintTaskOptions::get_NumberOfCopies()
    @_property
    def number_of_copies(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing.PrintTaskOptions::put_NumberOfCopies(System.UInt32)
    @number_of_copies.setter
    def number_of_copies(self, value: winrt.system.UInt32) -> None: ...
    # System.UInt32 Windows.Graphics.Printing.PrintTaskOptions::get_MaxCopies()
    @_property
    def max_copies(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Graphics.Printing.PrintTaskOptions::get_MinCopies()
    @_property
    def min_copies(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Graphics.Printing.PrintTaskOptions::get_DisplayedOptions()
    @_property
    def displayed_options(self) -> typing.MutableSequence[str]: ...

@typing.final
class PrintTaskProgressingEventArgs(winrt.system.Object):
    # System.UInt32 Windows.Graphics.Printing.PrintTaskProgressingEventArgs::get_DocumentPageCount()
    @_property
    def document_page_count(self) -> winrt.system.UInt32: ...

@typing.final
class PrintTaskRequest(winrt.system.Object):
    # Windows.Graphics.Printing.PrintTask Windows.Graphics.Printing.PrintTaskRequest::CreatePrintTask(System.String,Windows.Graphics.Printing.PrintTaskSourceRequestedHandler)
    def create_print_task(self, title: str, handler: PrintTaskSourceRequestedHandler, /) -> PrintTask: ...
    # Windows.Graphics.Printing.PrintTaskRequestedDeferral Windows.Graphics.Printing.PrintTaskRequest::GetDeferral()
    def get_deferral(self) -> PrintTaskRequestedDeferral: ...
    # Windows.Foundation.DateTime Windows.Graphics.Printing.PrintTaskRequest::get_Deadline()
    @_property
    def deadline(self) -> datetime.datetime: ...

@typing.final
class PrintTaskRequestedDeferral(winrt.system.Object):
    # System.Void Windows.Graphics.Printing.PrintTaskRequestedDeferral::Complete()
    def complete(self) -> None: ...

@typing.final
class PrintTaskRequestedEventArgs(winrt.system.Object):
    # Windows.Graphics.Printing.PrintTaskRequest Windows.Graphics.Printing.PrintTaskRequestedEventArgs::get_Request()
    @_property
    def request(self) -> PrintTaskRequest: ...

@typing.final
class PrintTaskSourceRequestedArgs(winrt.system.Object):
    # Windows.Graphics.Printing.PrintTaskSourceRequestedDeferral Windows.Graphics.Printing.PrintTaskSourceRequestedArgs::GetDeferral()
    def get_deferral(self) -> PrintTaskSourceRequestedDeferral: ...
    # System.Void Windows.Graphics.Printing.PrintTaskSourceRequestedArgs::SetSource(Windows.Graphics.Printing.IPrintDocumentSource)
    def set_source(self, source: IPrintDocumentSource, /) -> None: ...
    # Windows.Foundation.DateTime Windows.Graphics.Printing.PrintTaskSourceRequestedArgs::get_Deadline()
    @_property
    def deadline(self) -> datetime.datetime: ...

@typing.final
class PrintTaskSourceRequestedDeferral(winrt.system.Object):
    # System.Void Windows.Graphics.Printing.PrintTaskSourceRequestedDeferral::Complete()
    def complete(self) -> None: ...

@typing.final
class StandardPrintTaskOptions_Static(winrt._winrt.IInspectable_Static):
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_Copies()
    @_property
    def copies(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_Binding()
    @_property
    def binding(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_Collation()
    @_property
    def collation(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_ColorMode()
    @_property
    def color_mode(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_MediaType()
    @_property
    def media_type(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_Duplex()
    @_property
    def duplex(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_HolePunch()
    @_property
    def hole_punch(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_InputBin()
    @_property
    def input_bin(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_MediaSize()
    @_property
    def media_size(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_NUp()
    @_property
    def n_up(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_Orientation()
    @_property
    def orientation(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_PrintQuality()
    @_property
    def print_quality(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_Staple()
    @_property
    def staple(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_Bordering()
    @_property
    def bordering(cls) -> str: ...
    # System.String Windows.Graphics.Printing.StandardPrintTaskOptions::get_CustomPageRanges()
    @_property
    def custom_page_ranges(cls) -> str: ...

@typing.final
class StandardPrintTaskOptions(winrt.system.Object, metaclass=StandardPrintTaskOptions_Static):
    pass

@typing.final
class _IPrintDocumentSource: ...

class IPrintDocumentSource(winrt._winrt.IInspectable):  # type: ignore[misc]
    pass

@typing.final
class _IPrintTaskOptionsCore: ...

class IPrintTaskOptionsCore(winrt._winrt.IInspectable):
    # Windows.Graphics.Printing.PrintPageDescription Windows.Graphics.Printing.IPrintTaskOptionsCore::GetPageDescription(System.UInt32)
    @abstractmethod
    def get_page_description(self, job_page_number: winrt.system.UInt32, /) -> PrintPageDescription: ...

@typing.final
class _IPrintTaskOptionsCoreProperties: ...

class IPrintTaskOptionsCoreProperties(winrt._winrt.IInspectable):
    # Windows.Graphics.Printing.PrintBinding Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_Binding()
    @_property
    @abstractmethod
    def binding(self) -> PrintBinding: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_Binding(Windows.Graphics.Printing.PrintBinding)
    @binding.setter
    @abstractmethod
    def binding(self, value: PrintBinding) -> None: ...
    # Windows.Graphics.Printing.PrintCollation Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_Collation()
    @_property
    @abstractmethod
    def collation(self) -> PrintCollation: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_Collation(Windows.Graphics.Printing.PrintCollation)
    @collation.setter
    @abstractmethod
    def collation(self, value: PrintCollation) -> None: ...
    # Windows.Graphics.Printing.PrintColorMode Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_ColorMode()
    @_property
    @abstractmethod
    def color_mode(self) -> PrintColorMode: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_ColorMode(Windows.Graphics.Printing.PrintColorMode)
    @color_mode.setter
    @abstractmethod
    def color_mode(self, value: PrintColorMode) -> None: ...
    # Windows.Graphics.Printing.PrintDuplex Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_Duplex()
    @_property
    @abstractmethod
    def duplex(self) -> PrintDuplex: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_Duplex(Windows.Graphics.Printing.PrintDuplex)
    @duplex.setter
    @abstractmethod
    def duplex(self, value: PrintDuplex) -> None: ...
    # Windows.Graphics.Printing.PrintHolePunch Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_HolePunch()
    @_property
    @abstractmethod
    def hole_punch(self) -> PrintHolePunch: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_HolePunch(Windows.Graphics.Printing.PrintHolePunch)
    @hole_punch.setter
    @abstractmethod
    def hole_punch(self, value: PrintHolePunch) -> None: ...
    # System.UInt32 Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_MaxCopies()
    @_property
    @abstractmethod
    def max_copies(self) -> winrt.system.UInt32: ...
    # Windows.Graphics.Printing.PrintMediaSize Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_MediaSize()
    @_property
    @abstractmethod
    def media_size(self) -> PrintMediaSize: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_MediaSize(Windows.Graphics.Printing.PrintMediaSize)
    @media_size.setter
    @abstractmethod
    def media_size(self, value: PrintMediaSize) -> None: ...
    # Windows.Graphics.Printing.PrintMediaType Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_MediaType()
    @_property
    @abstractmethod
    def media_type(self) -> PrintMediaType: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_MediaType(Windows.Graphics.Printing.PrintMediaType)
    @media_type.setter
    @abstractmethod
    def media_type(self, value: PrintMediaType) -> None: ...
    # System.UInt32 Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_MinCopies()
    @_property
    @abstractmethod
    def min_copies(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_NumberOfCopies()
    @_property
    @abstractmethod
    def number_of_copies(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_NumberOfCopies(System.UInt32)
    @number_of_copies.setter
    @abstractmethod
    def number_of_copies(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Graphics.Printing.PrintOrientation Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_Orientation()
    @_property
    @abstractmethod
    def orientation(self) -> PrintOrientation: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_Orientation(Windows.Graphics.Printing.PrintOrientation)
    @orientation.setter
    @abstractmethod
    def orientation(self, value: PrintOrientation) -> None: ...
    # Windows.Graphics.Printing.PrintQuality Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_PrintQuality()
    @_property
    @abstractmethod
    def print_quality(self) -> PrintQuality: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_PrintQuality(Windows.Graphics.Printing.PrintQuality)
    @print_quality.setter
    @abstractmethod
    def print_quality(self, value: PrintQuality) -> None: ...
    # Windows.Graphics.Printing.PrintStaple Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::get_Staple()
    @_property
    @abstractmethod
    def staple(self) -> PrintStaple: ...
    # System.Void Windows.Graphics.Printing.IPrintTaskOptionsCoreProperties::put_Staple(Windows.Graphics.Printing.PrintStaple)
    @staple.setter
    @abstractmethod
    def staple(self, value: PrintStaple) -> None: ...

@typing.final
class _IPrintTaskOptionsCoreUIConfiguration: ...

class IPrintTaskOptionsCoreUIConfiguration(winrt._winrt.IInspectable):
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Graphics.Printing.IPrintTaskOptionsCoreUIConfiguration::get_DisplayedOptions()
    @_property
    @abstractmethod
    def displayed_options(self) -> typing.MutableSequence[str]: ...

