# 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
import winrt.windows.storage.streams as 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:
    @_property
    def segment_count(self) -> winrt.system.UInt32: ...
    @_property
    def character_count_last_segment(self) -> winrt.system.UInt32: ...
    @_property
    def characters_per_segment(self) -> winrt.system.UInt32: ...
    @_property
    def byte_count_last_segment(self) -> winrt.system.UInt32: ...
    @_property
    def bytes_per_segment(self) -> winrt.system.UInt32: ...
    def __new__(cls, segment_count: winrt.system.UInt32 = 0, character_count_last_segment: winrt.system.UInt32 = 0, characters_per_segment: winrt.system.UInt32 = 0, byte_count_last_segment: winrt.system.UInt32 = 0, bytes_per_segment: winrt.system.UInt32 = 0) -> SmsEncodedLength: ...
    def __replace__(self, /, **changes: typing.Any) -> SmsEncodedLength: ...
    def unpack(self) -> typing.Tuple[winrt.system.UInt32, winrt.system.UInt32, winrt.system.UInt32, winrt.system.UInt32, winrt.system.UInt32]: ...

@typing.final
class DeleteSmsMessageOperation(winrt.system.Object, windows_foundation.IAsyncAction, windows_foundation.IAsyncInfo):
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessageOperation::Cancel()
    def cancel(self) -> None: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessageOperation::Close()
    def close(self) -> None: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessageOperation::GetResults()
    def get_results(self) -> None: ...
    # Windows.Foundation.HResult Windows.Devices.Sms.DeleteSmsMessageOperation::get_ErrorCode()
    @_property
    def error_code(self) -> windows_foundation.HResult: ...
    # System.UInt32 Windows.Devices.Sms.DeleteSmsMessageOperation::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.AsyncStatus Windows.Devices.Sms.DeleteSmsMessageOperation::get_Status()
    @_property
    def status(self) -> windows_foundation.AsyncStatus: ...
    # Windows.Foundation.AsyncActionCompletedHandler Windows.Devices.Sms.DeleteSmsMessageOperation::get_Completed()
    @_property
    def completed(self) -> windows_foundation.AsyncActionCompletedHandler: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessageOperation::put_Completed(Windows.Foundation.AsyncActionCompletedHandler)
    @completed.setter
    def completed(self, value: windows_foundation.AsyncActionCompletedHandler) -> None: ...

@typing.final
class DeleteSmsMessagesOperation(winrt.system.Object, windows_foundation.IAsyncAction, windows_foundation.IAsyncInfo):
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessagesOperation::Cancel()
    def cancel(self) -> None: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessagesOperation::Close()
    def close(self) -> None: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessagesOperation::GetResults()
    def get_results(self) -> None: ...
    # Windows.Foundation.HResult Windows.Devices.Sms.DeleteSmsMessagesOperation::get_ErrorCode()
    @_property
    def error_code(self) -> windows_foundation.HResult: ...
    # System.UInt32 Windows.Devices.Sms.DeleteSmsMessagesOperation::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.AsyncStatus Windows.Devices.Sms.DeleteSmsMessagesOperation::get_Status()
    @_property
    def status(self) -> windows_foundation.AsyncStatus: ...
    # Windows.Foundation.AsyncActionCompletedHandler Windows.Devices.Sms.DeleteSmsMessagesOperation::get_Completed()
    @_property
    def completed(self) -> windows_foundation.AsyncActionCompletedHandler: ...
    # System.Void Windows.Devices.Sms.DeleteSmsMessagesOperation::put_Completed(Windows.Foundation.AsyncActionCompletedHandler)
    @completed.setter
    def completed(self, value: windows_foundation.AsyncActionCompletedHandler) -> None: ...

@typing.final
class GetSmsDeviceOperation(winrt.system.Object, windows_foundation.IAsyncOperation[SmsDevice], windows_foundation.IAsyncInfo):
    def __await__(self) -> typing.Generator[typing.Any, None, SmsDevice]: ...
    # System.Void Windows.Devices.Sms.GetSmsDeviceOperation::Cancel()
    def cancel(self) -> None: ...
    # System.Void Windows.Devices.Sms.GetSmsDeviceOperation::Close()
    def close(self) -> None: ...
    # Windows.Devices.Sms.SmsDevice Windows.Devices.Sms.GetSmsDeviceOperation::GetResults()
    def get_results(self) -> SmsDevice: ...
    # Windows.Foundation.HResult Windows.Devices.Sms.GetSmsDeviceOperation::get_ErrorCode()
    @_property
    def error_code(self) -> windows_foundation.HResult: ...
    # System.UInt32 Windows.Devices.Sms.GetSmsDeviceOperation::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.AsyncStatus Windows.Devices.Sms.GetSmsDeviceOperation::get_Status()
    @_property
    def status(self) -> windows_foundation.AsyncStatus: ...
    # Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.Sms.SmsDevice> Windows.Devices.Sms.GetSmsDeviceOperation::get_Completed()
    @_property
    def completed(self) -> windows_foundation.AsyncOperationCompletedHandler[SmsDevice]: ...
    # System.Void Windows.Devices.Sms.GetSmsDeviceOperation::put_Completed(Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.Sms.SmsDevice>)
    @completed.setter
    def completed(self, value: windows_foundation.AsyncOperationCompletedHandler[SmsDevice]) -> None: ...

@typing.final
class GetSmsMessageOperation(winrt.system.Object, windows_foundation.IAsyncOperation[ISmsMessage], windows_foundation.IAsyncInfo):
    def __await__(self) -> typing.Generator[typing.Any, None, ISmsMessage]: ...
    # System.Void Windows.Devices.Sms.GetSmsMessageOperation::Cancel()
    def cancel(self) -> None: ...
    # System.Void Windows.Devices.Sms.GetSmsMessageOperation::Close()
    def close(self) -> None: ...
    # Windows.Devices.Sms.ISmsMessage Windows.Devices.Sms.GetSmsMessageOperation::GetResults()
    def get_results(self) -> ISmsMessage: ...
    # Windows.Foundation.HResult Windows.Devices.Sms.GetSmsMessageOperation::get_ErrorCode()
    @_property
    def error_code(self) -> windows_foundation.HResult: ...
    # System.UInt32 Windows.Devices.Sms.GetSmsMessageOperation::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.AsyncStatus Windows.Devices.Sms.GetSmsMessageOperation::get_Status()
    @_property
    def status(self) -> windows_foundation.AsyncStatus: ...
    # Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.Sms.ISmsMessage> Windows.Devices.Sms.GetSmsMessageOperation::get_Completed()
    @_property
    def completed(self) -> windows_foundation.AsyncOperationCompletedHandler[ISmsMessage]: ...
    # System.Void Windows.Devices.Sms.GetSmsMessageOperation::put_Completed(Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.Sms.ISmsMessage>)
    @completed.setter
    def completed(self, value: windows_foundation.AsyncOperationCompletedHandler[ISmsMessage]) -> None: ...

