# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.3.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system

from winrt.windows.globalization.phonenumberformatting import PhoneNumberFormat, PhoneNumberMatchResult, PhoneNumberParseResult, PredictedPhoneNumberKind

Self = typing.TypeVar('Self')

@typing.final
class PhoneNumberFormatter_Static(type):
    def get_country_code_for_region(cls, region_code: str, /) -> winrt.system.Int32: ...
    def get_national_direct_dialing_prefix_for_region(cls, region_code: str, strip_non_digit: bool, /) -> str: ...
    def try_create(cls, region_code: str, /) -> typing.Optional[PhoneNumberFormatter]: ...
    def wrap_with_left_to_right_markers(cls, number: str, /) -> str: ...

@typing.final
class PhoneNumberFormatter(winrt.system.Object, metaclass=PhoneNumberFormatter_Static):
    @staticmethod
    def _from(obj: winrt.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: ...

@typing.final
class PhoneNumberInfo_Static(type):
    @typing.overload
    def try_parse(cls, input: str, /) -> typing.Tuple[PhoneNumberParseResult, typing.Optional[PhoneNumberInfo]]: ...
    @typing.overload
    def try_parse(cls, input: str, region_code: str, /) -> typing.Tuple[PhoneNumberParseResult, typing.Optional[PhoneNumberInfo]]: ...

@typing.final
class PhoneNumberInfo(winrt.system.Object, metaclass=PhoneNumberInfo_Static):
    def __str__(self) -> str: ...
    @staticmethod
    def _from(obj: winrt.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) -> winrt.system.Int32: ...
    def get_length_of_national_destination_code(self) -> winrt.system.Int32: ...
    def get_national_significant_number(self) -> str: ...
    def predict_number_kind(self) -> PredictedPhoneNumberKind: ...
    def to_string(self) -> str: ...
    @_property
    def country_code(self) -> winrt.system.Int32: ...
    @_property
    def phone_number(self) -> str: ...

