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

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

try:
    import winsdk.windows.graphics.printing
except Exception:
    pass

try:
    import winsdk.windows.storage.streams
except Exception:
    pass

class PrintOptionStates(enum.IntFlag):
    NONE = 0
    ENABLED = 0x1
    CONSTRAINED = 0x2

class PrintOptionType(enum.IntEnum):
    UNKNOWN = 0
    NUMBER = 1
    TEXT = 2
    ITEM_LIST = 3
    TOGGLE = 4

class PrintBindingOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintBindingOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintBorderingOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintBorderingOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintCollationOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintCollationOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintColorModeOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintColorModeOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintCopiesOptionDetails(IPrintOptionDetails, IPrintNumberOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    max_value: _winrt.UInt32
    min_value: _winrt.UInt32
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintCopiesOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintCustomItemDetails(_winrt.Object):
    item_display_name: str
    item_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintCustomItemDetails: ...

class PrintCustomItemListOptionDetails(IPrintOptionDetails, IPrintCustomOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    display_name: str
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintCustomItemListOptionDetails: ...
    @typing.overload
    def add_item(self, item_id: str, display_name: str) -> None: ...
    @typing.overload
    def add_item(self, item_id: str, display_name: str, description: str, icon: winsdk.windows.storage.streams.IRandomAccessStreamWithContentType) -> None: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintCustomTextOptionDetails(IPrintOptionDetails, IPrintCustomOptionDetails, _winrt.Object):
    display_name: str
    max_characters: _winrt.UInt32
    warning_text: str
    description: str
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintCustomTextOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintCustomToggleOptionDetails(IPrintOptionDetails, IPrintCustomOptionDetails, _winrt.Object):
    display_name: str
    warning_text: str
    description: str
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintCustomToggleOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintDuplexOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintDuplexOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintHolePunchOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    warning_text: str
    description: str
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintHolePunchOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintMediaSizeOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    warning_text: str
    description: str
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintMediaSizeOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintMediaTypeOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    warning_text: str
    description: str
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintMediaTypeOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintOrientationOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    warning_text: str
    description: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintOrientationOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintPageRangeOptionDetails(IPrintOptionDetails, _winrt.Object):
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    warning_text: str
    description: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintPageRangeOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintQualityOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    warning_text: str
    description: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintQualityOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintStapleOptionDetails(IPrintOptionDetails, IPrintItemListOptionDetails, _winrt.Object):
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    state: PrintOptionStates
    error_text: str
    option_id: str
    option_type: PrintOptionType
    value: _winrt.Object
    warning_text: str
    description: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintStapleOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class PrintTaskOptionChangedEventArgs(_winrt.Object):
    option_id: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintTaskOptionChangedEventArgs: ...

class PrintTaskOptionDetails(winsdk.windows.graphics.printing.IPrintTaskOptionsCore, winsdk.windows.graphics.printing.IPrintTaskOptionsCoreUIConfiguration, _winrt.Object):
    displayed_options: winsdk.windows.foundation.collections.IVector[str]
    options: winsdk.windows.foundation.collections.IMapView[str, IPrintOptionDetails]
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintTaskOptionDetails: ...
    @typing.overload
    def create_item_list_option(self, option_id: str, display_name: str) -> PrintCustomItemListOptionDetails: ...
    @typing.overload
    def create_text_option(self, option_id: str, display_name: str) -> PrintCustomTextOptionDetails: ...
    @typing.overload
    def create_toggle_option(self, option_id: str, display_name: str) -> PrintCustomToggleOptionDetails: ...
    @typing.overload
    @staticmethod
    def get_from_print_task_options(print_task_options: winsdk.windows.graphics.printing.PrintTaskOptions) -> PrintTaskOptionDetails: ...
    @typing.overload
    def get_page_description(self, job_page_number: _winrt.UInt32) -> winsdk.windows.graphics.printing.PrintPageDescription: ...
    @typing.overload
    def add_begin_validation(self, event_handler: winsdk.windows.foundation.TypedEventHandler[PrintTaskOptionDetails, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_begin_validation(self, event_cookie: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_option_changed(self, event_handler: winsdk.windows.foundation.TypedEventHandler[PrintTaskOptionDetails, PrintTaskOptionChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_option_changed(self, event_cookie: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class IPrintCustomOptionDetails(IPrintOptionDetails, _winrt.Object):
    display_name: str
    error_text: str
    option_id: str
    option_type: PrintOptionType
    state: PrintOptionStates
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> IPrintCustomOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class IPrintItemListOptionDetails(IPrintOptionDetails, _winrt.Object):
    items: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]
    error_text: str
    option_id: str
    option_type: PrintOptionType
    state: PrintOptionStates
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> IPrintItemListOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class IPrintNumberOptionDetails(IPrintOptionDetails, _winrt.Object):
    max_value: _winrt.UInt32
    min_value: _winrt.UInt32
    error_text: str
    option_id: str
    option_type: PrintOptionType
    state: PrintOptionStates
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> IPrintNumberOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class IPrintOptionDetails(_winrt.Object):
    error_text: str
    option_id: str
    option_type: PrintOptionType
    state: PrintOptionStates
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> IPrintOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

class IPrintTextOptionDetails(IPrintOptionDetails, _winrt.Object):
    max_characters: _winrt.UInt32
    error_text: str
    option_id: str
    option_type: PrintOptionType
    state: PrintOptionStates
    value: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> IPrintTextOptionDetails: ...
    @typing.overload
    def try_set_value(self, value: _winrt.Object) -> _winrt.Boolean: ...