@typing.final
class GetSmsMessagesOperation(winrt.system.Object, windows_foundation.IAsyncOperationWithProgress[typing.Sequence[ISmsMessage], winrt.system.Int32], windows_foundation.IAsyncInfo):
    def __await__(self) -> typing.Generator[typing.Any, None, typing.Sequence[ISmsMessage]]: ...
    # System.Void Windows.Devices.Sms.GetSmsMessagesOperation::Cancel()
    def cancel(self) -> None: ...
    # System.Void Windows.Devices.Sms.GetSmsMessagesOperation::Close()
    def close(self) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsMessage> Windows.Devices.Sms.GetSmsMessagesOperation::GetResults()
    def get_results(self) -> typing.Sequence[ISmsMessage]: ...
    # Windows.Foundation.HResult Windows.Devices.Sms.GetSmsMessagesOperation::get_ErrorCode()
    @_property
    def error_code(self) -> windows_foundation.HResult: ...
    # System.UInt32 Windows.Devices.Sms.GetSmsMessagesOperation::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.AsyncStatus Windows.Devices.Sms.GetSmsMessagesOperation::get_Status()
    @_property
    def status(self) -> windows_foundation.AsyncStatus: ...
    # Windows.Foundation.AsyncOperationProgressHandler`2<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsMessage>,System.Int32> Windows.Devices.Sms.GetSmsMessagesOperation::get_Progress()
    @_property
    def progress(self) -> windows_foundation.AsyncOperationProgressHandler[typing.Sequence[ISmsMessage], winrt.system.Int32]: ...
    # System.Void Windows.Devices.Sms.GetSmsMessagesOperation::put_Progress(Windows.Foundation.AsyncOperationProgressHandler`2<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsMessage>,System.Int32>)
    @progress.setter
    def progress(self, value: windows_foundation.AsyncOperationProgressHandler[typing.Sequence[ISmsMessage], winrt.system.Int32]) -> None: ...
    # Windows.Foundation.AsyncOperationWithProgressCompletedHandler`2<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsMessage>,System.Int32> Windows.Devices.Sms.GetSmsMessagesOperation::get_Completed()
    @_property
    def completed(self) -> windows_foundation.AsyncOperationWithProgressCompletedHandler[typing.Sequence[ISmsMessage], winrt.system.Int32]: ...
    # System.Void Windows.Devices.Sms.GetSmsMessagesOperation::put_Completed(Windows.Foundation.AsyncOperationWithProgressCompletedHandler`2<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsMessage>,System.Int32>)
    @completed.setter
    def completed(self, value: windows_foundation.AsyncOperationWithProgressCompletedHandler[typing.Sequence[ISmsMessage], winrt.system.Int32]) -> None: ...

@typing.final
class SendSmsMessageOperation(winrt.system.Object, windows_foundation.IAsyncAction, windows_foundation.IAsyncInfo):
    def __await__(self) -> typing.Generator[typing.Any, None, None]: ...
    # System.Void Windows.Devices.Sms.SendSmsMessageOperation::Cancel()
    def cancel(self) -> None: ...
    # System.Void Windows.Devices.Sms.SendSmsMessageOperation::Close()
    def close(self) -> None: ...
    # System.Void Windows.Devices.Sms.SendSmsMessageOperation::GetResults()
    def get_results(self) -> None: ...
    # Windows.Foundation.HResult Windows.Devices.Sms.SendSmsMessageOperation::get_ErrorCode()
    @_property
    def error_code(self) -> windows_foundation.HResult: ...
    # System.UInt32 Windows.Devices.Sms.SendSmsMessageOperation::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.AsyncStatus Windows.Devices.Sms.SendSmsMessageOperation::get_Status()
    @_property
    def status(self) -> windows_foundation.AsyncStatus: ...
    # Windows.Foundation.AsyncActionCompletedHandler Windows.Devices.Sms.SendSmsMessageOperation::get_Completed()
    @_property
    def completed(self) -> windows_foundation.AsyncActionCompletedHandler: ...
    # System.Void Windows.Devices.Sms.SendSmsMessageOperation::put_Completed(Windows.Foundation.AsyncActionCompletedHandler)
    @completed.setter
    def completed(self, value: windows_foundation.AsyncActionCompletedHandler) -> None: ...

