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

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

import winrt._winrt
import winrt.system
import winrt.windows.foundation
import winrt.windows.foundation.collections
import winrt.windows.storage.streams

from winrt.windows.devices.sms import CellularClass, SmsBroadcastType, SmsDataFormat, SmsDeviceStatus, SmsEncoding, SmsFilterActionType, SmsGeographicalScope, SmsMessageClass, SmsMessageFilter, SmsMessageType, SmsModemErrorCode
from winrt.windows.devices.sms import SmsDeviceStatusChangedEventHandler, SmsMessageReceivedEventHandler

Self = typing.TypeVar('Self')

@typing.final
class SmsEncodedLength:
    segment_count: winrt.system.UInt32
    character_count_last_segment: winrt.system.UInt32
    characters_per_segment: winrt.system.UInt32
    byte_count_last_segment: winrt.system.UInt32
    bytes_per_segment: winrt.system.UInt32
    def __init__(self, segment_count: winrt.system.UInt32, character_count_last_segment: winrt.system.UInt32, characters_per_segment: winrt.system.UInt32, byte_count_last_segment: winrt.system.UInt32, bytes_per_segment: winrt.system.UInt32) -> None: ...

@typing.final
class DeleteSmsMessageOperation(winrt.system.Object):
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DeleteSmsMessageOperation: ...
    def cancel(self) -> None: ...
    def close(self) -> None: ...
    def get_results(self) -> None: ...
    @_property
    def error_code(self) -> winrt.windows.foundation.HResult: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def status(self) -> winrt.windows.foundation.AsyncStatus: ...
    @_property
    def completed(self) -> typing.Optional[winrt.windows.foundation.AsyncActionCompletedHandler]: ...
    @completed.setter
    def completed(self, value: typing.Optional[winrt.windows.foundation.AsyncActionCompletedHandler]) -> None: ...

@typing.final
class DeleteSmsMessagesOperation(winrt.system.Object):
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DeleteSmsMessagesOperation: ...
    def cancel(self) -> None: ...
    def close(self) -> None: ...
    def get_results(self) -> None: ...
    @_property
    def error_code(self) -> winrt.windows.foundation.HResult: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def status(self) -> winrt.windows.foundation.AsyncStatus: ...
    @_property
    def completed(self) -> typing.Optional[winrt.windows.foundation.AsyncActionCompletedHandler]: ...
    @completed.setter
    def completed(self, value: typing.Optional[winrt.windows.foundation.AsyncActionCompletedHandler]) -> None: ...

@typing.final
class GetSmsDeviceOperation(winrt.system.Object):
    def __await__(self) -> typing.Generator[typing.Any, None, typing.Optional[SmsDevice]]: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GetSmsDeviceOperation: ...
    def cancel(self) -> None: ...
    def close(self) -> None: ...
    def get_results(self) -> typing.Optional[SmsDevice]: ...
    @_property
    def error_code(self) -> winrt.windows.foundation.HResult: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def status(self) -> winrt.windows.foundation.AsyncStatus: ...
    @_property
    def completed(self) -> typing.Optional[winrt.windows.foundation.AsyncOperationCompletedHandler[SmsDevice]]: ...
    @completed.setter
    def completed(self, value: typing.Optional[winrt.windows.foundation.AsyncOperationCompletedHandler[SmsDevice]]) -> None: ...

@typing.final
class GetSmsMessageOperation(winrt.system.Object):
    def __await__(self) -> typing.Generator[typing.Any, None, typing.Optional[ISmsMessage]]: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GetSmsMessageOperation: ...
    def cancel(self) -> None: ...
    def close(self) -> None: ...
    def get_results(self) -> typing.Optional[ISmsMessage]: ...
    @_property
    def error_code(self) -> winrt.windows.foundation.HResult: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def status(self) -> winrt.windows.foundation.AsyncStatus: ...
    @_property
    def completed(self) -> typing.Optional[winrt.windows.foundation.AsyncOperationCompletedHandler[ISmsMessage]]: ...
    @completed.setter
    def completed(self, value: typing.Optional[winrt.windows.foundation.AsyncOperationCompletedHandler[ISmsMessage]]) -> None: ...

