# 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.storage.streams
except Exception:
    pass

class IppAttributeErrorReason(enum.IntEnum):
    REQUEST_ENTITY_TOO_LARGE = 0
    ATTRIBUTE_NOT_SUPPORTED = 1
    ATTRIBUTE_VALUES_NOT_SUPPORTED = 2
    ATTRIBUTE_NOT_SETTABLE = 3
    CONFLICTING_ATTRIBUTES = 4

class IppAttributeValueKind(enum.IntEnum):
    UNSUPPORTED = 0
    UNKNOWN = 1
    NO_VALUE = 2
    INTEGER = 3
    BOOLEAN = 4
    ENUM = 5
    OCTET_STRING = 6
    DATE_TIME = 7
    RESOLUTION = 8
    RANGE_OF_INTEGER = 9
    COLLECTION = 10
    TEXT_WITH_LANGUAGE = 11
    NAME_WITH_LANGUAGE = 12
    TEXT_WITHOUT_LANGUAGE = 13
    NAME_WITHOUT_LANGUAGE = 14
    KEYWORD = 15
    URI = 16
    URI_SCHEMA = 17
    CHARSET = 18
    NATURAL_LANGUAGE = 19
    MIME_MEDIA_TYPE = 20

class IppResolutionUnit(enum.IntEnum):
    DOTS_PER_INCH = 0
    DOTS_PER_CENTIMETER = 1

class IppAttributeError(_winrt.Object):
    extended_error: winsdk.windows.foundation.HResult
    reason: IppAttributeErrorReason
    @staticmethod
    def _from(obj: _winrt.Object) -> IppAttributeError: ...
    @typing.overload
    def get_unsupported_values(self) -> winsdk.windows.foundation.collections.IVectorView[IppAttributeValue]: ...

