public sealed class SmsDevice : ISmsDevice
{
    // Events
    public event SmsDeviceStatusChangedEventHandler SmsDeviceStatusChanged;

    public event SmsMessageReceivedEventHandler SmsMessageReceived;

    public event SmsSignalStrengthChangedEventHandler SmsSignalStrengthChanged;

    public event SmsDeviceStatusChangedEventHandler Windows.Devices.Sms.ISmsDevice.SmsDeviceStatusChanged;

    public event SmsMessageReceivedEventHandler Windows.Devices.Sms.ISmsDevice.SmsMessageReceived;

    public event SmsSignalStrengthChangedEventHandler Windows.Devices.Sms.ISmsDevice.SmsSignalStrengthChanged;

    // Methods
    [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)]
    public SmsEncodedLength CalculateLength([In] SmsTextMessage message);
    [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)]
    public static SmsDevice FromId([In] string deviceInstanceId);
    [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)]
    public static SmsDevice GetDefault();
    [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)]
    public static string GetDeviceClassSelector();
    [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)]
    public SendSmsMessageOperation SendMessageAsync([In] ISmsMessage message);

    // Properties
    public string AccountPhoneNumber { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public CellularClass CellularClass { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public SmsDeviceStatus DeviceStatus { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public SmsDeviceMessageStore MessageStore { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public uint SignalStrength { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public string Windows.Devices.Sms.ISmsDevice.AccountPhoneNumber { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public CellularClass Windows.Devices.Sms.ISmsDevice.CellularClass { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public SmsDeviceStatus Windows.Devices.Sms.ISmsDevice.DeviceStatus { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public SmsDeviceMessageStore Windows.Devices.Sms.ISmsDevice.MessageStore { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }

    public uint Windows.Devices.Sms.ISmsDevice.SignalStrength { [MethodImpl(0x0, MethodCodeType=MethodCodeType.Runtime)] get; }
}