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

class AsyncStatus(enum.IntEnum):
    CANCELED = 2
    COMPLETED = 1
    ERROR = 3
    STARTED = 0

class PropertyType(enum.IntEnum):
    EMPTY = 0
    UINT8 = 1
    INT16 = 2
    UINT16 = 3
    INT32 = 4
    UINT32 = 5
    INT64 = 6
    UINT64 = 7
    SINGLE = 8
    DOUBLE = 9
    CHAR16 = 10
    BOOLEAN = 11
    STRING = 12
    INSPECTABLE = 13
    DATE_TIME = 14
    TIME_SPAN = 15
    GUID = 16
    POINT = 17
    SIZE = 18
    RECT = 19
    OTHER_TYPE = 20
    UINT8_ARRAY = 1025
    INT16_ARRAY = 1026
    UINT16_ARRAY = 1027
    INT32_ARRAY = 1028
    UINT32_ARRAY = 1029
    INT64_ARRAY = 1030
    UINT64_ARRAY = 1031
    SINGLE_ARRAY = 1032
    DOUBLE_ARRAY = 1033
    CHAR16_ARRAY = 1034
    BOOLEAN_ARRAY = 1035
    STRING_ARRAY = 1036
    INSPECTABLE_ARRAY = 1037
    DATE_TIME_ARRAY = 1038
    TIME_SPAN_ARRAY = 1039
    GUID_ARRAY = 1040
    POINT_ARRAY = 1041
    SIZE_ARRAY = 1042
    RECT_ARRAY = 1043
    OTHER_TYPE_ARRAY = 1044

class DateTime:
    universal_time: _winrt.Int64
    def __init__(self, universal_time: _winrt.Int64) -> None: ...

class EventRegistrationToken:
    value: _winrt.Int64
    def __init__(self, value: _winrt.Int64) -> None: ...

class HResult:
    value: _winrt.Int32
    def __init__(self, value: _winrt.Int32) -> None: ...

class Point:
    x: _winrt.Single
    y: _winrt.Single
    def __init__(self, x: _winrt.Single, y: _winrt.Single) -> None: ...

class Rect:
    x: _winrt.Single
    y: _winrt.Single
    width: _winrt.Single
    height: _winrt.Single
    def __init__(self, x: _winrt.Single, y: _winrt.Single, width: _winrt.Single, height: _winrt.Single) -> None: ...

class Size:
    width: _winrt.Single
    height: _winrt.Single
    def __init__(self, width: _winrt.Single, height: _winrt.Single) -> None: ...

class TimeSpan:
    duration: _winrt.Int64
    def __init__(self, duration: _winrt.Int64) -> None: ...

