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

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.applicationmodel
import winsdk.windows.applicationmodel.activation
import winsdk.windows.data.xml.dom
import winsdk.windows.devices.printers
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.graphics.printing.printticket
import winsdk.windows.system
import winsdk.windows.ui.shell

class SettingsLaunchKind(enum.IntEnum):
    JOB_PRINT_TICKET = 0
    USER_DEFAULT_PRINT_TICKET = 1

class WorkflowPrintTicketValidationStatus(enum.IntEnum):
    RESOLVED = 0
    CONFLICTING = 1
    INVALID = 2

Self = typing.TypeVar('Self')

class PrintSupportExtensionSession(_winrt.Object):
    printer: typing.Optional[winsdk.windows.devices.printers.IppPrintDevice]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportExtensionSession: ...
    def start(self) -> None: ...
    def add_print_device_capabilities_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PrintSupportExtensionSession, PrintSupportPrintDeviceCapabilitiesChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_print_device_capabilities_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_print_ticket_validation_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[PrintSupportExtensionSession, PrintSupportPrintTicketValidationRequestedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_print_ticket_validation_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_printer_selected(self, handler: winsdk.windows.foundation.TypedEventHandler[PrintSupportExtensionSession, PrintSupportPrinterSelectedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_printer_selected(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PrintSupportExtensionTriggerDetails(_winrt.Object):
    session: typing.Optional[PrintSupportExtensionSession]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportExtensionTriggerDetails: ...

class PrintSupportPrintDeviceCapabilitiesChangedEventArgs(_winrt.Object):
    resource_language: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportPrintDeviceCapabilitiesChangedEventArgs: ...
    def get_current_print_device_capabilities(self) -> typing.Optional[winsdk.windows.data.xml.dom.XmlDocument]: ...
    def get_current_print_device_resources(self) -> typing.Optional[winsdk.windows.data.xml.dom.XmlDocument]: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...
    def set_print_device_capabilities_update_policy(self, update_policy: typing.Optional[PrintSupportPrintDeviceCapabilitiesUpdatePolicy]) -> None: ...
    def set_supported_pdl_passthrough_content_types(self, supported_pdl_content_types: typing.Iterable[str]) -> None: ...
    def update_print_device_capabilities(self, updated_pdc: typing.Optional[winsdk.windows.data.xml.dom.XmlDocument]) -> None: ...
    def update_print_device_resources(self, updated_pdr: typing.Optional[winsdk.windows.data.xml.dom.XmlDocument]) -> None: ...

class PrintSupportPrintDeviceCapabilitiesUpdatePolicy(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportPrintDeviceCapabilitiesUpdatePolicy: ...
    @staticmethod
    def create_periodic_refresh(update_period: datetime.timedelta) -> typing.Optional[PrintSupportPrintDeviceCapabilitiesUpdatePolicy]: ...
    @staticmethod
    def create_print_job_refresh(number_of_jobs: _winrt.UInt32) -> typing.Optional[PrintSupportPrintDeviceCapabilitiesUpdatePolicy]: ...

class PrintSupportPrintTicketElement(_winrt.Object):
    namespace_uri: str
    local_name: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportPrintTicketElement: ...
    def __new__(cls: typing.Type[PrintSupportPrintTicketElement]) -> PrintSupportPrintTicketElement:...

class PrintSupportPrintTicketValidationRequestedEventArgs(_winrt.Object):
    print_ticket: typing.Optional[winsdk.windows.graphics.printing.printticket.WorkflowPrintTicket]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportPrintTicketValidationRequestedEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...
    def set_print_ticket_validation_status(self, status: WorkflowPrintTicketValidationStatus) -> None: ...

class PrintSupportPrinterSelectedEventArgs(_winrt.Object):
    print_ticket: typing.Optional[winsdk.windows.graphics.printing.printticket.WorkflowPrintTicket]
    allowed_additional_features_and_parameters_count: _winrt.UInt32
    source_app_info: typing.Optional[winsdk.windows.applicationmodel.AppInfo]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportPrinterSelectedEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...
    def set_adaptive_card(self, adaptive_card: typing.Optional[winsdk.windows.ui.shell.IAdaptiveCard]) -> None: ...
    def set_additional_features(self, features: typing.Iterable[PrintSupportPrintTicketElement]) -> None: ...
    def set_additional_parameters(self, parameters: typing.Iterable[PrintSupportPrintTicketElement]) -> None: ...

class PrintSupportSessionInfo(_winrt.Object):
    printer: typing.Optional[winsdk.windows.devices.printers.IppPrintDevice]
    source_app_info: typing.Optional[winsdk.windows.applicationmodel.AppInfo]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportSessionInfo: ...

class PrintSupportSettingsActivatedEventArgs(_winrt.Object):
    kind: winsdk.windows.applicationmodel.activation.ActivationKind
    previous_execution_state: winsdk.windows.applicationmodel.activation.ApplicationExecutionState
    splash_screen: typing.Optional[winsdk.windows.applicationmodel.activation.SplashScreen]
    user: typing.Optional[winsdk.windows.system.User]
    session: typing.Optional[PrintSupportSettingsUISession]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportSettingsActivatedEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class PrintSupportSettingsUISession(_winrt.Object):
    document_title: str
    launch_kind: SettingsLaunchKind
    session_info: typing.Optional[PrintSupportSessionInfo]
    session_print_ticket: typing.Optional[winsdk.windows.graphics.printing.printticket.WorkflowPrintTicket]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSupportSettingsUISession: ...
    def update_print_ticket(self, print_ticket: typing.Optional[winsdk.windows.graphics.printing.printticket.WorkflowPrintTicket]) -> None: ...

