# 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

import winrt._winrt
import winrt.system
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections

from winrt.windows.management import MdmAlertDataType, MdmAlertMark, MdmSessionState

Self = typing.TypeVar('Self')

@typing.final
class MdmAlert(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Management.MdmAlert::get_Type()
    @_property
    def type(self) -> str: ...
    # System.Void Windows.Management.MdmAlert::put_Type(System.String)
    @type.setter
    def type(self, value: str) -> None: ...
    # System.String Windows.Management.MdmAlert::get_Target()
    @_property
    def target(self) -> str: ...
    # System.Void Windows.Management.MdmAlert::put_Target(System.String)
    @target.setter
    def target(self, value: str) -> None: ...
    # System.String Windows.Management.MdmAlert::get_Source()
    @_property
    def source(self) -> str: ...
    # System.Void Windows.Management.MdmAlert::put_Source(System.String)
    @source.setter
    def source(self, value: str) -> None: ...
    # Windows.Management.MdmAlertMark Windows.Management.MdmAlert::get_Mark()
    @_property
    def mark(self) -> MdmAlertMark: ...
    # System.Void Windows.Management.MdmAlert::put_Mark(Windows.Management.MdmAlertMark)
    @mark.setter
    def mark(self, value: MdmAlertMark) -> None: ...
    # Windows.Management.MdmAlertDataType Windows.Management.MdmAlert::get_Format()
    @_property
    def format(self) -> MdmAlertDataType: ...
    # System.Void Windows.Management.MdmAlert::put_Format(Windows.Management.MdmAlertDataType)
    @format.setter
    def format(self, value: MdmAlertDataType) -> None: ...
    # System.String Windows.Management.MdmAlert::get_Data()
    @_property
    def data(self) -> str: ...
    # System.Void Windows.Management.MdmAlert::put_Data(System.String)
    @data.setter
    def data(self, value: str) -> None: ...
    # System.UInt32 Windows.Management.MdmAlert::get_Status()
    @_property
    def status(self) -> winrt.system.UInt32: ...

@typing.final
class MdmSession(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Management.MdmSession::AttachAsync()
    def attach_async(self) -> windows_foundation.IAsyncAction: ...
    # System.Void Windows.Management.MdmSession::Delete()
    def delete(self) -> None: ...
    # Windows.Foundation.IAsyncAction Windows.Management.MdmSession::StartAsync()
    def start_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Management.MdmSession::StartAsync(Windows.Foundation.Collections.IIterable`1<Windows.Management.MdmAlert>)
    def start_with_alerts_async(self, alerts: typing.Iterable[MdmAlert], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Management.MdmAlert> Windows.Management.MdmSession::get_Alerts()
    @_property
    def alerts(self) -> typing.Sequence[MdmAlert]: ...
    # Windows.Foundation.HResult Windows.Management.MdmSession::get_ExtendedError()
    @_property
    def extended_error(self) -> windows_foundation.HResult: ...
    # System.String Windows.Management.MdmSession::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Management.MdmSessionState Windows.Management.MdmSession::get_State()
    @_property
    def state(self) -> MdmSessionState: ...

@typing.final
class MdmSessionManager_Static(winrt._winrt.IInspectable_Static):
    # System.Void Windows.Management.MdmSessionManager::DeleteSessionById(System.String)
    def delete_session_by_id(cls, session_id: str, /) -> None: ...
    # Windows.Management.MdmSession Windows.Management.MdmSessionManager::GetSessionById(System.String)
    def get_session_by_id(cls, session_id: str, /) -> MdmSession: ...
    # Windows.Management.MdmSession Windows.Management.MdmSessionManager::TryCreateSession()
    def try_create_session(cls) -> MdmSession: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Management.MdmSessionManager::get_SessionIds()
    @_property
    def session_ids(cls) -> typing.Sequence[str]: ...

@typing.final
class MdmSessionManager(winrt.system.Object, metaclass=MdmSessionManager_Static):
    pass

