# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.10

import enum
import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.foundation

class PhoneCallBlockedReason(enum.IntEnum):
    IN_CALL_BLOCKING_LIST = 0
    PRIVATE_NUMBER = 1
    UNKNOWN_NUMBER = 2

class PhoneIncomingCallDismissedReason(enum.IntEnum):
    UNKNOWN = 0
    CALL_REJECTED = 1
    TEXT_REPLY = 2
    CONNECTION_LOST = 3

class PhoneLineChangeKind(enum.IntEnum):
    ADDED = 0
    REMOVED = 1
    PROPERTIES_CHANGED = 2

class PhoneLineProperties(enum.IntFlag):
    NONE = 0
    BRANDING_OPTIONS = 0x1
    CAN_DIAL = 0x2
    CELLULAR_DETAILS = 0x4
    DISPLAY_COLOR = 0x8
    DISPLAY_NAME = 0x10
    NETWORK_NAME = 0x20
    NETWORK_STATE = 0x40
    TRANSPORT = 0x80
    VOICEMAIL = 0x100

class PhoneTriggerType(enum.IntEnum):
    NEW_VOICEMAIL_MESSAGE = 0
    CALL_HISTORY_CHANGED = 1
    LINE_CHANGED = 2
    AIRPLANE_MODE_DISABLED_FOR_EMERGENCY_CALL = 3
    CALL_ORIGIN_DATA_REQUEST = 4
    CALL_BLOCKED = 5
    INCOMING_CALL_DISMISSED = 6
    INCOMING_CALL_NOTIFICATION = 7

Self = typing.TypeVar('Self')

class PhoneCallBlockedTriggerDetails(winsdk.system.Object):
    call_blocked_reason: PhoneCallBlockedReason
    line_id: winsdk.system.Guid
    phone_number: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneCallBlockedTriggerDetails: ...

class PhoneCallOriginDataRequestTriggerDetails(winsdk.system.Object):
    phone_number: str
    request_id: winsdk.system.Guid
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneCallOriginDataRequestTriggerDetails: ...

class PhoneIncomingCallDismissedTriggerDetails(winsdk.system.Object):
    dismissal_time: datetime.datetime
    display_name: str
    line_id: winsdk.system.Guid
    phone_number: str
    reason: PhoneIncomingCallDismissedReason
    text_reply_message: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneIncomingCallDismissedTriggerDetails: ...

class PhoneIncomingCallNotificationTriggerDetails(winsdk.system.Object):
    call_id: str
    line_id: winsdk.system.Guid
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneIncomingCallNotificationTriggerDetails: ...

class PhoneLineChangedTriggerDetails(winsdk.system.Object):
    change_type: PhoneLineChangeKind
    line_id: winsdk.system.Guid
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneLineChangedTriggerDetails: ...
    def has_line_property_changed(self, line_property: PhoneLineProperties, /) -> winsdk.system.Boolean: ...

class PhoneNewVoicemailMessageTriggerDetails(winsdk.system.Object):
    line_id: winsdk.system.Guid
    operator_message: str
    voicemail_count: winsdk.system.Int32
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PhoneNewVoicemailMessageTriggerDetails: ...

