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

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

class IsolatedWindowsEnvironmentActivator(enum.IntEnum):
    SYSTEM = 0
    USER = 1

class IsolatedWindowsEnvironmentAllowedClipboardFormats(enum.IntFlag):
    NONE = 0
    TEXT = 0x1
    IMAGE = 0x2

class IsolatedWindowsEnvironmentAvailablePrinters(enum.IntFlag):
    NONE = 0
    LOCAL = 0x1
    NETWORK = 0x2
    SYSTEM_PRINT_TO_PDF = 0x4
    SYSTEM_PRINT_TO_XPS = 0x8

class IsolatedWindowsEnvironmentClipboardCopyPasteDirections(enum.IntFlag):
    NONE = 0
    HOST_TO_ISOLATED_WINDOWS_ENVIRONMENT = 0x1
    ISOLATED_WINDOWS_ENVIRONMENT_TO_HOST = 0x2

class IsolatedWindowsEnvironmentCreateStatus(enum.IntEnum):
    SUCCESS = 0
    FAILURE_BY_POLICY = 1
    UNKNOWN_FAILURE = 2

class IsolatedWindowsEnvironmentHostError(enum.IntEnum):
    ADMIN_POLICY_IS_DISABLED_OR_NOT_PRESENT = 0
    FEATURE_NOT_INSTALLED = 1
    HARDWARE_REQUIREMENTS_NOT_MET = 2
    REBOOT_REQUIRED = 3
    UNKNOWN_ERROR = 4

class IsolatedWindowsEnvironmentLaunchFileStatus(enum.IntEnum):
    SUCCESS = 0
    UNKNOWN_FAILURE = 1
    ENVIRONMENT_UNAVAILABLE = 2
    FILE_NOT_FOUND = 3
    TIMED_OUT = 4
    ALREADY_SHARED_WITH_CONFLICTING_OPTIONS = 5

class IsolatedWindowsEnvironmentOwnerRegistrationStatus(enum.IntEnum):
    SUCCESS = 0
    INVALID_ARGUMENT = 1
    ACCESS_DENIED = 2
    INSUFFICIENT_MEMORY = 3
    UNKNOWN_FAILURE = 4

class IsolatedWindowsEnvironmentPostMessageStatus(enum.IntEnum):
    SUCCESS = 0
    UNKNOWN_FAILURE = 1
    ENVIRONMENT_UNAVAILABLE = 2

class IsolatedWindowsEnvironmentProcessState(enum.IntEnum):
    RUNNING = 1
    ABORTED = 2
    COMPLETED = 3

class IsolatedWindowsEnvironmentProgressState(enum.IntEnum):
    QUEUED = 0
    PROCESSING = 1
    COMPLETED = 2

class IsolatedWindowsEnvironmentShareFileStatus(enum.IntEnum):
    SUCCESS = 0
    UNKNOWN_FAILURE = 1
    ENVIRONMENT_UNAVAILABLE = 2
    ALREADY_SHARED_WITH_CONFLICTING_OPTIONS = 3
    FILE_NOT_FOUND = 4
    ACCESS_DENIED = 5

class IsolatedWindowsEnvironmentShareFolderStatus(enum.IntEnum):
    SUCCESS = 0
    UNKNOWN_FAILURE = 1
    ENVIRONMENT_UNAVAILABLE = 2
    FOLDER_NOT_FOUND = 3
    ACCESS_DENIED = 4

class IsolatedWindowsEnvironmentStartProcessStatus(enum.IntEnum):
    SUCCESS = 0
    UNKNOWN_FAILURE = 1
    ENVIRONMENT_UNAVAILABLE = 2
    FILE_NOT_FOUND = 3
    APP_NOT_REGISTERED = 4

class IsolatedWindowsEnvironmentCreateProgress:
    state: IsolatedWindowsEnvironmentProgressState
    percent_complete: _winrt.UInt32
    def __init__(self, state: IsolatedWindowsEnvironmentProgressState, percent_complete: _winrt.UInt32) -> None: ...

