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

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.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.graphics.printing.printticket as windows_graphics_printing_printticket
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.devices.printers import IppAttributeErrorReason, IppAttributeValueKind, IppPrintDeviceKind, IppResolutionUnit, PageConfigurationSource, VirtualPrinterInstallationStatus, VirtualPrinterPreferredInputFormat

Self = typing.TypeVar('Self')

@typing.final
class IppAttributeError(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Printers.IppAttributeValue> Windows.Devices.Printers.IppAttributeError::GetUnsupportedValues()
    def get_unsupported_values(self) -> typing.Sequence[IppAttributeValue]: ...
    # Windows.Foundation.HResult Windows.Devices.Printers.IppAttributeError::get_ExtendedError()
    @_property
    def extended_error(self) -> windows_foundation.HResult: ...
    # Windows.Devices.Printers.IppAttributeErrorReason Windows.Devices.Printers.IppAttributeError::get_Reason()
    @_property
    def reason(self) -> IppAttributeErrorReason: ...

@typing.final
class IppAttributeValue_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateBoolean(System.Boolean)
    def create_boolean(cls, value: bool, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateBooleanArray(Windows.Foundation.Collections.IIterable`1<System.Boolean>)
    def create_boolean_array(cls, values: typing.Iterable[bool], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateCharset(System.String)
    def create_charset(cls, value: str, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateCharsetArray(Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_charset_array(cls, values: typing.Iterable[str], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateCollection(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,Windows.Devices.Printers.IppAttributeValue>>)
    def create_collection(cls, member_attributes: typing.Iterable[windows_foundation_collections.IKeyValuePair[str, IppAttributeValue]], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateCollectionArray(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,Windows.Devices.Printers.IppAttributeValue>>>)
    def create_collection_array(cls, member_attributes_array: typing.Iterable[typing.Iterable[windows_foundation_collections.IKeyValuePair[str, IppAttributeValue]]], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateDateTime(Windows.Foundation.DateTime)
    def create_date_time(cls, value: datetime.datetime, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateDateTimeArray(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.DateTime>)
    def create_date_time_array(cls, values: typing.Iterable[datetime.datetime], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateEnum(System.Int32)
    def create_enum(cls, value: winrt.system.Int32, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateEnumArray(Windows.Foundation.Collections.IIterable`1<System.Int32>)
    def create_enum_array(cls, values: typing.Iterable[winrt.system.Int32], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateInteger(System.Int32)
    def create_integer(cls, value: winrt.system.Int32, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateIntegerArray(Windows.Foundation.Collections.IIterable`1<System.Int32>)
    def create_integer_array(cls, values: typing.Iterable[winrt.system.Int32], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateKeyword(System.String)
    def create_keyword(cls, value: str, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateKeywordArray(Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_keyword_array(cls, values: typing.Iterable[str], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateMimeMedia(System.String)
    def create_mime_media(cls, value: str, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateMimeMediaArray(Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_mime_media_array(cls, values: typing.Iterable[str], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateNameWithLanguage(Windows.Devices.Printers.IppTextWithLanguage)
    def create_name_with_language(cls, value: IppTextWithLanguage, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateNameWithLanguageArray(Windows.Foundation.Collections.IIterable`1<Windows.Devices.Printers.IppTextWithLanguage>)
    def create_name_with_language_array(cls, values: typing.Iterable[IppTextWithLanguage], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateNameWithoutLanguage(System.String)
    def create_name_without_language(cls, value: str, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateNameWithoutLanguageArray(Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_name_without_language_array(cls, values: typing.Iterable[str], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateNaturalLanguage(System.String)
    def create_natural_language(cls, value: str, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateNaturalLanguageArray(Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_natural_language_array(cls, values: typing.Iterable[str], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateNoValue()
    def create_no_value(cls) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateOctetString(Windows.Storage.Streams.IBuffer)
    def create_octet_string(cls, value: windows_storage_streams.IBuffer, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateOctetStringArray(Windows.Foundation.Collections.IIterable`1<Windows.Storage.Streams.IBuffer>)
    def create_octet_string_array(cls, values: typing.Iterable[windows_storage_streams.IBuffer], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateRangeOfInteger(Windows.Devices.Printers.IppIntegerRange)
    def create_range_of_integer(cls, value: IppIntegerRange, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateRangeOfIntegerArray(Windows.Foundation.Collections.IIterable`1<Windows.Devices.Printers.IppIntegerRange>)
    def create_range_of_integer_array(cls, values: typing.Iterable[IppIntegerRange], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateResolution(Windows.Devices.Printers.IppResolution)
    def create_resolution(cls, value: IppResolution, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateResolutionArray(Windows.Foundation.Collections.IIterable`1<Windows.Devices.Printers.IppResolution>)
    def create_resolution_array(cls, values: typing.Iterable[IppResolution], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateTextWithLanguage(Windows.Devices.Printers.IppTextWithLanguage)
    def create_text_with_language(cls, value: IppTextWithLanguage, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateTextWithLanguageArray(Windows.Foundation.Collections.IIterable`1<Windows.Devices.Printers.IppTextWithLanguage>)
    def create_text_with_language_array(cls, values: typing.Iterable[IppTextWithLanguage], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateTextWithoutLanguage(System.String)
    def create_text_without_language(cls, value: str, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateTextWithoutLanguageArray(Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_text_without_language_array(cls, values: typing.Iterable[str], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateUnknown()
    def create_unknown(cls) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateUnsupported()
    def create_unsupported(cls) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateUri(Windows.Foundation.Uri)
    def create_uri(cls, value: windows_foundation.Uri, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateUriArray(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Uri>)
    def create_uri_array(cls, values: typing.Iterable[windows_foundation.Uri], /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateUriSchema(System.String)
    def create_uri_schema(cls, value: str, /) -> IppAttributeValue: ...
    # Windows.Devices.Printers.IppAttributeValue Windows.Devices.Printers.IppAttributeValue::CreateUriSchemaArray(Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_uri_schema_array(cls, values: typing.Iterable[str], /) -> IppAttributeValue: ...

@typing.final
class IppAttributeValue(winrt.system.Object, metaclass=IppAttributeValue_Static):
    # Windows.Foundation.Collections.IVector`1<System.Boolean> Windows.Devices.Printers.IppAttributeValue::GetBooleanArray()
    def get_boolean_array(self) -> typing.MutableSequence[bool]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.IppAttributeValue::GetCharsetArray()
    def get_charset_array(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Foundation.Collections.IMapView`2<System.String,Windows.Devices.Printers.IppAttributeValue>> Windows.Devices.Printers.IppAttributeValue::GetCollectionArray()
    def get_collection_array(self) -> typing.MutableSequence[typing.Mapping[str, IppAttributeValue]]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Foundation.DateTime> Windows.Devices.Printers.IppAttributeValue::GetDateTimeArray()
    def get_date_time_array(self) -> typing.MutableSequence[datetime.datetime]: ...
    # Windows.Foundation.Collections.IVector`1<System.Int32> Windows.Devices.Printers.IppAttributeValue::GetEnumArray()
    def get_enum_array(self) -> typing.MutableSequence[winrt.system.Int32]: ...
    # Windows.Foundation.Collections.IVector`1<System.Int32> Windows.Devices.Printers.IppAttributeValue::GetIntegerArray()
    def get_integer_array(self) -> typing.MutableSequence[winrt.system.Int32]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.IppAttributeValue::GetKeywordArray()
    def get_keyword_array(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.IppAttributeValue::GetMimeMediaTypeArray()
    def get_mime_media_type_array(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Printers.IppTextWithLanguage> Windows.Devices.Printers.IppAttributeValue::GetNameWithLanguageArray()
    def get_name_with_language_array(self) -> typing.MutableSequence[IppTextWithLanguage]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.IppAttributeValue::GetNameWithoutLanguageArray()
    def get_name_without_language_array(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.IppAttributeValue::GetNaturalLanguageArray()
    def get_natural_language_array(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Storage.Streams.IBuffer> Windows.Devices.Printers.IppAttributeValue::GetOctetStringArray()
    def get_octet_string_array(self) -> typing.MutableSequence[windows_storage_streams.IBuffer]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Printers.IppIntegerRange> Windows.Devices.Printers.IppAttributeValue::GetRangeOfIntegerArray()
    def get_range_of_integer_array(self) -> typing.MutableSequence[IppIntegerRange]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Printers.IppResolution> Windows.Devices.Printers.IppAttributeValue::GetResolutionArray()
    def get_resolution_array(self) -> typing.MutableSequence[IppResolution]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Printers.IppTextWithLanguage> Windows.Devices.Printers.IppAttributeValue::GetTextWithLanguageArray()
    def get_text_with_language_array(self) -> typing.MutableSequence[IppTextWithLanguage]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.IppAttributeValue::GetTextWithoutLanguageArray()
    def get_text_without_language_array(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Foundation.Uri> Windows.Devices.Printers.IppAttributeValue::GetUriArray()
    def get_uri_array(self) -> typing.MutableSequence[windows_foundation.Uri]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.IppAttributeValue::GetUriSchemaArray()
    def get_uri_schema_array(self) -> typing.MutableSequence[str]: ...
    # Windows.Devices.Printers.IppAttributeValueKind Windows.Devices.Printers.IppAttributeValue::get_Kind()
    @_property
    def kind(self) -> IppAttributeValueKind: ...

@typing.final
class IppIntegerRange(winrt.system.Object):
    def __new__(cls: typing.Type[Self], start: winrt.system.Int32, end: winrt.system.Int32) -> Self: ...
    # System.Int32 Windows.Devices.Printers.IppIntegerRange::get_End()
    @_property
    def end(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Printers.IppIntegerRange::get_Start()
    @_property
    def start(self) -> winrt.system.Int32: ...

@typing.final
class IppPrintDevice_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Printers.IppPrintDevice Windows.Devices.Printers.IppPrintDevice::FromId(System.String)
    def from_id(cls, device_id: str, /) -> IppPrintDevice: ...
    # Windows.Devices.Printers.IppPrintDevice Windows.Devices.Printers.IppPrintDevice::FromPrinterName(System.String)
    def from_printer_name(cls, printer_name: str, /) -> IppPrintDevice: ...
    # System.String Windows.Devices.Printers.IppPrintDevice::GetDeviceSelector()
    def get_device_selector(cls) -> str: ...
    # System.Boolean Windows.Devices.Printers.IppPrintDevice::IsIppPrinter(System.String)
    def is_ipp_printer(cls, printer_name: str, /) -> bool: ...

@typing.final
class IppPrintDevice(winrt.system.Object, metaclass=IppPrintDevice_Static):
    # System.UInt64 Windows.Devices.Printers.IppPrintDevice::GetMaxSupportedPdfSize()
    def get_max_supported_pdf_size(self) -> winrt.system.UInt64: ...
    # System.String Windows.Devices.Printers.IppPrintDevice::GetMaxSupportedPdfVersion()
    def get_max_supported_pdf_version(self) -> str: ...
    # System.String Windows.Devices.Printers.IppPrintDevice::GetMaxSupportedPdlVersion(System.String)
    def get_max_supported_pdl_version(self, pdl_content_type: str, /) -> str: ...
    # Windows.Devices.Printers.PdlPassthroughProvider Windows.Devices.Printers.IppPrintDevice::GetPdlPassthroughProvider()
    def get_pdl_passthrough_provider(self) -> PdlPassthroughProvider: ...
    # Windows.Foundation.Collections.IMap`2<System.String,Windows.Devices.Printers.IppAttributeValue> Windows.Devices.Printers.IppPrintDevice::GetPrinterAttributes(Windows.Foundation.Collections.IIterable`1<System.String>)
    def get_printer_attributes(self, attribute_names: typing.Iterable[str], /) -> typing.MutableMapping[str, IppAttributeValue]: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.Printers.IppPrintDevice::GetPrinterAttributesAsBuffer(Windows.Foundation.Collections.IIterable`1<System.String>)
    def get_printer_attributes_as_buffer(self, attribute_names: typing.Iterable[str], /) -> windows_storage_streams.IBuffer: ...
    # System.Boolean Windows.Devices.Printers.IppPrintDevice::IsPdlPassthroughSupported(System.String)
    def is_pdl_passthrough_supported(self, pdl_content_type: str, /) -> bool: ...
    # System.Void Windows.Devices.Printers.IppPrintDevice::RefreshPrintDeviceCapabilities()
    def refresh_print_device_capabilities(self) -> None: ...
    # Windows.Devices.Printers.IppSetAttributesResult Windows.Devices.Printers.IppPrintDevice::SetPrinterAttributes(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,Windows.Devices.Printers.IppAttributeValue>>)
    def set_printer_attributes(self, printer_attributes: typing.Iterable[windows_foundation_collections.IKeyValuePair[str, IppAttributeValue]], /) -> IppSetAttributesResult: ...
    # Windows.Devices.Printers.IppSetAttributesResult Windows.Devices.Printers.IppPrintDevice::SetPrinterAttributesFromBuffer(Windows.Storage.Streams.IBuffer)
    def set_printer_attributes_from_buffer(self, printer_attributes_buffer: windows_storage_streams.IBuffer, /) -> IppSetAttributesResult: ...
    # System.String Windows.Devices.Printers.IppPrintDevice::get_PrinterName()
    @_property
    def printer_name(self) -> str: ...
    # Windows.Foundation.Uri Windows.Devices.Printers.IppPrintDevice::get_PrinterUri()
    @_property
    def printer_uri(self) -> windows_foundation.Uri: ...
    # System.Boolean Windows.Devices.Printers.IppPrintDevice::get_IsIppFaxOutPrinter()
    @_property
    def is_ipp_fax_out_printer(self) -> bool: ...
    # Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket Windows.Devices.Printers.IppPrintDevice::get_UserDefaultPrintTicket()
    @_property
    def user_default_print_ticket(self) -> windows_graphics_printing_printticket.WorkflowPrintTicket: ...
    # System.Void Windows.Devices.Printers.IppPrintDevice::put_UserDefaultPrintTicket(Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket)
    @user_default_print_ticket.setter
    def user_default_print_ticket(self, value: windows_graphics_printing_printticket.WorkflowPrintTicket) -> None: ...
    # System.Boolean Windows.Devices.Printers.IppPrintDevice::get_CanModifyUserDefaultPrintTicket()
    @_property
    def can_modify_user_default_print_ticket(self) -> bool: ...
    # Windows.Devices.Printers.IppPrintDeviceKind Windows.Devices.Printers.IppPrintDevice::get_DeviceKind()
    @_property
    def device_kind(self) -> IppPrintDeviceKind: ...

@typing.final
class IppResolution(winrt.system.Object):
    def __new__(cls: typing.Type[Self], width: winrt.system.Int32, height: winrt.system.Int32, unit: IppResolutionUnit) -> Self: ...
    # System.Int32 Windows.Devices.Printers.IppResolution::get_Height()
    @_property
    def height(self) -> winrt.system.Int32: ...
    # Windows.Devices.Printers.IppResolutionUnit Windows.Devices.Printers.IppResolution::get_Unit()
    @_property
    def unit(self) -> IppResolutionUnit: ...
    # System.Int32 Windows.Devices.Printers.IppResolution::get_Width()
    @_property
    def width(self) -> winrt.system.Int32: ...

@typing.final
class IppSetAttributesResult(winrt.system.Object):
    # Windows.Foundation.Collections.IMapView`2<System.String,Windows.Devices.Printers.IppAttributeError> Windows.Devices.Printers.IppSetAttributesResult::get_AttributeErrors()
    @_property
    def attribute_errors(self) -> typing.Mapping[str, IppAttributeError]: ...
    # System.Boolean Windows.Devices.Printers.IppSetAttributesResult::get_Succeeded()
    @_property
    def succeeded(self) -> bool: ...

@typing.final
class IppTextWithLanguage(winrt.system.Object):
    def __new__(cls: typing.Type[Self], language: str, text: str) -> Self: ...
    # System.String Windows.Devices.Printers.IppTextWithLanguage::get_Language()
    @_property
    def language(self) -> str: ...
    # System.String Windows.Devices.Printers.IppTextWithLanguage::get_Value()
    @_property
    def value(self) -> str: ...

@typing.final
class PageConfigurationSettings(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Devices.Printers.PageConfigurationSource Windows.Devices.Printers.PageConfigurationSettings::get_SizeSource()
    @_property
    def size_source(self) -> PageConfigurationSource: ...
    # System.Void Windows.Devices.Printers.PageConfigurationSettings::put_SizeSource(Windows.Devices.Printers.PageConfigurationSource)
    @size_source.setter
    def size_source(self, value: PageConfigurationSource) -> None: ...
    # Windows.Devices.Printers.PageConfigurationSource Windows.Devices.Printers.PageConfigurationSettings::get_OrientationSource()
    @_property
    def orientation_source(self) -> PageConfigurationSource: ...
    # System.Void Windows.Devices.Printers.PageConfigurationSettings::put_OrientationSource(Windows.Devices.Printers.PageConfigurationSource)
    @orientation_source.setter
    def orientation_source(self, value: PageConfigurationSource) -> None: ...

@typing.final
class PdlPassthroughProvider(winrt.system.Object):
    # Windows.Devices.Printers.PdlPassthroughTarget Windows.Devices.Printers.PdlPassthroughProvider::StartPrintJobWithPrintTicket(System.String,System.String,Windows.Storage.Streams.IInputStream,Windows.Devices.Printers.PageConfigurationSettings)
    def start_print_job_with_print_ticket(self, job_name: str, pdl_content_type: str, print_ticket: windows_storage_streams.IInputStream, page_configuration_settings: PageConfigurationSettings, /) -> PdlPassthroughTarget: ...
    # Windows.Devices.Printers.PdlPassthroughTarget Windows.Devices.Printers.PdlPassthroughProvider::StartPrintJobWithTaskOptions(System.String,System.String,Windows.Graphics.Printing.PrintTaskOptions,Windows.Devices.Printers.PageConfigurationSettings)
    def start_print_job_with_task_options(self, job_name: str, pdl_content_type: str, task_options: windows_graphics_printing.PrintTaskOptions, page_configuration_settings: PageConfigurationSettings, /) -> PdlPassthroughTarget: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Devices.Printers.PdlPassthroughProvider::get_SupportedPdlContentTypes()
    @_property
    def supported_pdl_content_types(self) -> typing.Sequence[str]: ...

@typing.final
class PdlPassthroughTarget(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Devices.Printers.PdlPassthroughTarget::Close()
    def close(self) -> None: ...
    # Windows.Storage.Streams.IOutputStream Windows.Devices.Printers.PdlPassthroughTarget::GetOutputStream()
    def get_output_stream(self) -> windows_storage_streams.IOutputStream: ...
    # System.Void Windows.Devices.Printers.PdlPassthroughTarget::Submit()
    def submit(self) -> None: ...
    # System.Int32 Windows.Devices.Printers.PdlPassthroughTarget::get_PrintJobId()
    @_property
    def print_job_id(self) -> winrt.system.Int32: ...

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

@typing.final
class Print3DDevice(winrt.system.Object, metaclass=Print3DDevice_Static):
    # Windows.Devices.Printers.PrintSchema Windows.Devices.Printers.Print3DDevice::get_PrintSchema()
    @_property
    def print_schema(self) -> PrintSchema: ...

@typing.final
class PrintSchema(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IRandomAccessStreamWithContentType> Windows.Devices.Printers.PrintSchema::GetCapabilitiesAsync(Windows.Storage.Streams.IRandomAccessStreamWithContentType)
    def get_capabilities_async(self, constrain_ticket: windows_storage_streams.IRandomAccessStreamWithContentType, /) -> windows_foundation.IAsyncOperation[windows_storage_streams.IRandomAccessStreamWithContentType]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IRandomAccessStreamWithContentType> Windows.Devices.Printers.PrintSchema::GetDefaultPrintTicketAsync()
    def get_default_print_ticket_async(self) -> windows_foundation.IAsyncOperation[windows_storage_streams.IRandomAccessStreamWithContentType]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IRandomAccessStreamWithContentType> Windows.Devices.Printers.PrintSchema::MergeAndValidateWithDefaultPrintTicketAsync(Windows.Storage.Streams.IRandomAccessStreamWithContentType)
    def merge_and_validate_with_default_print_ticket_async(self, delta_ticket: windows_storage_streams.IRandomAccessStreamWithContentType, /) -> windows_foundation.IAsyncOperation[windows_storage_streams.IRandomAccessStreamWithContentType]: ...

@typing.final
class VirtualPrinterInstallationParameters(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Uri Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_PrinterUri()
    @_property
    def printer_uri(self) -> windows_foundation.Uri: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterInstallationParameters::put_PrinterUri(Windows.Foundation.Uri)
    @printer_uri.setter
    def printer_uri(self, value: windows_foundation.Uri) -> None: ...
    # System.String Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_PrinterName()
    @_property
    def printer_name(self) -> str: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterInstallationParameters::put_PrinterName(System.String)
    @printer_name.setter
    def printer_name(self, value: str) -> None: ...
    # System.String Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_PrintDeviceResourcesPackageRelativeFilePath()
    @_property
    def print_device_resources_package_relative_file_path(self) -> str: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterInstallationParameters::put_PrintDeviceResourcesPackageRelativeFilePath(System.String)
    @print_device_resources_package_relative_file_path.setter
    def print_device_resources_package_relative_file_path(self, value: str) -> None: ...
    # System.String Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_PrintDeviceCapabilitiesPackageRelativeFilePath()
    @_property
    def print_device_capabilities_package_relative_file_path(self) -> str: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterInstallationParameters::put_PrintDeviceCapabilitiesPackageRelativeFilePath(System.String)
    @print_device_capabilities_package_relative_file_path.setter
    def print_device_capabilities_package_relative_file_path(self, value: str) -> None: ...
    # Windows.Devices.Printers.VirtualPrinterPreferredInputFormat Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_PreferredInputFormat()
    @_property
    def preferred_input_format(self) -> VirtualPrinterPreferredInputFormat: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterInstallationParameters::put_PreferredInputFormat(Windows.Devices.Printers.VirtualPrinterPreferredInputFormat)
    @preferred_input_format.setter
    def preferred_input_format(self, value: VirtualPrinterPreferredInputFormat) -> None: ...
    # System.String Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_EntryPoint()
    @_property
    def entry_point(self) -> str: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterInstallationParameters::put_EntryPoint(System.String)
    @entry_point.setter
    def entry_point(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_OutputFileExtensions()
    @_property
    def output_file_extensions(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Printers.VirtualPrinterSupportedFormat> Windows.Devices.Printers.VirtualPrinterInstallationParameters::get_SupportedInputFormats()
    @_property
    def supported_input_formats(self) -> typing.MutableSequence[VirtualPrinterSupportedFormat]: ...

@typing.final
class VirtualPrinterInstallationResult(winrt.system.Object):
    # Windows.Foundation.HResult Windows.Devices.Printers.VirtualPrinterInstallationResult::get_ExtendedError()
    @_property
    def extended_error(self) -> windows_foundation.HResult: ...
    # Windows.Devices.Printers.VirtualPrinterInstallationStatus Windows.Devices.Printers.VirtualPrinterInstallationResult::get_Status()
    @_property
    def status(self) -> VirtualPrinterInstallationStatus: ...

@typing.final
class VirtualPrinterManager_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Devices.Printers.VirtualPrinterManager::FindAllVirtualPrinters()
    def find_all_virtual_printers(cls) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Devices.Printers.VirtualPrinterManager::FindAllVirtualPrinters(System.String)
    def find_all_virtual_printers2(cls, app_package_family_name: str, /) -> typing.Sequence[str]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Printers.VirtualPrinterInstallationResult> Windows.Devices.Printers.VirtualPrinterManager::InstallVirtualPrinterAsync(Windows.Devices.Printers.VirtualPrinterInstallationParameters)
    def install_virtual_printer_async(cls, parameters: VirtualPrinterInstallationParameters, /) -> windows_foundation.IAsyncOperation[VirtualPrinterInstallationResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Printers.VirtualPrinterInstallationResult> Windows.Devices.Printers.VirtualPrinterManager::InstallVirtualPrinterAsync(Windows.Devices.Printers.VirtualPrinterInstallationParameters,System.String)
    def install_virtual_printer_async2(cls, parameters: VirtualPrinterInstallationParameters, app_package_family_name: str, /) -> windows_foundation.IAsyncOperation[VirtualPrinterInstallationResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Printers.VirtualPrinterInstallationResult> Windows.Devices.Printers.VirtualPrinterManager::InstallVirtualPrinterForAllUsersAsync(Windows.Devices.Printers.VirtualPrinterInstallationParameters)
    def install_virtual_printer_for_all_users_async(cls, parameters: VirtualPrinterInstallationParameters, /) -> windows_foundation.IAsyncOperation[VirtualPrinterInstallationResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Printers.VirtualPrinterInstallationResult> Windows.Devices.Printers.VirtualPrinterManager::InstallVirtualPrinterForAllUsersAsync(Windows.Devices.Printers.VirtualPrinterInstallationParameters,System.String)
    def install_virtual_printer_for_all_users_async2(cls, parameters: VirtualPrinterInstallationParameters, app_package_family_name: str, /) -> windows_foundation.IAsyncOperation[VirtualPrinterInstallationResult]: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Devices.Printers.VirtualPrinterManager::RemoveVirtualPrinterAsync(System.String)
    def remove_virtual_printer_async(cls, printer_name: str, /) -> windows_foundation.IAsyncOperation[bool]: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Devices.Printers.VirtualPrinterManager::RemoveVirtualPrinterForAllUsersAsync(System.String)
    def remove_virtual_printer_for_all_users_async(cls, printer_name: str, /) -> windows_foundation.IAsyncOperation[bool]: ...

@typing.final
class VirtualPrinterManager(winrt.system.Object, metaclass=VirtualPrinterManager_Static):
    pass

@typing.final
class VirtualPrinterSupportedFormat(winrt.system.Object):
    def __new__(cls: typing.Type[Self], content_type: str, max_supported_version: str) -> Self: ...
    # System.String Windows.Devices.Printers.VirtualPrinterSupportedFormat::get_MaxSupportedVersion()
    @_property
    def max_supported_version(self) -> str: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterSupportedFormat::put_MaxSupportedVersion(System.String)
    @max_supported_version.setter
    def max_supported_version(self, value: str) -> None: ...
    # System.String Windows.Devices.Printers.VirtualPrinterSupportedFormat::get_ContentType()
    @_property
    def content_type(self) -> str: ...
    # System.Void Windows.Devices.Printers.VirtualPrinterSupportedFormat::put_ContentType(System.String)
    @content_type.setter
    def content_type(self, value: str) -> None: ...

