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

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

import winrt._winrt
import winrt.system
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections

from winrt.windows.globalization.numberformatting import CurrencyFormatterMode, RoundingAlgorithm

Self = typing.TypeVar('Self')

@typing.final
class CurrencyFormatter(winrt.system.Object, ISignedZeroOption, INumberRounderOption, ISignificantDigitsOption, INumberParser, INumberFormatter2, INumberFormatter, INumberFormatterOptions):
    @typing.overload
    def __new__(cls: typing.Type[Self], currency_code: str) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], currency_code: str, languages: typing.Iterable[str], geographic_region: str) -> Self: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::ApplyRoundingForCurrency(Windows.Globalization.NumberFormatting.RoundingAlgorithm)
    def apply_rounding_for_currency(self, rounding_algorithm: RoundingAlgorithm, /) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::Format(System.Double)
    def format_double(self, value: winrt.system.Double, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::Format(System.Int64)
    def format_int(self, value: winrt.system.Int64, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::Format(System.UInt64)
    def format_uint(self, value: winrt.system.UInt64, /) -> str: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Globalization.NumberFormatting.CurrencyFormatter::ParseDouble(System.String)
    def parse_double(self, text: str, /) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Foundation.IReference`1<System.Int64> Windows.Globalization.NumberFormatting.CurrencyFormatter::ParseInt(System.String)
    def parse_int(self, text: str, /) -> typing.Optional[winrt.system.Int64]: ...
    # Windows.Foundation.IReference`1<System.UInt64> Windows.Globalization.NumberFormatting.CurrencyFormatter::ParseUInt(System.String)
    def parse_uint(self, text: str, /) -> typing.Optional[winrt.system.UInt64]: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::get_Currency()
    @_property
    def currency(self) -> str: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_Currency(System.String)
    @currency.setter
    def currency(self, value: str) -> None: ...
    # Windows.Globalization.NumberFormatting.CurrencyFormatterMode Windows.Globalization.NumberFormatting.CurrencyFormatter::get_Mode()
    @_property
    def mode(self) -> CurrencyFormatterMode: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_Mode(Windows.Globalization.NumberFormatting.CurrencyFormatterMode)
    @mode.setter
    def mode(self, value: CurrencyFormatterMode) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::get_NumeralSystem()
    @_property
    def numeral_system(self) -> str: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_NumeralSystem(System.String)
    @numeral_system.setter
    def numeral_system(self, value: str) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.CurrencyFormatter::get_IsGrouped()
    @_property
    def is_grouped(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_IsGrouped(System.Boolean)
    @is_grouped.setter
    def is_grouped(self, value: bool) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.CurrencyFormatter::get_IsDecimalPointAlwaysDisplayed()
    @_property
    def is_decimal_point_always_displayed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_IsDecimalPointAlwaysDisplayed(System.Boolean)
    @is_decimal_point_always_displayed.setter
    def is_decimal_point_always_displayed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.CurrencyFormatter::get_IntegerDigits()
    @_property
    def integer_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_IntegerDigits(System.Int32)
    @integer_digits.setter
    def integer_digits(self, value: winrt.system.Int32) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.CurrencyFormatter::get_FractionDigits()
    @_property
    def fraction_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_FractionDigits(System.Int32)
    @fraction_digits.setter
    def fraction_digits(self, value: winrt.system.Int32) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::get_GeographicRegion()
    @_property
    def geographic_region(self) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::get_ResolvedGeographicRegion()
    @_property
    def resolved_geographic_region(self) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.CurrencyFormatter::get_ResolvedLanguage()
    @_property
    def resolved_language(self) -> str: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Globalization.NumberFormatting.CurrencyFormatter::get_Languages()
    @_property
    def languages(self) -> typing.Sequence[str]: ...
    # Windows.Globalization.NumberFormatting.INumberRounder Windows.Globalization.NumberFormatting.CurrencyFormatter::get_NumberRounder()
    @_property
    def number_rounder(self) -> INumberRounder: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_NumberRounder(Windows.Globalization.NumberFormatting.INumberRounder)
    @number_rounder.setter
    def number_rounder(self, value: INumberRounder) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.CurrencyFormatter::get_IsZeroSigned()
    @_property
    def is_zero_signed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_IsZeroSigned(System.Boolean)
    @is_zero_signed.setter
    def is_zero_signed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.CurrencyFormatter::get_SignificantDigits()
    @_property
    def significant_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.CurrencyFormatter::put_SignificantDigits(System.Int32)
    @significant_digits.setter
    def significant_digits(self, value: winrt.system.Int32) -> None: ...

@typing.final
class DecimalFormatter(winrt.system.Object, ISignedZeroOption, INumberRounderOption, ISignificantDigitsOption, INumberParser, INumberFormatter2, INumberFormatter, INumberFormatterOptions):
    @typing.overload
    def __new__(cls: typing.Type[Self], languages: typing.Iterable[str], geographic_region: str) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Globalization.NumberFormatting.DecimalFormatter::Format(System.Double)
    def format_double(self, value: winrt.system.Double, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.DecimalFormatter::Format(System.Int64)
    def format_int(self, value: winrt.system.Int64, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.DecimalFormatter::Format(System.UInt64)
    def format_uint(self, value: winrt.system.UInt64, /) -> str: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Globalization.NumberFormatting.DecimalFormatter::ParseDouble(System.String)
    def parse_double(self, text: str, /) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Foundation.IReference`1<System.Int64> Windows.Globalization.NumberFormatting.DecimalFormatter::ParseInt(System.String)
    def parse_int(self, text: str, /) -> typing.Optional[winrt.system.Int64]: ...
    # Windows.Foundation.IReference`1<System.UInt64> Windows.Globalization.NumberFormatting.DecimalFormatter::ParseUInt(System.String)
    def parse_uint(self, text: str, /) -> typing.Optional[winrt.system.UInt64]: ...
    # System.Boolean Windows.Globalization.NumberFormatting.DecimalFormatter::get_IsDecimalPointAlwaysDisplayed()
    @_property
    def is_decimal_point_always_displayed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_IsDecimalPointAlwaysDisplayed(System.Boolean)
    @is_decimal_point_always_displayed.setter
    def is_decimal_point_always_displayed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.DecimalFormatter::get_IntegerDigits()
    @_property
    def integer_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_IntegerDigits(System.Int32)
    @integer_digits.setter
    def integer_digits(self, value: winrt.system.Int32) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.DecimalFormatter::get_IsGrouped()
    @_property
    def is_grouped(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_IsGrouped(System.Boolean)
    @is_grouped.setter
    def is_grouped(self, value: bool) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.DecimalFormatter::get_NumeralSystem()
    @_property
    def numeral_system(self) -> str: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_NumeralSystem(System.String)
    @numeral_system.setter
    def numeral_system(self, value: str) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.DecimalFormatter::get_FractionDigits()
    @_property
    def fraction_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_FractionDigits(System.Int32)
    @fraction_digits.setter
    def fraction_digits(self, value: winrt.system.Int32) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.DecimalFormatter::get_GeographicRegion()
    @_property
    def geographic_region(self) -> str: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Globalization.NumberFormatting.DecimalFormatter::get_Languages()
    @_property
    def languages(self) -> typing.Sequence[str]: ...
    # System.String Windows.Globalization.NumberFormatting.DecimalFormatter::get_ResolvedGeographicRegion()
    @_property
    def resolved_geographic_region(self) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.DecimalFormatter::get_ResolvedLanguage()
    @_property
    def resolved_language(self) -> str: ...
    # Windows.Globalization.NumberFormatting.INumberRounder Windows.Globalization.NumberFormatting.DecimalFormatter::get_NumberRounder()
    @_property
    def number_rounder(self) -> INumberRounder: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_NumberRounder(Windows.Globalization.NumberFormatting.INumberRounder)
    @number_rounder.setter
    def number_rounder(self, value: INumberRounder) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.DecimalFormatter::get_IsZeroSigned()
    @_property
    def is_zero_signed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_IsZeroSigned(System.Boolean)
    @is_zero_signed.setter
    def is_zero_signed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.DecimalFormatter::get_SignificantDigits()
    @_property
    def significant_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.DecimalFormatter::put_SignificantDigits(System.Int32)
    @significant_digits.setter
    def significant_digits(self, value: winrt.system.Int32) -> None: ...

@typing.final
class IncrementNumberRounder(winrt.system.Object, INumberRounder):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Double Windows.Globalization.NumberFormatting.IncrementNumberRounder::RoundDouble(System.Double)
    def round_double(self, value: winrt.system.Double, /) -> winrt.system.Double: ...
    # System.Int32 Windows.Globalization.NumberFormatting.IncrementNumberRounder::RoundInt32(System.Int32)
    def round_int32(self, value: winrt.system.Int32, /) -> winrt.system.Int32: ...
    # System.Int64 Windows.Globalization.NumberFormatting.IncrementNumberRounder::RoundInt64(System.Int64)
    def round_int64(self, value: winrt.system.Int64, /) -> winrt.system.Int64: ...
    # System.Single Windows.Globalization.NumberFormatting.IncrementNumberRounder::RoundSingle(System.Single)
    def round_single(self, value: winrt.system.Single, /) -> winrt.system.Single: ...
    # System.UInt32 Windows.Globalization.NumberFormatting.IncrementNumberRounder::RoundUInt32(System.UInt32)
    def round_uint32(self, value: winrt.system.UInt32, /) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Globalization.NumberFormatting.IncrementNumberRounder::RoundUInt64(System.UInt64)
    def round_uint64(self, value: winrt.system.UInt64, /) -> winrt.system.UInt64: ...
    # Windows.Globalization.NumberFormatting.RoundingAlgorithm Windows.Globalization.NumberFormatting.IncrementNumberRounder::get_RoundingAlgorithm()
    @_property
    def rounding_algorithm(self) -> RoundingAlgorithm: ...
    # System.Void Windows.Globalization.NumberFormatting.IncrementNumberRounder::put_RoundingAlgorithm(Windows.Globalization.NumberFormatting.RoundingAlgorithm)
    @rounding_algorithm.setter
    def rounding_algorithm(self, value: RoundingAlgorithm) -> None: ...
    # System.Double Windows.Globalization.NumberFormatting.IncrementNumberRounder::get_Increment()
    @_property
    def increment(self) -> winrt.system.Double: ...
    # System.Void Windows.Globalization.NumberFormatting.IncrementNumberRounder::put_Increment(System.Double)
    @increment.setter
    def increment(self, value: winrt.system.Double) -> None: ...

@typing.final
class NumeralSystemTranslator(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self], languages: typing.Iterable[str]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Globalization.NumberFormatting.NumeralSystemTranslator::TranslateNumerals(System.String)
    def translate_numerals(self, value: str, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.NumeralSystemTranslator::get_NumeralSystem()
    @_property
    def numeral_system(self) -> str: ...
    # System.Void Windows.Globalization.NumberFormatting.NumeralSystemTranslator::put_NumeralSystem(System.String)
    @numeral_system.setter
    def numeral_system(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Globalization.NumberFormatting.NumeralSystemTranslator::get_Languages()
    @_property
    def languages(self) -> typing.Sequence[str]: ...
    # System.String Windows.Globalization.NumberFormatting.NumeralSystemTranslator::get_ResolvedLanguage()
    @_property
    def resolved_language(self) -> str: ...

@typing.final
class PercentFormatter(winrt.system.Object, ISignedZeroOption, INumberRounderOption, ISignificantDigitsOption, INumberParser, INumberFormatter2, INumberFormatter, INumberFormatterOptions):
    @typing.overload
    def __new__(cls: typing.Type[Self], languages: typing.Iterable[str], geographic_region: str) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Globalization.NumberFormatting.PercentFormatter::Format(System.Double)
    def format_double(self, value: winrt.system.Double, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.PercentFormatter::Format(System.Int64)
    def format_int(self, value: winrt.system.Int64, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.PercentFormatter::Format(System.UInt64)
    def format_uint(self, value: winrt.system.UInt64, /) -> str: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Globalization.NumberFormatting.PercentFormatter::ParseDouble(System.String)
    def parse_double(self, text: str, /) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Foundation.IReference`1<System.Int64> Windows.Globalization.NumberFormatting.PercentFormatter::ParseInt(System.String)
    def parse_int(self, text: str, /) -> typing.Optional[winrt.system.Int64]: ...
    # Windows.Foundation.IReference`1<System.UInt64> Windows.Globalization.NumberFormatting.PercentFormatter::ParseUInt(System.String)
    def parse_uint(self, text: str, /) -> typing.Optional[winrt.system.UInt64]: ...
    # System.Boolean Windows.Globalization.NumberFormatting.PercentFormatter::get_IsDecimalPointAlwaysDisplayed()
    @_property
    def is_decimal_point_always_displayed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_IsDecimalPointAlwaysDisplayed(System.Boolean)
    @is_decimal_point_always_displayed.setter
    def is_decimal_point_always_displayed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.PercentFormatter::get_IntegerDigits()
    @_property
    def integer_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_IntegerDigits(System.Int32)
    @integer_digits.setter
    def integer_digits(self, value: winrt.system.Int32) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.PercentFormatter::get_IsGrouped()
    @_property
    def is_grouped(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_IsGrouped(System.Boolean)
    @is_grouped.setter
    def is_grouped(self, value: bool) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.PercentFormatter::get_NumeralSystem()
    @_property
    def numeral_system(self) -> str: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_NumeralSystem(System.String)
    @numeral_system.setter
    def numeral_system(self, value: str) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.PercentFormatter::get_FractionDigits()
    @_property
    def fraction_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_FractionDigits(System.Int32)
    @fraction_digits.setter
    def fraction_digits(self, value: winrt.system.Int32) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.PercentFormatter::get_GeographicRegion()
    @_property
    def geographic_region(self) -> str: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Globalization.NumberFormatting.PercentFormatter::get_Languages()
    @_property
    def languages(self) -> typing.Sequence[str]: ...
    # System.String Windows.Globalization.NumberFormatting.PercentFormatter::get_ResolvedGeographicRegion()
    @_property
    def resolved_geographic_region(self) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.PercentFormatter::get_ResolvedLanguage()
    @_property
    def resolved_language(self) -> str: ...
    # Windows.Globalization.NumberFormatting.INumberRounder Windows.Globalization.NumberFormatting.PercentFormatter::get_NumberRounder()
    @_property
    def number_rounder(self) -> INumberRounder: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_NumberRounder(Windows.Globalization.NumberFormatting.INumberRounder)
    @number_rounder.setter
    def number_rounder(self, value: INumberRounder) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.PercentFormatter::get_IsZeroSigned()
    @_property
    def is_zero_signed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_IsZeroSigned(System.Boolean)
    @is_zero_signed.setter
    def is_zero_signed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.PercentFormatter::get_SignificantDigits()
    @_property
    def significant_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.PercentFormatter::put_SignificantDigits(System.Int32)
    @significant_digits.setter
    def significant_digits(self, value: winrt.system.Int32) -> None: ...

@typing.final
class PermilleFormatter(winrt.system.Object, ISignedZeroOption, INumberRounderOption, ISignificantDigitsOption, INumberParser, INumberFormatter2, INumberFormatter, INumberFormatterOptions):
    @typing.overload
    def __new__(cls: typing.Type[Self], languages: typing.Iterable[str], geographic_region: str) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Globalization.NumberFormatting.PermilleFormatter::Format(System.Double)
    def format_double(self, value: winrt.system.Double, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.PermilleFormatter::Format(System.Int64)
    def format_int(self, value: winrt.system.Int64, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.PermilleFormatter::Format(System.UInt64)
    def format_uint(self, value: winrt.system.UInt64, /) -> str: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Globalization.NumberFormatting.PermilleFormatter::ParseDouble(System.String)
    def parse_double(self, text: str, /) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Foundation.IReference`1<System.Int64> Windows.Globalization.NumberFormatting.PermilleFormatter::ParseInt(System.String)
    def parse_int(self, text: str, /) -> typing.Optional[winrt.system.Int64]: ...
    # Windows.Foundation.IReference`1<System.UInt64> Windows.Globalization.NumberFormatting.PermilleFormatter::ParseUInt(System.String)
    def parse_uint(self, text: str, /) -> typing.Optional[winrt.system.UInt64]: ...
    # System.Boolean Windows.Globalization.NumberFormatting.PermilleFormatter::get_IsDecimalPointAlwaysDisplayed()
    @_property
    def is_decimal_point_always_displayed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_IsDecimalPointAlwaysDisplayed(System.Boolean)
    @is_decimal_point_always_displayed.setter
    def is_decimal_point_always_displayed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.PermilleFormatter::get_IntegerDigits()
    @_property
    def integer_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_IntegerDigits(System.Int32)
    @integer_digits.setter
    def integer_digits(self, value: winrt.system.Int32) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.PermilleFormatter::get_IsGrouped()
    @_property
    def is_grouped(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_IsGrouped(System.Boolean)
    @is_grouped.setter
    def is_grouped(self, value: bool) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.PermilleFormatter::get_NumeralSystem()
    @_property
    def numeral_system(self) -> str: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_NumeralSystem(System.String)
    @numeral_system.setter
    def numeral_system(self, value: str) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.PermilleFormatter::get_FractionDigits()
    @_property
    def fraction_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_FractionDigits(System.Int32)
    @fraction_digits.setter
    def fraction_digits(self, value: winrt.system.Int32) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.PermilleFormatter::get_GeographicRegion()
    @_property
    def geographic_region(self) -> str: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Globalization.NumberFormatting.PermilleFormatter::get_Languages()
    @_property
    def languages(self) -> typing.Sequence[str]: ...
    # System.String Windows.Globalization.NumberFormatting.PermilleFormatter::get_ResolvedGeographicRegion()
    @_property
    def resolved_geographic_region(self) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.PermilleFormatter::get_ResolvedLanguage()
    @_property
    def resolved_language(self) -> str: ...
    # Windows.Globalization.NumberFormatting.INumberRounder Windows.Globalization.NumberFormatting.PermilleFormatter::get_NumberRounder()
    @_property
    def number_rounder(self) -> INumberRounder: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_NumberRounder(Windows.Globalization.NumberFormatting.INumberRounder)
    @number_rounder.setter
    def number_rounder(self, value: INumberRounder) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.PermilleFormatter::get_IsZeroSigned()
    @_property
    def is_zero_signed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_IsZeroSigned(System.Boolean)
    @is_zero_signed.setter
    def is_zero_signed(self, value: bool) -> None: ...
    # System.Int32 Windows.Globalization.NumberFormatting.PermilleFormatter::get_SignificantDigits()
    @_property
    def significant_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.PermilleFormatter::put_SignificantDigits(System.Int32)
    @significant_digits.setter
    def significant_digits(self, value: winrt.system.Int32) -> None: ...

@typing.final
class SignificantDigitsNumberRounder(winrt.system.Object, INumberRounder):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Double Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::RoundDouble(System.Double)
    def round_double(self, value: winrt.system.Double, /) -> winrt.system.Double: ...
    # System.Int32 Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::RoundInt32(System.Int32)
    def round_int32(self, value: winrt.system.Int32, /) -> winrt.system.Int32: ...
    # System.Int64 Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::RoundInt64(System.Int64)
    def round_int64(self, value: winrt.system.Int64, /) -> winrt.system.Int64: ...
    # System.Single Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::RoundSingle(System.Single)
    def round_single(self, value: winrt.system.Single, /) -> winrt.system.Single: ...
    # System.UInt32 Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::RoundUInt32(System.UInt32)
    def round_uint32(self, value: winrt.system.UInt32, /) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::RoundUInt64(System.UInt64)
    def round_uint64(self, value: winrt.system.UInt64, /) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::get_SignificantDigits()
    @_property
    def significant_digits(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::put_SignificantDigits(System.UInt32)
    @significant_digits.setter
    def significant_digits(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Globalization.NumberFormatting.RoundingAlgorithm Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::get_RoundingAlgorithm()
    @_property
    def rounding_algorithm(self) -> RoundingAlgorithm: ...
    # System.Void Windows.Globalization.NumberFormatting.SignificantDigitsNumberRounder::put_RoundingAlgorithm(Windows.Globalization.NumberFormatting.RoundingAlgorithm)
    @rounding_algorithm.setter
    def rounding_algorithm(self, value: RoundingAlgorithm) -> None: ...

@typing.final
class _INumberFormatter: ...

class INumberFormatter(winrt._winrt.IInspectable):
    # System.String Windows.Globalization.NumberFormatting.INumberFormatter::Format(System.Double)
    @abstractmethod
    def format_double(self, value: winrt.system.Double, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatter::Format(System.Int64)
    @abstractmethod
    def format_int(self, value: winrt.system.Int64, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatter::Format(System.UInt64)
    @abstractmethod
    def format_uint(self, value: winrt.system.UInt64, /) -> str: ...

@typing.final
class _INumberFormatter2: ...

class INumberFormatter2(winrt._winrt.IInspectable):
    # System.String Windows.Globalization.NumberFormatting.INumberFormatter2::FormatDouble(System.Double)
    @abstractmethod
    def format_double(self, value: winrt.system.Double, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatter2::FormatInt(System.Int64)
    @abstractmethod
    def format_int(self, value: winrt.system.Int64, /) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatter2::FormatUInt(System.UInt64)
    @abstractmethod
    def format_uint(self, value: winrt.system.UInt64, /) -> str: ...

@typing.final
class _INumberFormatterOptions: ...

class INumberFormatterOptions(winrt._winrt.IInspectable):
    # System.Int32 Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_FractionDigits()
    @_property
    @abstractmethod
    def fraction_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.INumberFormatterOptions::put_FractionDigits(System.Int32)
    @fraction_digits.setter
    @abstractmethod
    def fraction_digits(self, value: winrt.system.Int32) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_GeographicRegion()
    @_property
    @abstractmethod
    def geographic_region(self) -> str: ...
    # System.Int32 Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_IntegerDigits()
    @_property
    @abstractmethod
    def integer_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.INumberFormatterOptions::put_IntegerDigits(System.Int32)
    @integer_digits.setter
    @abstractmethod
    def integer_digits(self, value: winrt.system.Int32) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_IsDecimalPointAlwaysDisplayed()
    @_property
    @abstractmethod
    def is_decimal_point_always_displayed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.INumberFormatterOptions::put_IsDecimalPointAlwaysDisplayed(System.Boolean)
    @is_decimal_point_always_displayed.setter
    @abstractmethod
    def is_decimal_point_always_displayed(self, value: bool) -> None: ...
    # System.Boolean Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_IsGrouped()
    @_property
    @abstractmethod
    def is_grouped(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.INumberFormatterOptions::put_IsGrouped(System.Boolean)
    @is_grouped.setter
    @abstractmethod
    def is_grouped(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_Languages()
    @_property
    @abstractmethod
    def languages(self) -> typing.Sequence[str]: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_NumeralSystem()
    @_property
    @abstractmethod
    def numeral_system(self) -> str: ...
    # System.Void Windows.Globalization.NumberFormatting.INumberFormatterOptions::put_NumeralSystem(System.String)
    @numeral_system.setter
    @abstractmethod
    def numeral_system(self, value: str) -> None: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_ResolvedGeographicRegion()
    @_property
    @abstractmethod
    def resolved_geographic_region(self) -> str: ...
    # System.String Windows.Globalization.NumberFormatting.INumberFormatterOptions::get_ResolvedLanguage()
    @_property
    @abstractmethod
    def resolved_language(self) -> str: ...

@typing.final
class _INumberParser: ...

class INumberParser(winrt._winrt.IInspectable):
    # Windows.Foundation.IReference`1<System.Double> Windows.Globalization.NumberFormatting.INumberParser::ParseDouble(System.String)
    @abstractmethod
    def parse_double(self, text: str, /) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Foundation.IReference`1<System.Int64> Windows.Globalization.NumberFormatting.INumberParser::ParseInt(System.String)
    @abstractmethod
    def parse_int(self, text: str, /) -> typing.Optional[winrt.system.Int64]: ...
    # Windows.Foundation.IReference`1<System.UInt64> Windows.Globalization.NumberFormatting.INumberParser::ParseUInt(System.String)
    @abstractmethod
    def parse_uint(self, text: str, /) -> typing.Optional[winrt.system.UInt64]: ...

@typing.final
class _INumberRounder: ...

class INumberRounder(winrt._winrt.IInspectable):
    # System.Double Windows.Globalization.NumberFormatting.INumberRounder::RoundDouble(System.Double)
    @abstractmethod
    def round_double(self, value: winrt.system.Double, /) -> winrt.system.Double: ...
    # System.Int32 Windows.Globalization.NumberFormatting.INumberRounder::RoundInt32(System.Int32)
    @abstractmethod
    def round_int32(self, value: winrt.system.Int32, /) -> winrt.system.Int32: ...
    # System.Int64 Windows.Globalization.NumberFormatting.INumberRounder::RoundInt64(System.Int64)
    @abstractmethod
    def round_int64(self, value: winrt.system.Int64, /) -> winrt.system.Int64: ...
    # System.Single Windows.Globalization.NumberFormatting.INumberRounder::RoundSingle(System.Single)
    @abstractmethod
    def round_single(self, value: winrt.system.Single, /) -> winrt.system.Single: ...
    # System.UInt32 Windows.Globalization.NumberFormatting.INumberRounder::RoundUInt32(System.UInt32)
    @abstractmethod
    def round_uint32(self, value: winrt.system.UInt32, /) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Globalization.NumberFormatting.INumberRounder::RoundUInt64(System.UInt64)
    @abstractmethod
    def round_uint64(self, value: winrt.system.UInt64, /) -> winrt.system.UInt64: ...

@typing.final
class _INumberRounderOption: ...

class INumberRounderOption(winrt._winrt.IInspectable):
    # Windows.Globalization.NumberFormatting.INumberRounder Windows.Globalization.NumberFormatting.INumberRounderOption::get_NumberRounder()
    @_property
    @abstractmethod
    def number_rounder(self) -> INumberRounder: ...
    # System.Void Windows.Globalization.NumberFormatting.INumberRounderOption::put_NumberRounder(Windows.Globalization.NumberFormatting.INumberRounder)
    @number_rounder.setter
    @abstractmethod
    def number_rounder(self, value: INumberRounder) -> None: ...

@typing.final
class _ISignedZeroOption: ...

class ISignedZeroOption(winrt._winrt.IInspectable):
    # System.Boolean Windows.Globalization.NumberFormatting.ISignedZeroOption::get_IsZeroSigned()
    @_property
    @abstractmethod
    def is_zero_signed(self) -> bool: ...
    # System.Void Windows.Globalization.NumberFormatting.ISignedZeroOption::put_IsZeroSigned(System.Boolean)
    @is_zero_signed.setter
    @abstractmethod
    def is_zero_signed(self, value: bool) -> None: ...

@typing.final
class _ISignificantDigitsOption: ...

class ISignificantDigitsOption(winrt._winrt.IInspectable):
    # System.Int32 Windows.Globalization.NumberFormatting.ISignificantDigitsOption::get_SignificantDigits()
    @_property
    @abstractmethod
    def significant_digits(self) -> winrt.system.Int32: ...
    # System.Void Windows.Globalization.NumberFormatting.ISignificantDigitsOption::put_SignificantDigits(System.Int32)
    @significant_digits.setter
    @abstractmethod
    def significant_digits(self, value: winrt.system.Int32) -> None: ...