class IsolatedWindowsEnvironment(_winrt.Object):
    id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironment: ...
    @typing.overload
    @staticmethod
    def create_async(options: IsolatedWindowsEnvironmentOptions) -> winsdk.windows.foundation.IAsyncOperationWithProgress[IsolatedWindowsEnvironmentCreateResult, IsolatedWindowsEnvironmentCreateProgress]: ...
    @typing.overload
    @staticmethod
    def create_async(options: IsolatedWindowsEnvironmentOptions, telemetry_parameters: IsolatedWindowsEnvironmentTelemetryParameters) -> winsdk.windows.foundation.IAsyncOperationWithProgress[IsolatedWindowsEnvironmentCreateResult, IsolatedWindowsEnvironmentCreateProgress]: ...
    @typing.overload
    @staticmethod
    def find_by_owner_id(environment_owner_id: str) -> winsdk.windows.foundation.collections.IVectorView[IsolatedWindowsEnvironment]: ...
    @typing.overload
    @staticmethod
    def get_by_id(environment_id: str) -> IsolatedWindowsEnvironment: ...
    @typing.overload
    def get_user_info(self) -> IsolatedWindowsEnvironmentUserInfo: ...
    @typing.overload
    def launch_file_with_u_i_async(self, app_exe_path: str, arguments_template: str, file_path: str) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentLaunchFileResult]: ...
    @typing.overload
    def launch_file_with_u_i_async(self, app_exe_path: str, arguments_template: str, file_path: str, telemetry_parameters: IsolatedWindowsEnvironmentTelemetryParameters) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentLaunchFileResult]: ...
    @typing.overload
    def post_message_to_receiver_async(self, receiver_id: uuid.UUID, message: typing.Iterable[_winrt.Object]) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentPostMessageResult]: ...
    @typing.overload
    def post_message_to_receiver_async(self, receiver_id: uuid.UUID, message: typing.Iterable[_winrt.Object], telemetry_parameters: IsolatedWindowsEnvironmentTelemetryParameters) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentPostMessageResult]: ...
    @typing.overload
    def register_message_receiver(self, receiver_id: uuid.UUID, message_received_callback: MessageReceivedCallback) -> None: ...
    @typing.overload
    def share_file_async(self, file_path: str, options: IsolatedWindowsEnvironmentShareFileRequestOptions) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentShareFileResult]: ...
    @typing.overload
    def share_file_async(self, file_path: str, options: IsolatedWindowsEnvironmentShareFileRequestOptions, telemetry_parameters: IsolatedWindowsEnvironmentTelemetryParameters) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentShareFileResult]: ...
    @typing.overload
    def share_folder_async(self, host_folder: str, request_options: IsolatedWindowsEnvironmentShareFolderRequestOptions) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentShareFolderResult]: ...
    @typing.overload
    def share_folder_async(self, host_folder: str, request_options: IsolatedWindowsEnvironmentShareFolderRequestOptions, telemetry_parameters: IsolatedWindowsEnvironmentTelemetryParameters) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentShareFolderResult]: ...
    @typing.overload
    def start_process_silently_async(self, host_exe_path: str, arguments: str, activator: IsolatedWindowsEnvironmentActivator) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentStartProcessResult]: ...
    @typing.overload
    def start_process_silently_async(self, host_exe_path: str, arguments: str, activator: IsolatedWindowsEnvironmentActivator, telemetry_parameters: IsolatedWindowsEnvironmentTelemetryParameters) -> winsdk.windows.foundation.IAsyncOperation[IsolatedWindowsEnvironmentStartProcessResult]: ...
    @typing.overload
    def terminate_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def terminate_async(self, telemetry_parameters: IsolatedWindowsEnvironmentTelemetryParameters) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def unregister_message_receiver(self, receiver_id: uuid.UUID) -> None: ...

class IsolatedWindowsEnvironmentCreateResult(_winrt.Object):
    environment: IsolatedWindowsEnvironment
    extended_error: winsdk.windows.foundation.HResult
    status: IsolatedWindowsEnvironmentCreateStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentCreateResult: ...

class IsolatedWindowsEnvironmentFile(_winrt.Object):
    host_path: str
    id: uuid.UUID
    guest_path: str
    is_read_only: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentFile: ...
    @typing.overload
    def close(self) -> None: ...

class IsolatedWindowsEnvironmentHost(_winrt.Object):
    host_errors: winsdk.windows.foundation.collections.IVectorView[IsolatedWindowsEnvironmentHostError]
    is_ready: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentHost: ...

class IsolatedWindowsEnvironmentLaunchFileResult(_winrt.Object):
    extended_error: winsdk.windows.foundation.HResult
    file: IsolatedWindowsEnvironmentFile
    status: IsolatedWindowsEnvironmentLaunchFileStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentLaunchFileResult: ...

class IsolatedWindowsEnvironmentOptions(_winrt.Object):
    persist_user_profile: _winrt.Boolean
    environment_owner_id: str
    clipboard_copy_paste_directions: IsolatedWindowsEnvironmentClipboardCopyPasteDirections
    available_printers: IsolatedWindowsEnvironmentAvailablePrinters
    allowed_clipboard_formats: IsolatedWindowsEnvironmentAllowedClipboardFormats
    allow_graphics_hardware_acceleration: _winrt.Boolean
    allow_camera_and_microphone_access: _winrt.Boolean
    shared_folder_name_in_environment: str
    shared_host_folder_path: str
    window_annotation_override: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentOptions: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def share_host_folder_for_untrusted_items(self, shared_host_folder_path: str, share_folder_name_in_environment: str) -> None: ...

