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

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
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(_winrt.Object):
    call_blocked_reason: PhoneCallBlockedReason
    line_id: _winrt.Guid
    phone_number: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PhoneCallBlockedTriggerDetails: ...

class PhoneCallOriginDataRequestTriggerDetails(_winrt.Object):
    phone_number: str
    request_id: _winrt.Guid
    @staticmethod
    def _from(obj: _winrt.Object) -> PhoneCallOriginDataRequestTriggerDetails: ...

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

class PhoneIncomingCallNotificationTriggerDetails(_winrt.Object):
    call_id: str
    line_id: _winrt.Guid
    @staticmethod
    def _from(obj: _winrt.Object) -> PhoneIncomingCallNotificationTriggerDetails: ...

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

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

