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

import enum
import datetime
import sys
import types
import typing

import winsdk.system

class PhoneNumberFormat(enum.IntEnum):
    E164 = 0
    INTERNATIONAL = 1
    NATIONAL = 2
    RFC3966 = 3

class PhoneNumberMatchResult(enum.IntEnum):
    NO_MATCH = 0
    SHORT_NATIONAL_SIGNIFICANT_NUMBER_MATCH = 1
    NATIONAL_SIGNIFICANT_NUMBER_MATCH = 2
    EXACT_MATCH = 3

class PhoneNumberParseResult(enum.IntEnum):
    VALID = 0
    NOT_A_NUMBER = 1
    INVALID_COUNTRY_CODE = 2
    TOO_SHORT = 3
    TOO_LONG = 4

class PredictedPhoneNumberKind(enum.IntEnum):
    FIXED_LINE = 0
    MOBILE = 1
    FIXED_LINE_OR_MOBILE = 2
    TOLL_FREE = 3
    PREMIUM_RATE = 4
    SHARED_COST = 5
    VOIP = 6
    PERSONAL_NUMBER = 7
    PAGER = 8
    UNIVERSAL_ACCOUNT_NUMBER = 9
    VOICEMAIL = 10
    UNKNOWN = 11

Self = typing.TypeVar('Self')

class PhoneNumberFormatter(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneNumberFormatter: ...
    def __new__(cls: typing.Type[PhoneNumberFormatter]) -> PhoneNumberFormatter:...
    @typing.overload
    def format(self, number: typing.Optional[PhoneNumberInfo], /) -> str: ...
    @typing.overload
    def format(self, number: typing.Optional[PhoneNumberInfo], number_format: PhoneNumberFormat, /) -> str: ...
    def format_partial_string(self, number: str, /) -> str: ...
    def format_string(self, number: str, /) -> str: ...
    def format_string_with_left_to_right_markers(self, number: str, /) -> str: ...
    @staticmethod
    def get_country_code_for_region(region_code: str, /) -> winsdk.system.Int32: ...
    @staticmethod
    def get_national_direct_dialing_prefix_for_region(region_code: str, strip_non_digit: winsdk.system.Boolean, /) -> str: ...
    @staticmethod
    def try_create(region_code: str, /) -> typing.Optional[PhoneNumberFormatter]: ...
    @staticmethod
    def wrap_with_left_to_right_markers(number: str, /) -> str: ...

class PhoneNumberInfo(winsdk.system.Object):
    country_code: winsdk.system.Int32
    phone_number: str
    def __str__(self) -> str: ...
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneNumberInfo: ...
    def __new__(cls: typing.Type[PhoneNumberInfo], number: str) -> PhoneNumberInfo:...
    def check_number_match(self, other_number: typing.Optional[PhoneNumberInfo], /) -> PhoneNumberMatchResult: ...
    def get_geographic_region_code(self) -> str: ...
    def get_length_of_geographical_area_code(self) -> winsdk.system.Int32: ...
    def get_length_of_national_destination_code(self) -> winsdk.system.Int32: ...
    def get_national_significant_number(self) -> str: ...
    def predict_number_kind(self) -> PredictedPhoneNumberKind: ...
    def to_string(self) -> str: ...
    @typing.overload
    @staticmethod
    def try_parse(input: str, /) -> typing.Tuple[PhoneNumberParseResult, typing.Optional[PhoneNumberInfo]]: ...
    @typing.overload
    @staticmethod
    def try_parse(input: str, region_code: str, /) -> typing.Tuple[PhoneNumberParseResult, typing.Optional[PhoneNumberInfo]]: ...