@typing.final
class SmsAppMessage(winrt.system.Object, ISmsMessageBase):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Int32 Windows.Devices.Sms.SmsAppMessage::get_ProtocolId()
    @_property
    def protocol_id(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_ProtocolId(System.Int32)
    @protocol_id.setter
    def protocol_id(self, value: winrt.system.Int32) -> None: ...
    # System.Int32 Windows.Devices.Sms.SmsAppMessage::get_PortNumber()
    @_property
    def port_number(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_PortNumber(System.Int32)
    @port_number.setter
    def port_number(self, value: winrt.system.Int32) -> None: ...
    # System.Boolean Windows.Devices.Sms.SmsAppMessage::get_IsDeliveryNotificationEnabled()
    @_property
    def is_delivery_notification_enabled(self) -> bool: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_IsDeliveryNotificationEnabled(System.Boolean)
    @is_delivery_notification_enabled.setter
    def is_delivery_notification_enabled(self, value: bool) -> None: ...
    # System.Int32 Windows.Devices.Sms.SmsAppMessage::get_RetryAttemptCount()
    @_property
    def retry_attempt_count(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_RetryAttemptCount(System.Int32)
    @retry_attempt_count.setter
    def retry_attempt_count(self, value: winrt.system.Int32) -> None: ...
    # Windows.Devices.Sms.SmsEncoding Windows.Devices.Sms.SmsAppMessage::get_Encoding()
    @_property
    def encoding(self) -> SmsEncoding: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_Encoding(Windows.Devices.Sms.SmsEncoding)
    @encoding.setter
    def encoding(self, value: SmsEncoding) -> None: ...
    # System.String Windows.Devices.Sms.SmsAppMessage::get_Body()
    @_property
    def body(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_Body(System.String)
    @body.setter
    def body(self, value: str) -> None: ...
    # System.String Windows.Devices.Sms.SmsAppMessage::get_CallbackNumber()
    @_property
    def callback_number(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_CallbackNumber(System.String)
    @callback_number.setter
    def callback_number(self, value: str) -> None: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.Sms.SmsAppMessage::get_BinaryBody()
    @_property
    def binary_body(self) -> windows_storage_streams.IBuffer: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_BinaryBody(Windows.Storage.Streams.IBuffer)
    @binary_body.setter
    def binary_body(self, value: windows_storage_streams.IBuffer) -> None: ...
    # System.String Windows.Devices.Sms.SmsAppMessage::get_To()
    @_property
    def to(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_To(System.String)
    @to.setter
    def to(self, value: str) -> None: ...
    # System.Int32 Windows.Devices.Sms.SmsAppMessage::get_TeleserviceId()
    @_property
    def teleservice_id(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Sms.SmsAppMessage::put_TeleserviceId(System.Int32)
    @teleservice_id.setter
    def teleservice_id(self, value: winrt.system.Int32) -> None: ...
    # System.String Windows.Devices.Sms.SmsAppMessage::get_From()
    @_property
    def from_(self) -> str: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsAppMessage::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsAppMessage::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.String Windows.Devices.Sms.SmsAppMessage::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsAppMessage::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsAppMessage::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # System.String Windows.Devices.Sms.SmsAppMessage::get_SimIccId()
    @_property
    def sim_icc_id(self) -> str: ...

@typing.final
class SmsBinaryMessage(winrt.system.Object, ISmsBinaryMessage, ISmsMessage):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Byte[] Windows.Devices.Sms.SmsBinaryMessage::GetData()
    # @deprecated("SmsBinaryMessage may be altered or unavailable for releases after Windows 10. Instead, use SmsAppMessage.")
    def get_data(self) -> winrt.system.Array[winrt.system.UInt8]: ...
    # System.Void Windows.Devices.Sms.SmsBinaryMessage::SetData(System.Byte[])
    # @deprecated("SmsBinaryMessage may be altered or unavailable for releases after Windows 10. Instead, use SmsAppMessage.")
    def set_data(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> None: ...
    # Windows.Devices.Sms.SmsDataFormat Windows.Devices.Sms.SmsBinaryMessage::get_Format()
    @_property
    def format(self) -> SmsDataFormat: ...
    # System.Void Windows.Devices.Sms.SmsBinaryMessage::put_Format(Windows.Devices.Sms.SmsDataFormat)
    @format.setter
    def format(self, value: SmsDataFormat) -> None: ...
    # System.UInt32 Windows.Devices.Sms.SmsBinaryMessage::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsBinaryMessage::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...

@typing.final
class SmsBroadcastMessage(winrt.system.Object, ISmsMessageBase):
    # System.String Windows.Devices.Sms.SmsBroadcastMessage::get_Body()
    @_property
    def body(self) -> str: ...
    # Windows.Devices.Sms.SmsBroadcastType Windows.Devices.Sms.SmsBroadcastMessage::get_BroadcastType()
    @_property
    def broadcast_type(self) -> SmsBroadcastType: ...
    # System.Int32 Windows.Devices.Sms.SmsBroadcastMessage::get_Channel()
    @_property
    def channel(self) -> winrt.system.Int32: ...
    # Windows.Devices.Sms.SmsGeographicalScope Windows.Devices.Sms.SmsBroadcastMessage::get_GeographicalScope()
    @_property
    def geographical_scope(self) -> SmsGeographicalScope: ...
    # System.Boolean Windows.Devices.Sms.SmsBroadcastMessage::get_IsEmergencyAlert()
    @_property
    def is_emergency_alert(self) -> bool: ...
    # System.Boolean Windows.Devices.Sms.SmsBroadcastMessage::get_IsUserPopupRequested()
    @_property
    def is_user_popup_requested(self) -> bool: ...
    # System.Int32 Windows.Devices.Sms.SmsBroadcastMessage::get_MessageCode()
    @_property
    def message_code(self) -> winrt.system.Int32: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsBroadcastMessage::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...
    # System.String Windows.Devices.Sms.SmsBroadcastMessage::get_To()
    @_property
    def to(self) -> str: ...
    # System.Int32 Windows.Devices.Sms.SmsBroadcastMessage::get_UpdateNumber()
    @_property
    def update_number(self) -> winrt.system.Int32: ...
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsBroadcastMessage::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.String Windows.Devices.Sms.SmsBroadcastMessage::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsBroadcastMessage::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsBroadcastMessage::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # System.String Windows.Devices.Sms.SmsBroadcastMessage::get_SimIccId()
    @_property
    def sim_icc_id(self) -> str: ...

@typing.final
class SmsDevice_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Sms.SmsDevice> Windows.Devices.Sms.SmsDevice::FromIdAsync(System.String)
    # @deprecated("ISmsDeviceStatics may be altered or unavailable for releases after Windows 10.")
    def from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[SmsDevice]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Sms.SmsDevice> Windows.Devices.Sms.SmsDevice::FromNetworkAccountIdAsync(System.String)
    # @deprecated("ISmsDeviceStatics2 may be altered or unavailable for releases after Windows 10.")
    def from_network_account_id_async(cls, network_account_id: str, /) -> windows_foundation.IAsyncOperation[SmsDevice]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Sms.SmsDevice> Windows.Devices.Sms.SmsDevice::GetDefaultAsync()
    # @deprecated("ISmsDeviceStatics may be altered or unavailable for releases after Windows 10.")
    def get_default_async(cls) -> windows_foundation.IAsyncOperation[SmsDevice]: ...
    # System.String Windows.Devices.Sms.SmsDevice::GetDeviceSelector()
    # @deprecated("ISmsDeviceStatics may be altered or unavailable for releases after Windows 10.")
    def get_device_selector(cls) -> str: ...

@typing.final
class SmsDevice(winrt.system.Object, ISmsDevice, metaclass=SmsDevice_Static):
    # Windows.Devices.Sms.SmsEncodedLength Windows.Devices.Sms.SmsDevice::CalculateLength(Windows.Devices.Sms.SmsTextMessage)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    def calculate_length(self, message: SmsTextMessage, /) -> SmsEncodedLength: ...
    # Windows.Devices.Sms.SendSmsMessageOperation Windows.Devices.Sms.SmsDevice::SendMessageAsync(Windows.Devices.Sms.ISmsMessage)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    def send_message_async(self, message: ISmsMessage, /) -> SendSmsMessageOperation: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Sms.SmsDevice::add_SmsDeviceStatusChanged(Windows.Devices.Sms.SmsDeviceStatusChangedEventHandler)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    def add_sms_device_status_changed(self, event_handler: SmsDeviceStatusChangedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Sms.SmsDevice::remove_SmsDeviceStatusChanged(Windows.Foundation.EventRegistrationToken)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    def remove_sms_device_status_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Sms.SmsDevice::add_SmsMessageReceived(Windows.Devices.Sms.SmsMessageReceivedEventHandler)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    def add_sms_message_received(self, event_handler: SmsMessageReceivedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Sms.SmsDevice::remove_SmsMessageReceived(Windows.Foundation.EventRegistrationToken)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    def remove_sms_message_received(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Devices.Sms.SmsDevice::get_AccountPhoneNumber()
    @_property
    def account_phone_number(self) -> str: ...
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsDevice::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # Windows.Devices.Sms.SmsDeviceStatus Windows.Devices.Sms.SmsDevice::get_DeviceStatus()
    @_property
    def device_status(self) -> SmsDeviceStatus: ...
    # Windows.Devices.Sms.SmsDeviceMessageStore Windows.Devices.Sms.SmsDevice::get_MessageStore()
    @_property
    def message_store(self) -> SmsDeviceMessageStore: ...

@typing.final
class SmsDevice2_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Sms.SmsDevice2 Windows.Devices.Sms.SmsDevice2::FromId(System.String)
    def from_id(cls, device_id: str, /) -> SmsDevice2: ...
    # Windows.Devices.Sms.SmsDevice2 Windows.Devices.Sms.SmsDevice2::FromParentId(System.String)
    def from_parent_id(cls, parent_device_id: str, /) -> SmsDevice2: ...
    # Windows.Devices.Sms.SmsDevice2 Windows.Devices.Sms.SmsDevice2::GetDefault()
    def get_default(cls) -> SmsDevice2: ...
    # System.String Windows.Devices.Sms.SmsDevice2::GetDeviceSelector()
    def get_device_selector(cls) -> str: ...

@typing.final
class SmsDevice2(winrt.system.Object, metaclass=SmsDevice2_Static):
    # Windows.Devices.Sms.SmsEncodedLength Windows.Devices.Sms.SmsDevice2::CalculateLength(Windows.Devices.Sms.ISmsMessageBase)
    def calculate_length(self, message: ISmsMessageBase, /) -> SmsEncodedLength: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Sms.SmsSendMessageResult> Windows.Devices.Sms.SmsDevice2::SendMessageAndGetResultAsync(Windows.Devices.Sms.ISmsMessageBase)
    def send_message_and_get_result_async(self, message: ISmsMessageBase, /) -> windows_foundation.IAsyncOperation[SmsSendMessageResult]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Sms.SmsDevice2::add_DeviceStatusChanged(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Sms.SmsDevice2,System.Object>)
    def add_device_status_changed(self, event_handler: windows_foundation.TypedEventHandler[SmsDevice2, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Sms.SmsDevice2::remove_DeviceStatusChanged(Windows.Foundation.EventRegistrationToken)
    def remove_device_status_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Devices.Sms.SmsDevice2::get_SmscAddress()
    @_property
    def smsc_address(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsDevice2::put_SmscAddress(System.String)
    @smsc_address.setter
    def smsc_address(self, value: str) -> None: ...
    # System.String Windows.Devices.Sms.SmsDevice2::get_AccountPhoneNumber()
    @_property
    def account_phone_number(self) -> str: ...
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsDevice2::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.String Windows.Devices.Sms.SmsDevice2::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.SmsDeviceStatus Windows.Devices.Sms.SmsDevice2::get_DeviceStatus()
    @_property
    def device_status(self) -> SmsDeviceStatus: ...
    # System.String Windows.Devices.Sms.SmsDevice2::get_ParentDeviceId()
    @_property
    def parent_device_id(self) -> str: ...

@typing.final
class SmsDeviceMessageStore(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Devices.Sms.SmsDeviceMessageStore::DeleteMessageAsync(System.UInt32)
    # @deprecated("SmsDeviceMessageStore may be altered or unavailable for releases after Windows 10.")
    def delete_message_async(self, message_id: winrt.system.UInt32, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Devices.Sms.SmsDeviceMessageStore::DeleteMessagesAsync(Windows.Devices.Sms.SmsMessageFilter)
    # @deprecated("SmsDeviceMessageStore may be altered or unavailable for releases after Windows 10.")
    def delete_messages_async(self, message_filter: SmsMessageFilter, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Sms.ISmsMessage> Windows.Devices.Sms.SmsDeviceMessageStore::GetMessageAsync(System.UInt32)
    # @deprecated("SmsDeviceMessageStore may be altered or unavailable for releases after Windows 10.")
    def get_message_async(self, message_id: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[ISmsMessage]: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsMessage>,System.Int32> Windows.Devices.Sms.SmsDeviceMessageStore::GetMessagesAsync(Windows.Devices.Sms.SmsMessageFilter)
    # @deprecated("SmsDeviceMessageStore may be altered or unavailable for releases after Windows 10.")
    def get_messages_async(self, message_filter: SmsMessageFilter, /) -> windows_foundation.IAsyncOperationWithProgress[typing.Sequence[ISmsMessage], winrt.system.Int32]: ...
    # System.UInt32 Windows.Devices.Sms.SmsDeviceMessageStore::get_MaxMessages()
    @_property
    def max_messages(self) -> winrt.system.UInt32: ...

@typing.final
class SmsFilterRule(winrt.system.Object):
    def __new__(cls: typing.Type[Self], message_type: SmsMessageType) -> Self: ...
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsFilterRule::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.Void Windows.Devices.Sms.SmsFilterRule::put_CellularClass(Windows.Devices.Sms.CellularClass)
    @cellular_class.setter
    def cellular_class(self, value: CellularClass) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.Int32> Windows.Devices.Sms.SmsFilterRule::get_BroadcastChannels()
    @_property
    def broadcast_channels(self) -> typing.MutableSequence[winrt.system.Int32]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Sms.SmsBroadcastType> Windows.Devices.Sms.SmsFilterRule::get_BroadcastTypes()
    @_property
    def broadcast_types(self) -> typing.MutableSequence[SmsBroadcastType]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Sms.SmsFilterRule::get_DeviceIds()
    @_property
    def device_ids(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Sms.SmsFilterRule::get_ImsiPrefixes()
    @_property
    def imsi_prefixes(self) -> typing.MutableSequence[str]: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsFilterRule::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # Windows.Foundation.Collections.IVector`1<System.Int32> Windows.Devices.Sms.SmsFilterRule::get_PortNumbers()
    @_property
    def port_numbers(self) -> typing.MutableSequence[winrt.system.Int32]: ...
    # Windows.Foundation.Collections.IVector`1<System.Int32> Windows.Devices.Sms.SmsFilterRule::get_ProtocolIds()
    @_property
    def protocol_ids(self) -> typing.MutableSequence[winrt.system.Int32]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Sms.SmsFilterRule::get_SenderNumbers()
    @_property
    def sender_numbers(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.Int32> Windows.Devices.Sms.SmsFilterRule::get_TeleserviceIds()
    @_property
    def teleservice_ids(self) -> typing.MutableSequence[winrt.system.Int32]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Sms.SmsFilterRule::get_TextMessagePrefixes()
    @_property
    def text_message_prefixes(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Sms.SmsFilterRule::get_WapApplicationIds()
    @_property
    def wap_application_ids(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Sms.SmsFilterRule::get_WapContentTypes()
    @_property
    def wap_content_types(self) -> typing.MutableSequence[str]: ...

@typing.final
class SmsFilterRules(winrt.system.Object):
    def __new__(cls: typing.Type[Self], action_type: SmsFilterActionType) -> Self: ...
    # Windows.Devices.Sms.SmsFilterActionType Windows.Devices.Sms.SmsFilterRules::get_ActionType()
    @_property
    def action_type(self) -> SmsFilterActionType: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Sms.SmsFilterRule> Windows.Devices.Sms.SmsFilterRules::get_Rules()
    @_property
    def rules(self) -> typing.MutableSequence[SmsFilterRule]: ...

@typing.final
class SmsMessageReceivedEventArgs(winrt.system.Object):
    # Windows.Devices.Sms.SmsBinaryMessage Windows.Devices.Sms.SmsMessageReceivedEventArgs::get_BinaryMessage()
    @_property
    def binary_message(self) -> SmsBinaryMessage: ...
    # Windows.Devices.Sms.SmsTextMessage Windows.Devices.Sms.SmsMessageReceivedEventArgs::get_TextMessage()
    @_property
    def text_message(self) -> SmsTextMessage: ...

@typing.final
class SmsMessageReceivedTriggerDetails(winrt.system.Object):
    # System.Void Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::Accept()
    def accept(self) -> None: ...
    # System.Void Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::Drop()
    def drop(self) -> None: ...
    # Windows.Devices.Sms.SmsAppMessage Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::get_AppMessage()
    @_property
    def app_message(self) -> SmsAppMessage: ...
    # Windows.Devices.Sms.SmsBroadcastMessage Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::get_BroadcastMessage()
    @_property
    def broadcast_message(self) -> SmsBroadcastMessage: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # Windows.Devices.Sms.SmsStatusMessage Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::get_StatusMessage()
    @_property
    def status_message(self) -> SmsStatusMessage: ...
    # Windows.Devices.Sms.SmsTextMessage2 Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::get_TextMessage()
    @_property
    def text_message(self) -> SmsTextMessage2: ...
    # Windows.Devices.Sms.SmsVoicemailMessage Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::get_VoicemailMessage()
    @_property
    def voicemail_message(self) -> SmsVoicemailMessage: ...
    # Windows.Devices.Sms.SmsWapMessage Windows.Devices.Sms.SmsMessageReceivedTriggerDetails::get_WapMessage()
    @_property
    def wap_message(self) -> SmsWapMessage: ...

@typing.final
class SmsMessageRegistration_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Sms.SmsMessageRegistration Windows.Devices.Sms.SmsMessageRegistration::Register(System.String,Windows.Devices.Sms.SmsFilterRules)
    def register(cls, id: str, filter_rules: SmsFilterRules, /) -> SmsMessageRegistration: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.SmsMessageRegistration> Windows.Devices.Sms.SmsMessageRegistration::get_AllRegistrations()
    @_property
    def all_registrations(cls) -> typing.Sequence[SmsMessageRegistration]: ...

@typing.final
class SmsMessageRegistration(winrt.system.Object, metaclass=SmsMessageRegistration_Static):
    # System.Void Windows.Devices.Sms.SmsMessageRegistration::Unregister()
    def unregister(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Sms.SmsMessageRegistration::add_MessageReceived(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Sms.SmsMessageRegistration,Windows.Devices.Sms.SmsMessageReceivedTriggerDetails>)
    def add_message_received(self, event_handler: windows_foundation.TypedEventHandler[SmsMessageRegistration, SmsMessageReceivedTriggerDetails], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Sms.SmsMessageRegistration::remove_MessageReceived(Windows.Foundation.EventRegistrationToken)
    def remove_message_received(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Devices.Sms.SmsMessageRegistration::get_Id()
    @_property
    def id(self) -> str: ...

@typing.final
class SmsReceivedEventDetails(winrt.system.Object):
    # System.String Windows.Devices.Sms.SmsReceivedEventDetails::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # System.UInt32 Windows.Devices.Sms.SmsReceivedEventDetails::get_MessageIndex()
    @_property
    def message_index(self) -> winrt.system.UInt32: ...
    # Windows.Devices.Sms.SmsBinaryMessage Windows.Devices.Sms.SmsReceivedEventDetails::get_BinaryMessage()
    @_property
    def binary_message(self) -> SmsBinaryMessage: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsReceivedEventDetails::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...

@typing.final
class SmsSendMessageResult(winrt.system.Object):
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsSendMessageResult::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.Boolean Windows.Devices.Sms.SmsSendMessageResult::get_IsErrorTransient()
    @_property
    def is_error_transient(self) -> bool: ...
    # System.Boolean Windows.Devices.Sms.SmsSendMessageResult::get_IsSuccessful()
    @_property
    def is_successful(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<System.Int32> Windows.Devices.Sms.SmsSendMessageResult::get_MessageReferenceNumbers()
    @_property
    def message_reference_numbers(self) -> typing.Sequence[winrt.system.Int32]: ...
    # Windows.Devices.Sms.SmsModemErrorCode Windows.Devices.Sms.SmsSendMessageResult::get_ModemErrorCode()
    @_property
    def modem_error_code(self) -> SmsModemErrorCode: ...
    # System.Int32 Windows.Devices.Sms.SmsSendMessageResult::get_NetworkCauseCode()
    @_property
    def network_cause_code(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Sms.SmsSendMessageResult::get_TransportFailureCause()
    @_property
    def transport_failure_cause(self) -> winrt.system.Int32: ...

@typing.final
class SmsStatusMessage(winrt.system.Object, ISmsMessageBase):
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsStatusMessage::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.String Windows.Devices.Sms.SmsStatusMessage::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsStatusMessage::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsStatusMessage::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # System.String Windows.Devices.Sms.SmsStatusMessage::get_SimIccId()
    @_property
    def sim_icc_id(self) -> str: ...
    # System.Int32 Windows.Devices.Sms.SmsStatusMessage::get_Status()
    @_property
    def status(self) -> winrt.system.Int32: ...
    # System.String Windows.Devices.Sms.SmsStatusMessage::get_Body()
    @_property
    def body(self) -> str: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsStatusMessage::get_DischargeTime()
    @_property
    def discharge_time(self) -> datetime.datetime: ...
    # System.String Windows.Devices.Sms.SmsStatusMessage::get_From()
    @_property
    def from_(self) -> str: ...
    # System.Int32 Windows.Devices.Sms.SmsStatusMessage::get_MessageReferenceNumber()
    @_property
    def message_reference_number(self) -> winrt.system.Int32: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsStatusMessage::get_ServiceCenterTimestamp()
    @_property
    def service_center_timestamp(self) -> datetime.datetime: ...
    # System.String Windows.Devices.Sms.SmsStatusMessage::get_To()
    @_property
    def to(self) -> str: ...

@typing.final
class SmsTextMessage_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Sms.SmsTextMessage Windows.Devices.Sms.SmsTextMessage::FromBinaryData(Windows.Devices.Sms.SmsDataFormat,System.Byte[])
    # @deprecated("ISmsTextMessageStatics may be altered or unavailable for releases after Windows 10.")
    def from_binary_data(cls, format: SmsDataFormat, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> SmsTextMessage: ...
    # Windows.Devices.Sms.SmsTextMessage Windows.Devices.Sms.SmsTextMessage::FromBinaryMessage(Windows.Devices.Sms.SmsBinaryMessage)
    # @deprecated("ISmsTextMessageStatics may be altered or unavailable for releases after Windows 10.")
    def from_binary_message(cls, binary_message: SmsBinaryMessage, /) -> SmsTextMessage: ...

@typing.final
class SmsTextMessage(winrt.system.Object, ISmsTextMessage, ISmsMessage, metaclass=SmsTextMessage_Static):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsBinaryMessage> Windows.Devices.Sms.SmsTextMessage::ToBinaryMessages(Windows.Devices.Sms.SmsDataFormat)
    # @deprecated("SmsTextMessage may be altered or unavailable for releases after Windows 10. Instead, use SmsTextMessage2.")
    def to_binary_messages(self, format: SmsDataFormat, /) -> typing.Sequence[ISmsBinaryMessage]: ...
    # System.UInt32 Windows.Devices.Sms.SmsTextMessage::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsTextMessage::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...
    # System.String Windows.Devices.Sms.SmsTextMessage::get_To()
    @_property
    def to(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage::put_To(System.String)
    @to.setter
    def to(self, value: str) -> None: ...
    # System.String Windows.Devices.Sms.SmsTextMessage::get_From()
    @_property
    def from_(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage::put_From(System.String)
    @from_.setter
    def from_(self, value: str) -> None: ...
    # Windows.Devices.Sms.SmsEncoding Windows.Devices.Sms.SmsTextMessage::get_Encoding()
    @_property
    def encoding(self) -> SmsEncoding: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage::put_Encoding(Windows.Devices.Sms.SmsEncoding)
    @encoding.setter
    def encoding(self, value: SmsEncoding) -> None: ...
    # System.String Windows.Devices.Sms.SmsTextMessage::get_Body()
    @_property
    def body(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage::put_Body(System.String)
    @body.setter
    def body(self, value: str) -> None: ...
    # System.UInt32 Windows.Devices.Sms.SmsTextMessage::get_PartCount()
    @_property
    def part_count(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Devices.Sms.SmsTextMessage::get_PartNumber()
    @_property
    def part_number(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Devices.Sms.SmsTextMessage::get_PartReferenceId()
    @_property
    def part_reference_id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsTextMessage::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...

@typing.final
class SmsTextMessage2(winrt.system.Object, ISmsMessageBase):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsTextMessage2::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # System.String Windows.Devices.Sms.SmsTextMessage2::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsTextMessage2::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsTextMessage2::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...
    # System.String Windows.Devices.Sms.SmsTextMessage2::get_SimIccId()
    @_property
    def sim_icc_id(self) -> str: ...
    # System.Int32 Windows.Devices.Sms.SmsTextMessage2::get_RetryAttemptCount()
    @_property
    def retry_attempt_count(self) -> winrt.system.Int32: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage2::put_RetryAttemptCount(System.Int32)
    @retry_attempt_count.setter
    def retry_attempt_count(self, value: winrt.system.Int32) -> None: ...
    # System.String Windows.Devices.Sms.SmsTextMessage2::get_To()
    @_property
    def to(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage2::put_To(System.String)
    @to.setter
    def to(self, value: str) -> None: ...
    # System.Boolean Windows.Devices.Sms.SmsTextMessage2::get_IsDeliveryNotificationEnabled()
    @_property
    def is_delivery_notification_enabled(self) -> bool: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage2::put_IsDeliveryNotificationEnabled(System.Boolean)
    @is_delivery_notification_enabled.setter
    def is_delivery_notification_enabled(self, value: bool) -> None: ...
    # Windows.Devices.Sms.SmsEncoding Windows.Devices.Sms.SmsTextMessage2::get_Encoding()
    @_property
    def encoding(self) -> SmsEncoding: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage2::put_Encoding(Windows.Devices.Sms.SmsEncoding)
    @encoding.setter
    def encoding(self, value: SmsEncoding) -> None: ...
    # System.String Windows.Devices.Sms.SmsTextMessage2::get_CallbackNumber()
    @_property
    def callback_number(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage2::put_CallbackNumber(System.String)
    @callback_number.setter
    def callback_number(self, value: str) -> None: ...
    # System.String Windows.Devices.Sms.SmsTextMessage2::get_Body()
    @_property
    def body(self) -> str: ...
    # System.Void Windows.Devices.Sms.SmsTextMessage2::put_Body(System.String)
    @body.setter
    def body(self, value: str) -> None: ...
    # System.Int32 Windows.Devices.Sms.SmsTextMessage2::get_ProtocolId()
    @_property
    def protocol_id(self) -> winrt.system.Int32: ...
    # System.String Windows.Devices.Sms.SmsTextMessage2::get_From()
    @_property
    def from_(self) -> str: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsTextMessage2::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...
    # System.Int32 Windows.Devices.Sms.SmsTextMessage2::get_TeleserviceId()
    @_property
    def teleservice_id(self) -> winrt.system.Int32: ...

@typing.final
class SmsVoicemailMessage(winrt.system.Object, ISmsMessageBase):
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsVoicemailMessage::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.String Windows.Devices.Sms.SmsVoicemailMessage::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsVoicemailMessage::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsVoicemailMessage::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # System.String Windows.Devices.Sms.SmsVoicemailMessage::get_SimIccId()
    @_property
    def sim_icc_id(self) -> str: ...
    # System.String Windows.Devices.Sms.SmsVoicemailMessage::get_Body()
    @_property
    def body(self) -> str: ...
    # Windows.Foundation.IReference`1<System.Int32> Windows.Devices.Sms.SmsVoicemailMessage::get_MessageCount()
    @_property
    def message_count(self) -> typing.Optional[winrt.system.Int32]: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsVoicemailMessage::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...
    # System.String Windows.Devices.Sms.SmsVoicemailMessage::get_To()
    @_property
    def to(self) -> str: ...

@typing.final
class SmsWapMessage(winrt.system.Object, ISmsMessageBase):
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.SmsWapMessage::get_CellularClass()
    @_property
    def cellular_class(self) -> CellularClass: ...
    # System.String Windows.Devices.Sms.SmsWapMessage::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.SmsWapMessage::get_MessageClass()
    @_property
    def message_class(self) -> SmsMessageClass: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.SmsWapMessage::get_MessageType()
    @_property
    def message_type(self) -> SmsMessageType: ...
    # System.String Windows.Devices.Sms.SmsWapMessage::get_SimIccId()
    @_property
    def sim_icc_id(self) -> str: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.SmsWapMessage::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...
    # System.String Windows.Devices.Sms.SmsWapMessage::get_ApplicationId()
    @_property
    def application_id(self) -> str: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.Sms.SmsWapMessage::get_BinaryBody()
    @_property
    def binary_body(self) -> windows_storage_streams.IBuffer: ...
    # System.String Windows.Devices.Sms.SmsWapMessage::get_ContentType()
    @_property
    def content_type(self) -> str: ...
    # System.String Windows.Devices.Sms.SmsWapMessage::get_From()
    @_property
    def from_(self) -> str: ...
    # Windows.Foundation.Collections.IMap`2<System.String,System.String> Windows.Devices.Sms.SmsWapMessage::get_Headers()
    @_property
    def headers(self) -> typing.MutableMapping[str, str]: ...
    # System.String Windows.Devices.Sms.SmsWapMessage::get_To()
    @_property
    def to(self) -> str: ...

@typing.final
class _ISmsBinaryMessage: ...

class ISmsBinaryMessage(ISmsMessage, winrt._winrt.IInspectable):
    # System.Byte[] Windows.Devices.Sms.ISmsBinaryMessage::GetData()
    # @deprecated("SmsBinaryMessage may be altered or unavailable for releases after Windows 10. Instead, use SmsAppMessage.")
    @abstractmethod
    def get_data(self) -> winrt.system.Array[winrt.system.UInt8]: ...
    # System.Void Windows.Devices.Sms.ISmsBinaryMessage::SetData(System.Byte[])
    # @deprecated("SmsBinaryMessage may be altered or unavailable for releases after Windows 10. Instead, use SmsAppMessage.")
    @abstractmethod
    def set_data(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> None: ...
    # Windows.Devices.Sms.SmsDataFormat Windows.Devices.Sms.ISmsBinaryMessage::get_Format()
    @_property
    @abstractmethod
    def format(self) -> SmsDataFormat: ...
    # System.Void Windows.Devices.Sms.ISmsBinaryMessage::put_Format(Windows.Devices.Sms.SmsDataFormat)
    @format.setter
    @abstractmethod
    def format(self, value: SmsDataFormat) -> None: ...

@typing.final
class _ISmsDevice: ...

class ISmsDevice(winrt._winrt.IInspectable):
    # Windows.Devices.Sms.SmsEncodedLength Windows.Devices.Sms.ISmsDevice::CalculateLength(Windows.Devices.Sms.SmsTextMessage)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    @abstractmethod
    def calculate_length(self, message: SmsTextMessage, /) -> SmsEncodedLength: ...
    # Windows.Devices.Sms.SendSmsMessageOperation Windows.Devices.Sms.ISmsDevice::SendMessageAsync(Windows.Devices.Sms.ISmsMessage)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    @abstractmethod
    def send_message_async(self, message: ISmsMessage, /) -> SendSmsMessageOperation: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Sms.ISmsDevice::add_SmsDeviceStatusChanged(Windows.Devices.Sms.SmsDeviceStatusChangedEventHandler)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    @abstractmethod
    def add_sms_device_status_changed(self, event_handler: SmsDeviceStatusChangedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Sms.ISmsDevice::remove_SmsDeviceStatusChanged(Windows.Foundation.EventRegistrationToken)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    @abstractmethod
    def remove_sms_device_status_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Sms.ISmsDevice::add_SmsMessageReceived(Windows.Devices.Sms.SmsMessageReceivedEventHandler)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    @abstractmethod
    def add_sms_message_received(self, event_handler: SmsMessageReceivedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Sms.ISmsDevice::remove_SmsMessageReceived(Windows.Foundation.EventRegistrationToken)
    # @deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.")
    @abstractmethod
    def remove_sms_message_received(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Devices.Sms.ISmsDevice::get_AccountPhoneNumber()
    @_property
    @abstractmethod
    def account_phone_number(self) -> str: ...
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.ISmsDevice::get_CellularClass()
    @_property
    @abstractmethod
    def cellular_class(self) -> CellularClass: ...
    # Windows.Devices.Sms.SmsDeviceStatus Windows.Devices.Sms.ISmsDevice::get_DeviceStatus()
    @_property
    @abstractmethod
    def device_status(self) -> SmsDeviceStatus: ...
    # Windows.Devices.Sms.SmsDeviceMessageStore Windows.Devices.Sms.ISmsDevice::get_MessageStore()
    @_property
    @abstractmethod
    def message_store(self) -> SmsDeviceMessageStore: ...

@typing.final
class _ISmsMessage: ...

class ISmsMessage(winrt._winrt.IInspectable):
    # System.UInt32 Windows.Devices.Sms.ISmsMessage::get_Id()
    @_property
    @abstractmethod
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.ISmsMessage::get_MessageClass()
    @_property
    @abstractmethod
    def message_class(self) -> SmsMessageClass: ...

@typing.final
class _ISmsMessageBase: ...

class ISmsMessageBase(winrt._winrt.IInspectable):
    # Windows.Devices.Sms.CellularClass Windows.Devices.Sms.ISmsMessageBase::get_CellularClass()
    @_property
    @abstractmethod
    def cellular_class(self) -> CellularClass: ...
    # System.String Windows.Devices.Sms.ISmsMessageBase::get_DeviceId()
    @_property
    @abstractmethod
    def device_id(self) -> str: ...
    # Windows.Devices.Sms.SmsMessageClass Windows.Devices.Sms.ISmsMessageBase::get_MessageClass()
    @_property
    @abstractmethod
    def message_class(self) -> SmsMessageClass: ...
    # Windows.Devices.Sms.SmsMessageType Windows.Devices.Sms.ISmsMessageBase::get_MessageType()
    @_property
    @abstractmethod
    def message_type(self) -> SmsMessageType: ...
    # System.String Windows.Devices.Sms.ISmsMessageBase::get_SimIccId()
    @_property
    @abstractmethod
    def sim_icc_id(self) -> str: ...

@typing.final
class _ISmsTextMessage: ...

class ISmsTextMessage(ISmsMessage, winrt._winrt.IInspectable):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Sms.ISmsBinaryMessage> Windows.Devices.Sms.ISmsTextMessage::ToBinaryMessages(Windows.Devices.Sms.SmsDataFormat)
    # @deprecated("SmsTextMessage may be altered or unavailable for releases after Windows 10. Instead, use SmsTextMessage2.")
    @abstractmethod
    def to_binary_messages(self, format: SmsDataFormat, /) -> typing.Sequence[ISmsBinaryMessage]: ...
    # System.String Windows.Devices.Sms.ISmsTextMessage::get_Body()
    @_property
    @abstractmethod
    def body(self) -> str: ...
    # System.Void Windows.Devices.Sms.ISmsTextMessage::put_Body(System.String)
    @body.setter
    @abstractmethod
    def body(self, value: str) -> None: ...
    # Windows.Devices.Sms.SmsEncoding Windows.Devices.Sms.ISmsTextMessage::get_Encoding()
    @_property
    @abstractmethod
    def encoding(self) -> SmsEncoding: ...
    # System.Void Windows.Devices.Sms.ISmsTextMessage::put_Encoding(Windows.Devices.Sms.SmsEncoding)
    @encoding.setter
    @abstractmethod
    def encoding(self, value: SmsEncoding) -> None: ...
    # System.String Windows.Devices.Sms.ISmsTextMessage::get_From()
    @_property
    @abstractmethod
    def from_(self) -> str: ...
    # System.Void Windows.Devices.Sms.ISmsTextMessage::put_From(System.String)
    @from_.setter
    @abstractmethod
    def from_(self, value: str) -> None: ...
    # System.UInt32 Windows.Devices.Sms.ISmsTextMessage::get_PartCount()
    @_property
    @abstractmethod
    def part_count(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Devices.Sms.ISmsTextMessage::get_PartNumber()
    @_property
    @abstractmethod
    def part_number(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Devices.Sms.ISmsTextMessage::get_PartReferenceId()
    @_property
    @abstractmethod
    def part_reference_id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.DateTime Windows.Devices.Sms.ISmsTextMessage::get_Timestamp()
    @_property
    @abstractmethod
    def timestamp(self) -> datetime.datetime: ...
    # System.String Windows.Devices.Sms.ISmsTextMessage::get_To()
    @_property
    @abstractmethod
    def to(self) -> str: ...
    # System.Void Windows.Devices.Sms.ISmsTextMessage::put_To(System.String)
    @to.setter
    @abstractmethod
    def to(self, value: str) -> None: ...