@typing.final
class GetSmsMessagesOperation(winrt.system.Object):
    def __await__(self) -> typing.Generator[typing.Any, None, typing.Optional[winrt.windows.foundation.collections.IVectorView[ISmsMessage]]]: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GetSmsMessagesOperation: ...
    def cancel(self) -> None: ...
    def close(self) -> None: ...
    def get_results(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[ISmsMessage]]: ...
    @_property
    def error_code(self) -> winrt.windows.foundation.HResult: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def status(self) -> winrt.windows.foundation.AsyncStatus: ...
    @_property
    def progress(self) -> typing.Optional[winrt.windows.foundation.AsyncOperationProgressHandler[winrt.windows.foundation.collections.IVectorView[ISmsMessage], winrt.system.Int32]]: ...
    @progress.setter
    def progress(self, value: typing.Optional[winrt.windows.foundation.AsyncOperationProgressHandler[winrt.windows.foundation.collections.IVectorView[ISmsMessage], winrt.system.Int32]]) -> None: ...
    @_property
    def completed(self) -> typing.Optional[winrt.windows.foundation.AsyncOperationWithProgressCompletedHandler[winrt.windows.foundation.collections.IVectorView[ISmsMessage], winrt.system.Int32]]: ...
    @completed.setter
    def completed(self, value: typing.Optional[winrt.windows.foundation.AsyncOperationWithProgressCompletedHandler[winrt.windows.foundation.collections.IVectorView[ISmsMessage], winrt.system.Int32]]) -> None: ...

@typing.final
class SendSmsMessageOperation(winrt.system.Object):
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SendSmsMessageOperation: ...
    def cancel(self) -> None: ...
    def close(self) -> None: ...
    def get_results(self) -> None: ...
    @_property
    def error_code(self) -> winrt.windows.foundation.HResult: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def status(self) -> winrt.windows.foundation.AsyncStatus: ...
    @_property
    def completed(self) -> typing.Optional[winrt.windows.foundation.AsyncActionCompletedHandler]: ...
    @completed.setter
    def completed(self, value: typing.Optional[winrt.windows.foundation.AsyncActionCompletedHandler]) -> None: ...