class Deferral(IClosable, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> Deferral: ...
    @typing.overload
    def __init__(self, handler: DeferralCompletedHandler) -> None: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def complete(self) -> None: ...

class GuidHelper(_winrt.Object):
    empty: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> GuidHelper: ...
    @typing.overload
    @staticmethod
    def create_new_guid() -> uuid.UUID: ...
    @typing.overload
    @staticmethod
    def equals(target: uuid.UUID, value: uuid.UUID) -> _winrt.Boolean: ...

class MemoryBuffer(IMemoryBuffer, IClosable, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> MemoryBuffer: ...
    @typing.overload
    def __init__(self, capacity: _winrt.UInt32) -> None: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def create_reference(self) -> IMemoryBufferReference: ...

class PropertyValue(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PropertyValue: ...
    @typing.overload
    @staticmethod
    def create_boolean(value: _winrt.Boolean) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_boolean_array(value: typing.Sequence[_winrt.Boolean]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_char16(value: _winrt.Char16) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_char16_array(value: typing.Sequence[_winrt.Char16]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_date_time(value: DateTime) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_date_time_array(value: typing.Sequence[DateTime]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_double(value: _winrt.Double) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_double_array(value: typing.Sequence[_winrt.Double]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_empty() -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_guid(value: uuid.UUID) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_guid_array(value: typing.Sequence[uuid.UUID]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_inspectable(value: _winrt.Object) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_inspectable_array(value: typing.Sequence[_winrt.Object]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_int16(value: _winrt.Int16) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_int16_array(value: typing.Sequence[_winrt.Int16]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_int32(value: _winrt.Int32) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_int32_array(value: typing.Sequence[_winrt.Int32]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_int64(value: _winrt.Int64) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_int64_array(value: typing.Sequence[_winrt.Int64]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_point(value: Point) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_point_array(value: typing.Sequence[Point]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_rect(value: Rect) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_rect_array(value: typing.Sequence[Rect]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_single(value: _winrt.Single) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_single_array(value: typing.Sequence[_winrt.Single]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_size(value: Size) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_size_array(value: typing.Sequence[Size]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_string(value: str) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_string_array(value: typing.Sequence[str]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_time_span(value: TimeSpan) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_time_span_array(value: typing.Sequence[TimeSpan]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint16(value: _winrt.UInt16) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint16_array(value: typing.Sequence[_winrt.UInt16]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint32(value: _winrt.UInt32) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint32_array(value: typing.Sequence[_winrt.UInt32]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint64(value: _winrt.UInt64) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint64_array(value: typing.Sequence[_winrt.UInt64]) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint8(value: _winrt.UInt8) -> _winrt.Object: ...
    @typing.overload
    @staticmethod
    def create_uint8_array(value: typing.Sequence[_winrt.UInt8]) -> _winrt.Object: ...

class Uri(IStringable, _winrt.Object):
    absolute_uri: str
    display_uri: str
    domain: str
    extension: str
    fragment: str
    host: str
    password: str
    path: str
    port: _winrt.Int32
    query: str
    query_parsed: WwwFormUrlDecoder
    raw_uri: str
    scheme_name: str
    suspicious: _winrt.Boolean
    user_name: str
    absolute_canonical_uri: str
    display_iri: str
    @staticmethod
    def _from(obj: _winrt.Object) -> Uri: ...
    @typing.overload
    def __init__(self, uri: str) -> None: ...
    @typing.overload
    def __init__(self, base_uri: str, relative_uri: str) -> None: ...
    @typing.overload
    def combine_uri(self, relative_uri: str) -> Uri: ...
    @typing.overload
    def equals(self, p_uri: Uri) -> _winrt.Boolean: ...
    @typing.overload
    @staticmethod
    def escape_component(to_escape: str) -> str: ...
    @typing.overload
    def to_string(self) -> str: ...
    @typing.overload
    @staticmethod
    def unescape_component(to_unescape: str) -> str: ...

class WwwFormUrlDecoder(winsdk.windows.foundation.collections.IVectorView[IWwwFormUrlDecoderEntry], winsdk.windows.foundation.collections.IIterable[IWwwFormUrlDecoderEntry], _winrt.Object):
    size: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> WwwFormUrlDecoder: ...
    @typing.overload
    def __init__(self, query: str) -> None: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[IWwwFormUrlDecoderEntry]: ...
    @typing.overload
    def get_at(self, index: _winrt.UInt32) -> IWwwFormUrlDecoderEntry: ...
    @typing.overload
    def get_first_value_by_name(self, name: str) -> str: ...
    @typing.overload
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IWwwFormUrlDecoderEntry]]: ...
    @typing.overload
    def index_of(self, value: IWwwFormUrlDecoderEntry) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...

class WwwFormUrlDecoderEntry(IWwwFormUrlDecoderEntry, _winrt.Object):
    name: str
    value: str
    @staticmethod
    def _from(obj: _winrt.Object) -> WwwFormUrlDecoderEntry: ...

class IAsyncAction(IAsyncInfo, _winrt.Object):
    completed: AsyncActionCompletedHandler
    error_code: HResult
    id: _winrt.UInt32
    status: AsyncStatus
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    @staticmethod
    def _from(obj: _winrt.Object) -> IAsyncAction: ...
    @typing.overload
    def get_results(self) -> None: ...
    @typing.overload
    def cancel(self) -> None: ...
    @typing.overload
    def close(self) -> None: ...

TProgress = typing.TypeVar('TProgress')

class IAsyncActionWithProgress(IAsyncInfo, typing.Generic[TProgress], _winrt.Object):
    progress: AsyncActionProgressHandler[TProgress]
    completed: AsyncActionWithProgressCompletedHandler[TProgress]
    error_code: HResult
    id: _winrt.UInt32
    status: AsyncStatus
    if sys.version_info >= (3, 9):
        def __class_getitem__(cls, key: typing.Any) -> types.GenericAlias: ...
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    @typing.overload
    def get_results(self) -> None: ...
    @typing.overload
    def cancel(self) -> None: ...
    @typing.overload
    def close(self) -> None: ...

class IAsyncInfo(_winrt.Object):
    error_code: HResult
    id: _winrt.UInt32
    status: AsyncStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IAsyncInfo: ...
    @typing.overload
    def cancel(self) -> None: ...
    @typing.overload
    def close(self) -> None: ...

TResult = typing.TypeVar('TResult')

TProgress = typing.TypeVar('TProgress')

class IAsyncOperationWithProgress(IAsyncInfo, typing.Generic[TResult, TProgress], _winrt.Object):
    progress: AsyncOperationProgressHandler[TResult, TProgress]
    completed: AsyncOperationWithProgressCompletedHandler[TResult, TProgress]
    error_code: HResult
    id: _winrt.UInt32
    status: AsyncStatus
    if sys.version_info >= (3, 9):
        def __class_getitem__(cls, key: typing.Any) -> types.GenericAlias: ...
    def __await__(self) -> typing.Generator[typing.Any, None, TResult]: ...
    @typing.overload
    def get_results(self) -> TResult: ...
    @typing.overload
    def cancel(self) -> None: ...
    @typing.overload
    def close(self) -> None: ...

TResult = typing.TypeVar('TResult')

class IAsyncOperation(IAsyncInfo, typing.Generic[TResult], _winrt.Object):
    completed: AsyncOperationCompletedHandler[TResult]
    error_code: HResult
    id: _winrt.UInt32
    status: AsyncStatus
    if sys.version_info >= (3, 9):
        def __class_getitem__(cls, key: typing.Any) -> types.GenericAlias: ...
    def __await__(self) -> typing.Generator[typing.Any, None, TResult]: ...
    @typing.overload
    def get_results(self) -> TResult: ...
    @typing.overload
    def cancel(self) -> None: ...
    @typing.overload
    def close(self) -> None: ...

Self = typing.TypeVar('Self')

class IClosable(_winrt.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, __exc_type: typing.Type[BaseException] | None, __exc_value: BaseException | None, __traceback: typing.TracebackType | None) -> bool | None: ...
    @staticmethod
    def _from(obj: _winrt.Object) -> IClosable: ...
    @typing.overload
    def close(self) -> None: ...

class IGetActivationFactory(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IGetActivationFactory: ...
    @typing.overload
    def get_activation_factory(self, activatable_class_id: str) -> _winrt.Object: ...

class IMemoryBuffer(IClosable, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IMemoryBuffer: ...
    @typing.overload
    def create_reference(self) -> IMemoryBufferReference: ...
    @typing.overload
    def close(self) -> None: ...

class IMemoryBufferReference(IClosable, _winrt.Object):
    capacity: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> IMemoryBufferReference: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def add_closed(self, handler: TypedEventHandler[IMemoryBufferReference, _winrt.Object]) -> EventRegistrationToken: ...
    @typing.overload
    def remove_closed(self, cookie: EventRegistrationToken) -> None: ...

class IPropertyValue(_winrt.Object):
    is_numeric_scalar: _winrt.Boolean
    type: PropertyType
    @staticmethod
    def _from(obj: _winrt.Object) -> IPropertyValue: ...
    @typing.overload
    def get_boolean(self) -> _winrt.Boolean: ...
    @typing.overload
    def get_boolean_array(self, ) -> typing.List[_winrt.Boolean]: ...
    @typing.overload
    def get_char16(self) -> _winrt.Char16: ...
    @typing.overload
    def get_char16_array(self, ) -> typing.List[_winrt.Char16]: ...
    @typing.overload
    def get_date_time(self) -> DateTime: ...
    @typing.overload
    def get_date_time_array(self, ) -> typing.List[DateTime]: ...
    @typing.overload
    def get_double(self) -> _winrt.Double: ...
    @typing.overload
    def get_double_array(self, ) -> typing.List[_winrt.Double]: ...
    @typing.overload
    def get_guid(self) -> uuid.UUID: ...
    @typing.overload
    def get_guid_array(self, ) -> typing.List[uuid.UUID]: ...
    @typing.overload
    def get_inspectable_array(self, ) -> typing.List[_winrt.Object]: ...
    @typing.overload
    def get_int16(self) -> _winrt.Int16: ...
    @typing.overload
    def get_int16_array(self, ) -> typing.List[_winrt.Int16]: ...
    @typing.overload
    def get_int32(self) -> _winrt.Int32: ...
    @typing.overload
    def get_int32_array(self, ) -> typing.List[_winrt.Int32]: ...
    @typing.overload
    def get_int64(self) -> _winrt.Int64: ...
    @typing.overload
    def get_int64_array(self, ) -> typing.List[_winrt.Int64]: ...
    @typing.overload
    def get_point(self) -> Point: ...
    @typing.overload
    def get_point_array(self, ) -> typing.List[Point]: ...
    @typing.overload
    def get_rect(self) -> Rect: ...
    @typing.overload
    def get_rect_array(self, ) -> typing.List[Rect]: ...
    @typing.overload
    def get_single(self) -> _winrt.Single: ...
    @typing.overload
    def get_single_array(self, ) -> typing.List[_winrt.Single]: ...
    @typing.overload
    def get_size(self) -> Size: ...
    @typing.overload
    def get_size_array(self, ) -> typing.List[Size]: ...
    @typing.overload
    def get_string(self) -> str: ...
    @typing.overload
    def get_string_array(self, ) -> typing.List[str]: ...
    @typing.overload
    def get_time_span(self) -> TimeSpan: ...
    @typing.overload
    def get_time_span_array(self, ) -> typing.List[TimeSpan]: ...
    @typing.overload
    def get_uint16(self) -> _winrt.UInt16: ...
    @typing.overload
    def get_uint16_array(self, ) -> typing.List[_winrt.UInt16]: ...
    @typing.overload
    def get_uint32(self) -> _winrt.UInt32: ...
    @typing.overload
    def get_uint32_array(self, ) -> typing.List[_winrt.UInt32]: ...
    @typing.overload
    def get_uint64(self) -> _winrt.UInt64: ...
    @typing.overload
    def get_uint64_array(self, ) -> typing.List[_winrt.UInt64]: ...
    @typing.overload
    def get_uint8(self) -> _winrt.UInt8: ...
    @typing.overload
    def get_uint8_array(self, ) -> typing.List[_winrt.UInt8]: ...

T = typing.TypeVar('T')

class IReferenceArray(IPropertyValue, typing.Generic[T], _winrt.Object):
    value: T
    is_numeric_scalar: _winrt.Boolean
    type: PropertyType
    if sys.version_info >= (3, 9):
        def __class_getitem__(cls, key: typing.Any) -> types.GenericAlias: ...
    @typing.overload
    def get_boolean(self) -> _winrt.Boolean: ...
    @typing.overload
    def get_boolean_array(self, ) -> typing.List[_winrt.Boolean]: ...
    @typing.overload
    def get_char16(self) -> _winrt.Char16: ...
    @typing.overload
    def get_char16_array(self, ) -> typing.List[_winrt.Char16]: ...
    @typing.overload
    def get_date_time(self) -> DateTime: ...
    @typing.overload
    def get_date_time_array(self, ) -> typing.List[DateTime]: ...
    @typing.overload
    def get_double(self) -> _winrt.Double: ...
    @typing.overload
    def get_double_array(self, ) -> typing.List[_winrt.Double]: ...
    @typing.overload
    def get_guid(self) -> uuid.UUID: ...
    @typing.overload
    def get_guid_array(self, ) -> typing.List[uuid.UUID]: ...
    @typing.overload
    def get_inspectable_array(self, ) -> typing.List[_winrt.Object]: ...
    @typing.overload
    def get_int16(self) -> _winrt.Int16: ...
    @typing.overload
    def get_int16_array(self, ) -> typing.List[_winrt.Int16]: ...
    @typing.overload
    def get_int32(self) -> _winrt.Int32: ...
    @typing.overload
    def get_int32_array(self, ) -> typing.List[_winrt.Int32]: ...
    @typing.overload
    def get_int64(self) -> _winrt.Int64: ...
    @typing.overload
    def get_int64_array(self, ) -> typing.List[_winrt.Int64]: ...
    @typing.overload
    def get_point(self) -> Point: ...
    @typing.overload
    def get_point_array(self, ) -> typing.List[Point]: ...
    @typing.overload
    def get_rect(self) -> Rect: ...
    @typing.overload
    def get_rect_array(self, ) -> typing.List[Rect]: ...
    @typing.overload
    def get_single(self) -> _winrt.Single: ...
    @typing.overload
    def get_single_array(self, ) -> typing.List[_winrt.Single]: ...
    @typing.overload
    def get_size(self) -> Size: ...
    @typing.overload
    def get_size_array(self, ) -> typing.List[Size]: ...
    @typing.overload
    def get_string(self) -> str: ...
    @typing.overload
    def get_string_array(self, ) -> typing.List[str]: ...
    @typing.overload
    def get_time_span(self) -> TimeSpan: ...
    @typing.overload
    def get_time_span_array(self, ) -> typing.List[TimeSpan]: ...
    @typing.overload
    def get_uint16(self) -> _winrt.UInt16: ...
    @typing.overload
    def get_uint16_array(self, ) -> typing.List[_winrt.UInt16]: ...
    @typing.overload
    def get_uint32(self) -> _winrt.UInt32: ...
    @typing.overload
    def get_uint32_array(self, ) -> typing.List[_winrt.UInt32]: ...
    @typing.overload
    def get_uint64(self) -> _winrt.UInt64: ...
    @typing.overload
    def get_uint64_array(self, ) -> typing.List[_winrt.UInt64]: ...
    @typing.overload
    def get_uint8(self) -> _winrt.UInt8: ...
    @typing.overload
    def get_uint8_array(self, ) -> typing.List[_winrt.UInt8]: ...

T = typing.TypeVar('T')

class IReference(IPropertyValue, typing.Generic[T], _winrt.Object):
    value: T
    is_numeric_scalar: _winrt.Boolean
    type: PropertyType
    if sys.version_info >= (3, 9):
        def __class_getitem__(cls, key: typing.Any) -> types.GenericAlias: ...
    @typing.overload
    def get_boolean(self) -> _winrt.Boolean: ...
    @typing.overload
    def get_boolean_array(self, ) -> typing.List[_winrt.Boolean]: ...
    @typing.overload
    def get_char16(self) -> _winrt.Char16: ...
    @typing.overload
    def get_char16_array(self, ) -> typing.List[_winrt.Char16]: ...
    @typing.overload
    def get_date_time(self) -> DateTime: ...
    @typing.overload
    def get_date_time_array(self, ) -> typing.List[DateTime]: ...
    @typing.overload
    def get_double(self) -> _winrt.Double: ...
    @typing.overload
    def get_double_array(self, ) -> typing.List[_winrt.Double]: ...
    @typing.overload
    def get_guid(self) -> uuid.UUID: ...
    @typing.overload
    def get_guid_array(self, ) -> typing.List[uuid.UUID]: ...
    @typing.overload
    def get_inspectable_array(self, ) -> typing.List[_winrt.Object]: ...
    @typing.overload
    def get_int16(self) -> _winrt.Int16: ...
    @typing.overload
    def get_int16_array(self, ) -> typing.List[_winrt.Int16]: ...
    @typing.overload
    def get_int32(self) -> _winrt.Int32: ...
    @typing.overload
    def get_int32_array(self, ) -> typing.List[_winrt.Int32]: ...
    @typing.overload
    def get_int64(self) -> _winrt.Int64: ...
    @typing.overload
    def get_int64_array(self, ) -> typing.List[_winrt.Int64]: ...
    @typing.overload
    def get_point(self) -> Point: ...
    @typing.overload
    def get_point_array(self, ) -> typing.List[Point]: ...
    @typing.overload
    def get_rect(self) -> Rect: ...
    @typing.overload
    def get_rect_array(self, ) -> typing.List[Rect]: ...
    @typing.overload
    def get_single(self) -> _winrt.Single: ...
    @typing.overload
    def get_single_array(self, ) -> typing.List[_winrt.Single]: ...
    @typing.overload
    def get_size(self) -> Size: ...
    @typing.overload
    def get_size_array(self, ) -> typing.List[Size]: ...
    @typing.overload
    def get_string(self) -> str: ...
    @typing.overload
    def get_string_array(self, ) -> typing.List[str]: ...
    @typing.overload
    def get_time_span(self) -> TimeSpan: ...
    @typing.overload
    def get_time_span_array(self, ) -> typing.List[TimeSpan]: ...
    @typing.overload
    def get_uint16(self) -> _winrt.UInt16: ...
    @typing.overload
    def get_uint16_array(self, ) -> typing.List[_winrt.UInt16]: ...
    @typing.overload
    def get_uint32(self) -> _winrt.UInt32: ...
    @typing.overload
    def get_uint32_array(self, ) -> typing.List[_winrt.UInt32]: ...
    @typing.overload
    def get_uint64(self) -> _winrt.UInt64: ...
    @typing.overload
    def get_uint64_array(self, ) -> typing.List[_winrt.UInt64]: ...
    @typing.overload
    def get_uint8(self) -> _winrt.UInt8: ...
    @typing.overload
    def get_uint8_array(self, ) -> typing.List[_winrt.UInt8]: ...

class IStringable(_winrt.Object):
    def __str__(self) -> str: ...
    @staticmethod
    def _from(obj: _winrt.Object) -> IStringable: ...
    @typing.overload
    def to_string(self) -> str: ...

class IWwwFormUrlDecoderEntry(_winrt.Object):
    name: str
    value: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IWwwFormUrlDecoderEntry: ...

AsyncActionCompletedHandler = typing.Callable[[IAsyncAction, AsyncStatus], None]

TProgress = typing.TypeVar('TProgress')

AsyncActionProgressHandler = typing.Callable[[IAsyncActionWithProgress[TProgress], TProgress], None]

TProgress = typing.TypeVar('TProgress')

AsyncActionWithProgressCompletedHandler = typing.Callable[[IAsyncActionWithProgress[TProgress], AsyncStatus], None]

TResult = typing.TypeVar('TResult')

AsyncOperationCompletedHandler = typing.Callable[[IAsyncOperation[TResult], AsyncStatus], None]

TResult = typing.TypeVar('TResult')

TProgress = typing.TypeVar('TProgress')

AsyncOperationProgressHandler = typing.Callable[[IAsyncOperationWithProgress[TResult, TProgress], TProgress], None]

TResult = typing.TypeVar('TResult')

TProgress = typing.TypeVar('TProgress')

AsyncOperationWithProgressCompletedHandler = typing.Callable[[IAsyncOperationWithProgress[TResult, TProgress], AsyncStatus], None]

DeferralCompletedHandler = typing.Callable[[], None]

T = typing.TypeVar('T')

EventHandler = typing.Callable[[_winrt.Object, T], None]

TSender = typing.TypeVar('TSender')

TResult = typing.TypeVar('TResult')

TypedEventHandler = typing.Callable[[TSender, TResult], None]