class IppAttributeValue(_winrt.Object):
    kind: IppAttributeValueKind
    @staticmethod
    def _from(obj: _winrt.Object) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_boolean(value: _winrt.Boolean) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_boolean_array(values: typing.Iterable[_winrt.Boolean]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_charset(value: str) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_charset_array(values: typing.Iterable[str]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_collection(member_attributes: typing.Iterable[winsdk.windows.foundation.collections.IKeyValuePair[str, IppAttributeValue]]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_collection_array(member_attributes_array: typing.Iterable[winsdk.windows.foundation.collections.IIterable[winsdk.windows.foundation.collections.IKeyValuePair[str, IppAttributeValue]]]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_date_time(value: winsdk.windows.foundation.DateTime) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_date_time_array(values: typing.Iterable[winsdk.windows.foundation.DateTime]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_enum(value: _winrt.Int32) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_enum_array(values: typing.Iterable[_winrt.Int32]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_integer(value: _winrt.Int32) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_integer_array(values: typing.Iterable[_winrt.Int32]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_keyword(value: str) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_keyword_array(values: typing.Iterable[str]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_mime_media(value: str) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_mime_media_array(values: typing.Iterable[str]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_name_with_language(value: IppTextWithLanguage) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_name_with_language_array(values: typing.Iterable[IppTextWithLanguage]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_name_without_language(value: str) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_name_without_language_array(values: typing.Iterable[str]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_natural_language(value: str) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_natural_language_array(values: typing.Iterable[str]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_no_value() -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_octet_string(value: winsdk.windows.storage.streams.IBuffer) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_octet_string_array(values: typing.Iterable[winsdk.windows.storage.streams.IBuffer]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_range_of_integer(value: IppIntegerRange) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_range_of_integer_array(values: typing.Iterable[IppIntegerRange]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_resolution(value: IppResolution) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_resolution_array(values: typing.Iterable[IppResolution]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_text_with_language(value: IppTextWithLanguage) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_text_with_language_array(values: typing.Iterable[IppTextWithLanguage]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_text_without_language(value: str) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_text_without_language_array(values: typing.Iterable[str]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_unknown() -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_unsupported() -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_uri(value: winsdk.windows.foundation.Uri) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_uri_array(values: typing.Iterable[winsdk.windows.foundation.Uri]) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_uri_schema(value: str) -> IppAttributeValue: ...
    @typing.overload
    @staticmethod
    def create_uri_schema_array(values: typing.Iterable[str]) -> IppAttributeValue: ...
    @typing.overload
    def get_boolean_array(self) -> winsdk.windows.foundation.collections.IVector[_winrt.Boolean]: ...
    @typing.overload
    def get_charset_array(self) -> winsdk.windows.foundation.collections.IVector[str]: ...
    @typing.overload
    def get_collection_array(self) -> winsdk.windows.foundation.collections.IVector[winsdk.windows.foundation.collections.IMapView[str, IppAttributeValue]]: ...
    @typing.overload
    def get_date_time_array(self) -> winsdk.windows.foundation.collections.IVector[winsdk.windows.foundation.DateTime]: ...
    @typing.overload
    def get_enum_array(self) -> winsdk.windows.foundation.collections.IVector[_winrt.Int32]: ...
    @typing.overload
    def get_integer_array(self) -> winsdk.windows.foundation.collections.IVector[_winrt.Int32]: ...
    @typing.overload
    def get_keyword_array(self) -> winsdk.windows.foundation.collections.IVector[str]: ...
    @typing.overload
    def get_mime_media_type_array(self) -> winsdk.windows.foundation.collections.IVector[str]: ...
    @typing.overload
    def get_name_with_language_array(self) -> winsdk.windows.foundation.collections.IVector[IppTextWithLanguage]: ...
    @typing.overload
    def get_name_without_language_array(self) -> winsdk.windows.foundation.collections.IVector[str]: ...
    @typing.overload
    def get_natural_language_array(self) -> winsdk.windows.foundation.collections.IVector[str]: ...
    @typing.overload
    def get_octet_string_array(self) -> winsdk.windows.foundation.collections.IVector[winsdk.windows.storage.streams.IBuffer]: ...
    @typing.overload
    def get_range_of_integer_array(self) -> winsdk.windows.foundation.collections.IVector[IppIntegerRange]: ...
    @typing.overload
    def get_resolution_array(self) -> winsdk.windows.foundation.collections.IVector[IppResolution]: ...
    @typing.overload
    def get_text_with_language_array(self) -> winsdk.windows.foundation.collections.IVector[IppTextWithLanguage]: ...
    @typing.overload
    def get_text_without_language_array(self) -> winsdk.windows.foundation.collections.IVector[str]: ...
    @typing.overload
    def get_uri_array(self) -> winsdk.windows.foundation.collections.IVector[winsdk.windows.foundation.Uri]: ...
    @typing.overload
    def get_uri_schema_array(self) -> winsdk.windows.foundation.collections.IVector[str]: ...

class IppIntegerRange(_winrt.Object):
    end: _winrt.Int32
    start: _winrt.Int32
    @staticmethod
    def _from(obj: _winrt.Object) -> IppIntegerRange: ...
    @typing.overload
    def __init__(self, start: _winrt.Int32, end: _winrt.Int32) -> None: ...

class IppPrintDevice(_winrt.Object):
    printer_name: str
    printer_uri: winsdk.windows.foundation.Uri
    @staticmethod
    def _from(obj: _winrt.Object) -> IppPrintDevice: ...
    @typing.overload
    def get_printer_attributes(self, attribute_names: typing.Iterable[str]) -> winsdk.windows.foundation.collections.IMap[str, IppAttributeValue]: ...
    @typing.overload
    def get_printer_attributes_as_buffer(self, attribute_names: typing.Iterable[str]) -> winsdk.windows.storage.streams.IBuffer: ...
    @typing.overload
    def set_printer_attributes(self, printer_attributes: typing.Iterable[winsdk.windows.foundation.collections.IKeyValuePair[str, IppAttributeValue]]) -> IppSetAttributesResult: ...
    @typing.overload
    def set_printer_attributes_from_buffer(self, printer_attributes_buffer: winsdk.windows.storage.streams.IBuffer) -> IppSetAttributesResult: ...

class IppResolution(_winrt.Object):
    height: _winrt.Int32
    unit: IppResolutionUnit
    width: _winrt.Int32
    @staticmethod
    def _from(obj: _winrt.Object) -> IppResolution: ...
    @typing.overload
    def __init__(self, width: _winrt.Int32, height: _winrt.Int32, unit: IppResolutionUnit) -> None: ...

class IppSetAttributesResult(_winrt.Object):
    attribute_errors: winsdk.windows.foundation.collections.IMapView[str, IppAttributeError]
    succeeded: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> IppSetAttributesResult: ...

class IppTextWithLanguage(_winrt.Object):
    language: str
    value: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IppTextWithLanguage: ...
    @typing.overload
    def __init__(self, language: str, text: str) -> None: ...

class Print3DDevice(_winrt.Object):
    print_schema: PrintSchema
    @staticmethod
    def _from(obj: _winrt.Object) -> Print3DDevice: ...
    @typing.overload
    @staticmethod
    def from_id_async(device_id: str) -> winsdk.windows.foundation.IAsyncOperation[Print3DDevice]: ...
    @typing.overload
    @staticmethod
    def get_device_selector() -> str: ...

class PrintSchema(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PrintSchema: ...
    @typing.overload
    def get_capabilities_async(self, constrain_ticket: winsdk.windows.storage.streams.IRandomAccessStreamWithContentType) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.storage.streams.IRandomAccessStreamWithContentType]: ...
    @typing.overload
    def get_default_print_ticket_async(self) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.storage.streams.IRandomAccessStreamWithContentType]: ...
    @typing.overload
    def merge_and_validate_with_default_print_ticket_async(self, delta_ticket: winsdk.windows.storage.streams.IRandomAccessStreamWithContentType) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.storage.streams.IRandomAccessStreamWithContentType]: ...