@typing.final
class SmsAppMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsAppMessage: ...
    def __new__(cls: typing.Type[SmsAppMessage]) -> SmsAppMessage:...
    @_property
    def protocol_id(self) -> winrt.system.Int32: ...
    @protocol_id.setter
    def protocol_id(self, value: winrt.system.Int32) -> None: ...
    @_property
    def port_number(self) -> winrt.system.Int32: ...
    @port_number.setter
    def port_number(self, value: winrt.system.Int32) -> None: ...
    @_property
    def is_delivery_notification_enabled(self) -> bool: ...
    @is_delivery_notification_enabled.setter
    def is_delivery_notification_enabled(self, value: bool) -> None: ...
    @_property
    def retry_attempt_count(self) -> winrt.system.Int32: ...
    @retry_attempt_count.setter
    def retry_attempt_count(self, value: winrt.system.Int32) -> None: ...
    @_property
    def encoding(self) -> SmsEncoding: ...
    @encoding.setter
    def encoding(self, value: SmsEncoding) -> None: ...
    @_property
    def body(self) -> str: ...
    @body.setter
    def body(self, value: str) -> None: ...
    @_property
    def callback_number(self) -> str: ...
    @callback_number.setter
    def callback_number(self, value: str) -> None: ...
    @_property
    def binary_body(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @binary_body.setter
    def binary_body(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...
    @_property
    def to(self) -> str: ...
    @to.setter
    def to(self, value: str) -> None: ...
    @_property
    def teleservice_id(self) -> winrt.system.Int32: ...
    @teleservice_id.setter
    def teleservice_id(self, value: winrt.system.Int32) -> None: ...
    @_property
    def from_(self) -> str: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def sim_icc_id(self) -> str: ...

@typing.final
class SmsBinaryMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsBinaryMessage: ...
    def __new__(cls: typing.Type[SmsBinaryMessage]) -> SmsBinaryMessage:...
    def get_data(self) -> winrt.system.UInt8: ...
    def set_data(self, value: winrt.system.Array[winrt.system.UInt8], /) -> None: ...
    @_property
    def format(self) -> SmsDataFormat: ...
    @format.setter
    def format(self, value: SmsDataFormat) -> None: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...

@typing.final
class SmsBroadcastMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsBroadcastMessage: ...
    @_property
    def body(self) -> str: ...
    @_property
    def broadcast_type(self) -> SmsBroadcastType: ...
    @_property
    def channel(self) -> winrt.system.Int32: ...
    @_property
    def geographical_scope(self) -> SmsGeographicalScope: ...
    @_property
    def is_emergency_alert(self) -> bool: ...
    @_property
    def is_user_popup_requested(self) -> bool: ...
    @_property
    def message_code(self) -> winrt.system.Int32: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...
    @_property
    def to(self) -> str: ...
    @_property
    def update_number(self) -> winrt.system.Int32: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def sim_icc_id(self) -> str: ...

@typing.final
class SmsDevice_Static(type):
    def from_id_async(cls, device_id: str, /) -> winrt.windows.foundation.IAsyncOperation[SmsDevice]: ...
    def from_network_account_id_async(cls, network_account_id: str, /) -> winrt.windows.foundation.IAsyncOperation[SmsDevice]: ...
    def get_default_async(cls) -> winrt.windows.foundation.IAsyncOperation[SmsDevice]: ...
    def get_device_selector(cls) -> str: ...

@typing.final
class SmsDevice(winrt.system.Object, metaclass=SmsDevice_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsDevice: ...
    def calculate_length(self, message: typing.Optional[SmsTextMessage], /) -> SmsEncodedLength: ...
    def send_message_async(self, message: typing.Optional[ISmsMessage], /) -> SendSmsMessageOperation: ...
    def add_sms_device_status_changed(self, event_handler: typing.Optional[SmsDeviceStatusChangedEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_sms_device_status_changed(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_sms_message_received(self, event_handler: typing.Optional[SmsMessageReceivedEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_sms_message_received(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def account_phone_number(self) -> str: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_status(self) -> SmsDeviceStatus: ...
    @_property
    def message_store(self) -> typing.Optional[SmsDeviceMessageStore]: ...

@typing.final
class SmsDevice2_Static(type):
    def from_id(cls, device_id: str, /) -> typing.Optional[SmsDevice2]: ...
    def from_parent_id(cls, parent_device_id: str, /) -> typing.Optional[SmsDevice2]: ...
    def get_default(cls) -> typing.Optional[SmsDevice2]: ...
    def get_device_selector(cls) -> str: ...

@typing.final
class SmsDevice2(winrt.system.Object, metaclass=SmsDevice2_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsDevice2: ...
    def calculate_length(self, message: typing.Optional[ISmsMessageBase], /) -> SmsEncodedLength: ...
    def send_message_and_get_result_async(self, message: typing.Optional[ISmsMessageBase], /) -> winrt.windows.foundation.IAsyncOperation[SmsSendMessageResult]: ...
    def add_device_status_changed(self, event_handler: winrt.windows.foundation.TypedEventHandler[SmsDevice2, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_device_status_changed(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def smsc_address(self) -> str: ...
    @smsc_address.setter
    def smsc_address(self, value: str) -> None: ...
    @_property
    def account_phone_number(self) -> str: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def device_status(self) -> SmsDeviceStatus: ...
    @_property
    def parent_device_id(self) -> str: ...

@typing.final
class SmsDeviceMessageStore(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsDeviceMessageStore: ...
    def delete_message_async(self, message_id: winrt.system.UInt32, /) -> winrt.windows.foundation.IAsyncAction: ...
    def delete_messages_async(self, message_filter: SmsMessageFilter, /) -> winrt.windows.foundation.IAsyncAction: ...
    def get_message_async(self, message_id: winrt.system.UInt32, /) -> winrt.windows.foundation.IAsyncOperation[ISmsMessage]: ...
    def get_messages_async(self, message_filter: SmsMessageFilter, /) -> winrt.windows.foundation.IAsyncOperationWithProgress[winrt.windows.foundation.collections.IVectorView[ISmsMessage], winrt.system.Int32]: ...
    @_property
    def max_messages(self) -> winrt.system.UInt32: ...

@typing.final
class SmsFilterRule(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsFilterRule: ...
    def __new__(cls: typing.Type[SmsFilterRule], message_type: SmsMessageType) -> SmsFilterRule:...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @cellular_class.setter
    def cellular_class(self, value: CellularClass) -> None: ...
    @_property
    def broadcast_channels(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[winrt.system.Int32]]: ...
    @_property
    def broadcast_types(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[SmsBroadcastType]]: ...
    @_property
    def device_ids(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[str]]: ...
    @_property
    def imsi_prefixes(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[str]]: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def port_numbers(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[winrt.system.Int32]]: ...
    @_property
    def protocol_ids(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[winrt.system.Int32]]: ...
    @_property
    def sender_numbers(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[str]]: ...
    @_property
    def teleservice_ids(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[winrt.system.Int32]]: ...
    @_property
    def text_message_prefixes(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[str]]: ...
    @_property
    def wap_application_ids(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[str]]: ...
    @_property
    def wap_content_types(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[str]]: ...

@typing.final
class SmsFilterRules(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsFilterRules: ...
    def __new__(cls: typing.Type[SmsFilterRules], action_type: SmsFilterActionType) -> SmsFilterRules:...
    @_property
    def action_type(self) -> SmsFilterActionType: ...
    @_property
    def rules(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[SmsFilterRule]]: ...

@typing.final
class SmsMessageReceivedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsMessageReceivedEventArgs: ...
    @_property
    def binary_message(self) -> typing.Optional[SmsBinaryMessage]: ...
    @_property
    def text_message(self) -> typing.Optional[SmsTextMessage]: ...

@typing.final
class SmsMessageReceivedTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsMessageReceivedTriggerDetails: ...
    def accept(self) -> None: ...
    def drop(self) -> None: ...
    @_property
    def app_message(self) -> typing.Optional[SmsAppMessage]: ...
    @_property
    def broadcast_message(self) -> typing.Optional[SmsBroadcastMessage]: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def status_message(self) -> typing.Optional[SmsStatusMessage]: ...
    @_property
    def text_message(self) -> typing.Optional[SmsTextMessage2]: ...
    @_property
    def voicemail_message(self) -> typing.Optional[SmsVoicemailMessage]: ...
    @_property
    def wap_message(self) -> typing.Optional[SmsWapMessage]: ...

@typing.final
class SmsMessageRegistration_Static(type):
    def register(cls, id: str, filter_rules: typing.Optional[SmsFilterRules], /) -> typing.Optional[SmsMessageRegistration]: ...
    @_property
    def all_registrations(cls) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmsMessageRegistration]]: ...

@typing.final
class SmsMessageRegistration(winrt.system.Object, metaclass=SmsMessageRegistration_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsMessageRegistration: ...
    def unregister(self) -> None: ...
    def add_message_received(self, event_handler: winrt.windows.foundation.TypedEventHandler[SmsMessageRegistration, SmsMessageReceivedTriggerDetails], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_message_received(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def id(self) -> str: ...

@typing.final
class SmsReceivedEventDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsReceivedEventDetails: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def message_index(self) -> winrt.system.UInt32: ...
    @_property
    def binary_message(self) -> typing.Optional[SmsBinaryMessage]: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...

@typing.final
class SmsSendMessageResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsSendMessageResult: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def is_error_transient(self) -> bool: ...
    @_property
    def is_successful(self) -> bool: ...
    @_property
    def message_reference_numbers(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[winrt.system.Int32]]: ...
    @_property
    def modem_error_code(self) -> SmsModemErrorCode: ...
    @_property
    def network_cause_code(self) -> winrt.system.Int32: ...
    @_property
    def transport_failure_cause(self) -> winrt.system.Int32: ...

@typing.final
class SmsStatusMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsStatusMessage: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def sim_icc_id(self) -> str: ...
    @_property
    def status(self) -> winrt.system.Int32: ...
    @_property
    def body(self) -> str: ...
    @_property
    def discharge_time(self) -> datetime.datetime: ...
    @_property
    def from_(self) -> str: ...
    @_property
    def message_reference_number(self) -> winrt.system.Int32: ...
    @_property
    def service_center_timestamp(self) -> datetime.datetime: ...
    @_property
    def to(self) -> str: ...

@typing.final
class SmsTextMessage_Static(type):
    def from_binary_data(cls, format: SmsDataFormat, value: winrt.system.Array[winrt.system.UInt8], /) -> typing.Optional[SmsTextMessage]: ...
    def from_binary_message(cls, binary_message: typing.Optional[SmsBinaryMessage], /) -> typing.Optional[SmsTextMessage]: ...

@typing.final
class SmsTextMessage(winrt.system.Object, metaclass=SmsTextMessage_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsTextMessage: ...
    def __new__(cls: typing.Type[SmsTextMessage]) -> SmsTextMessage:...
    def to_binary_messages(self, format: SmsDataFormat, /) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[ISmsBinaryMessage]]: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def to(self) -> str: ...
    @to.setter
    def to(self, value: str) -> None: ...
    @_property
    def from_(self) -> str: ...
    @from_.setter
    def from_(self, value: str) -> None: ...
    @_property
    def encoding(self) -> SmsEncoding: ...
    @encoding.setter
    def encoding(self, value: SmsEncoding) -> None: ...
    @_property
    def body(self) -> str: ...
    @body.setter
    def body(self, value: str) -> None: ...
    @_property
    def part_count(self) -> winrt.system.UInt32: ...
    @_property
    def part_number(self) -> winrt.system.UInt32: ...
    @_property
    def part_reference_id(self) -> winrt.system.UInt32: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...

@typing.final
class SmsTextMessage2(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsTextMessage2: ...
    def __new__(cls: typing.Type[SmsTextMessage2]) -> SmsTextMessage2:...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def sim_icc_id(self) -> str: ...
    @_property
    def retry_attempt_count(self) -> winrt.system.Int32: ...
    @retry_attempt_count.setter
    def retry_attempt_count(self, value: winrt.system.Int32) -> None: ...
    @_property
    def to(self) -> str: ...
    @to.setter
    def to(self, value: str) -> None: ...
    @_property
    def is_delivery_notification_enabled(self) -> bool: ...
    @is_delivery_notification_enabled.setter
    def is_delivery_notification_enabled(self, value: bool) -> None: ...
    @_property
    def encoding(self) -> SmsEncoding: ...
    @encoding.setter
    def encoding(self, value: SmsEncoding) -> None: ...
    @_property
    def callback_number(self) -> str: ...
    @callback_number.setter
    def callback_number(self, value: str) -> None: ...
    @_property
    def body(self) -> str: ...
    @body.setter
    def body(self, value: str) -> None: ...
    @_property
    def protocol_id(self) -> winrt.system.Int32: ...
    @_property
    def from_(self) -> str: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...
    @_property
    def teleservice_id(self) -> winrt.system.Int32: ...

@typing.final
class SmsVoicemailMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsVoicemailMessage: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def sim_icc_id(self) -> str: ...
    @_property
    def body(self) -> str: ...
    @_property
    def message_count(self) -> typing.Optional[typing.Optional[winrt.system.Int32]]: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...
    @_property
    def to(self) -> str: ...

@typing.final
class SmsWapMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmsWapMessage: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def sim_icc_id(self) -> str: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...
    @_property
    def application_id(self) -> str: ...
    @_property
    def binary_body(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def content_type(self) -> str: ...
    @_property
    def from_(self) -> str: ...
    @_property
    def headers(self) -> typing.Optional[winrt.windows.foundation.collections.IMap[str, str]]: ...
    @_property
    def to(self) -> str: ...

@typing.final
class ISmsBinaryMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ISmsBinaryMessage: ...
    def get_data(self) -> winrt.system.UInt8: ...
    def set_data(self, value: winrt.system.Array[winrt.system.UInt8], /) -> None: ...
    @_property
    def format(self) -> SmsDataFormat: ...
    @format.setter
    def format(self, value: SmsDataFormat) -> None: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...

@typing.final
class ISmsDevice(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ISmsDevice: ...
    def calculate_length(self, message: typing.Optional[SmsTextMessage], /) -> SmsEncodedLength: ...
    def send_message_async(self, message: typing.Optional[ISmsMessage], /) -> SendSmsMessageOperation: ...
    def add_sms_device_status_changed(self, event_handler: typing.Optional[SmsDeviceStatusChangedEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_sms_device_status_changed(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_sms_message_received(self, event_handler: typing.Optional[SmsMessageReceivedEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_sms_message_received(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def account_phone_number(self) -> str: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_status(self) -> SmsDeviceStatus: ...
    @_property
    def message_store(self) -> typing.Optional[SmsDeviceMessageStore]: ...

@typing.final
class ISmsMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ISmsMessage: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...

@typing.final
class ISmsMessageBase(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ISmsMessageBase: ...
    @_property
    def cellular_class(self) -> CellularClass: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...
    @_property
    def message_type(self) -> SmsMessageType: ...
    @_property
    def sim_icc_id(self) -> str: ...

@typing.final
class ISmsTextMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ISmsTextMessage: ...
    def to_binary_messages(self, format: SmsDataFormat, /) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[ISmsBinaryMessage]]: ...
    @_property
    def body(self) -> str: ...
    @body.setter
    def body(self, value: str) -> None: ...
    @_property
    def encoding(self) -> SmsEncoding: ...
    @encoding.setter
    def encoding(self, value: SmsEncoding) -> None: ...
    @_property
    def from_(self) -> str: ...
    @from_.setter
    def from_(self, value: str) -> None: ...
    @_property
    def part_count(self) -> winrt.system.UInt32: ...
    @_property
    def part_number(self) -> winrt.system.UInt32: ...
    @_property
    def part_reference_id(self) -> winrt.system.UInt32: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...
    @_property
    def to(self) -> str: ...
    @to.setter
    def to(self, value: str) -> None: ...
    @_property
    def id(self) -> winrt.system.UInt32: ...
    @_property
    def message_class(self) -> SmsMessageClass: ...