class IsolatedWindowsEnvironmentOwnerRegistration(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentOwnerRegistration: ...
    @typing.overload
    @staticmethod
    def register(owner_name: str, owner_registration_data: IsolatedWindowsEnvironmentOwnerRegistrationData) -> IsolatedWindowsEnvironmentOwnerRegistrationResult: ...
    @typing.overload
    @staticmethod
    def unregister(owner_name: str) -> None: ...

class IsolatedWindowsEnvironmentOwnerRegistrationData(_winrt.Object):
    activation_file_extensions: winsdk.windows.foundation.collections.IVector[str]
    processes_runnable_as_system: winsdk.windows.foundation.collections.IVector[str]
    processes_runnable_as_user: winsdk.windows.foundation.collections.IVector[str]
    shareable_folders: winsdk.windows.foundation.collections.IVector[str]
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentOwnerRegistrationData: ...
    @typing.overload
    def __init__(self) -> None: ...

class IsolatedWindowsEnvironmentOwnerRegistrationResult(_winrt.Object):
    extended_error: winsdk.windows.foundation.HResult
    status: IsolatedWindowsEnvironmentOwnerRegistrationStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentOwnerRegistrationResult: ...

class IsolatedWindowsEnvironmentPostMessageResult(_winrt.Object):
    extended_error: winsdk.windows.foundation.HResult
    status: IsolatedWindowsEnvironmentPostMessageStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentPostMessageResult: ...

class IsolatedWindowsEnvironmentProcess(_winrt.Object):
    exit_code: _winrt.UInt32
    state: IsolatedWindowsEnvironmentProcessState
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentProcess: ...
    @typing.overload
    def wait_for_exit(self) -> None: ...
    @typing.overload
    def wait_for_exit_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def wait_for_exit_with_timeout(self, timeout_milliseconds: _winrt.UInt32) -> None: ...

class IsolatedWindowsEnvironmentShareFileRequestOptions(_winrt.Object):
    allow_write: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentShareFileRequestOptions: ...
    @typing.overload
    def __init__(self) -> None: ...

class IsolatedWindowsEnvironmentShareFileResult(_winrt.Object):
    extended_error: winsdk.windows.foundation.HResult
    file: IsolatedWindowsEnvironmentFile
    status: IsolatedWindowsEnvironmentShareFileStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentShareFileResult: ...

class IsolatedWindowsEnvironmentShareFolderRequestOptions(_winrt.Object):
    allow_write: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentShareFolderRequestOptions: ...
    @typing.overload
    def __init__(self) -> None: ...

class IsolatedWindowsEnvironmentShareFolderResult(_winrt.Object):
    extended_error: winsdk.windows.foundation.HResult
    status: IsolatedWindowsEnvironmentShareFolderStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentShareFolderResult: ...

class IsolatedWindowsEnvironmentStartProcessResult(_winrt.Object):
    extended_error: winsdk.windows.foundation.HResult
    process: IsolatedWindowsEnvironmentProcess
    status: IsolatedWindowsEnvironmentStartProcessStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentStartProcessResult: ...

class IsolatedWindowsEnvironmentTelemetryParameters(_winrt.Object):
    correlation_id: uuid.UUID
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentTelemetryParameters: ...
    @typing.overload
    def __init__(self) -> None: ...

class IsolatedWindowsEnvironmentUserInfo(_winrt.Object):
    environment_user_name: str
    environment_user_sid: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsEnvironmentUserInfo: ...
    @typing.overload
    def try_wait_for_sign_in_async(self) -> winsdk.windows.foundation.IAsyncOperation[_winrt.Boolean]: ...

class IsolatedWindowsHostMessenger(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IsolatedWindowsHostMessenger: ...
    @typing.overload
    @staticmethod
    def get_file_id(file_path: str) -> uuid.UUID: ...
    @typing.overload
    @staticmethod
    def post_message_to_receiver(receiver_id: uuid.UUID, message: winsdk.windows.foundation.collections.IVectorView[_winrt.Object]) -> None: ...
    @typing.overload
    @staticmethod
    def register_host_message_receiver(receiver_id: uuid.UUID, host_message_received_callback: HostMessageReceivedCallback) -> None: ...
    @typing.overload
    @staticmethod
    def unregister_host_message_receiver(receiver_id: uuid.UUID) -> None: ...

HostMessageReceivedCallback = typing.Callable[[uuid.UUID, winsdk.windows.foundation.collections.IVectorView[_winrt.Object]], None]

MessageReceivedCallback = typing.Callable[[uuid.UUID, winsdk.windows.foundation.collections.IVectorView[_winrt.Object]], None]

