# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.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.applicationmodel.datatransfer as windows_applicationmodel_datatransfer
import winrt.windows.applicationmodel.datatransfer.dragdrop as windows_applicationmodel_datatransfer_dragdrop
import winrt.windows.foundation as windows_foundation
import winrt.windows.graphics.imaging as windows_graphics_imaging

from winrt.windows.applicationmodel.datatransfer.dragdrop.core import CoreDragUIContentMode

Self = typing.TypeVar('Self')

@typing.final
class CoreDragDropManager_Static(type):
    def get_for_current_view(cls) -> typing.Optional[CoreDragDropManager]: ...

@typing.final
class CoreDragDropManager(winrt.system.Object, metaclass=CoreDragDropManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CoreDragDropManager: ...
    def add_target_requested(self, value: windows_foundation.TypedEventHandler[CoreDragDropManager, CoreDropOperationTargetRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_target_requested(self, value: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def are_concurrent_operations_enabled(self) -> bool: ...
    @are_concurrent_operations_enabled.setter
    def are_concurrent_operations_enabled(self, value: bool) -> None: ...

@typing.final
class CoreDragInfo(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CoreDragInfo: ...
    @_property
    def data(self) -> typing.Optional[windows_applicationmodel_datatransfer.DataPackageView]: ...
    @_property
    def modifiers(self) -> windows_applicationmodel_datatransfer_dragdrop.DragDropModifiers: ...
    @_property
    def position(self) -> windows_foundation.Point: ...
    @_property
    def allowed_operations(self) -> windows_applicationmodel_datatransfer.DataPackageOperation: ...

@typing.final
class CoreDragOperation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CoreDragOperation: ...
    def __new__(cls: typing.Type[CoreDragOperation]) -> CoreDragOperation: ...
    @typing.overload
    def set_drag_u_i_content_from_software_bitmap(self, software_bitmap: typing.Optional[windows_graphics_imaging.SoftwareBitmap], /) -> None: ...
    @typing.overload
    def set_drag_u_i_content_from_software_bitmap(self, software_bitmap: typing.Optional[windows_graphics_imaging.SoftwareBitmap], anchor_point: windows_foundation.Point, /) -> None: ...
    def set_pointer_id(self, pointer_id: winrt.system.UInt32, /) -> None: ...
    def start_async(self) -> windows_foundation.IAsyncOperation[windows_applicationmodel_datatransfer.DataPackageOperation]: ...
    @_property
    def drag_u_i_content_mode(self) -> CoreDragUIContentMode: ...
    @drag_u_i_content_mode.setter
    def drag_u_i_content_mode(self, value: CoreDragUIContentMode) -> None: ...
    @_property
    def data(self) -> typing.Optional[windows_applicationmodel_datatransfer.DataPackage]: ...
    @_property
    def allowed_operations(self) -> windows_applicationmodel_datatransfer.DataPackageOperation: ...
    @allowed_operations.setter
    def allowed_operations(self, value: windows_applicationmodel_datatransfer.DataPackageOperation) -> None: ...

@typing.final
class CoreDragUIOverride(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CoreDragUIOverride: ...
    def clear(self) -> None: ...
    @typing.overload
    def set_content_from_software_bitmap(self, software_bitmap: typing.Optional[windows_graphics_imaging.SoftwareBitmap], /) -> None: ...
    @typing.overload
    def set_content_from_software_bitmap(self, software_bitmap: typing.Optional[windows_graphics_imaging.SoftwareBitmap], anchor_point: windows_foundation.Point, /) -> None: ...
    @_property
    def is_glyph_visible(self) -> bool: ...
    @is_glyph_visible.setter
    def is_glyph_visible(self, value: bool) -> None: ...
    @_property
    def is_content_visible(self) -> bool: ...
    @is_content_visible.setter
    def is_content_visible(self, value: bool) -> None: ...
    @_property
    def is_caption_visible(self) -> bool: ...
    @is_caption_visible.setter
    def is_caption_visible(self, value: bool) -> None: ...
    @_property
    def caption(self) -> str: ...
    @caption.setter
    def caption(self, value: str) -> None: ...

@typing.final
class CoreDropOperationTargetRequestedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CoreDropOperationTargetRequestedEventArgs: ...
    def set_target(self, target: typing.Optional[ICoreDropOperationTarget], /) -> None: ...

@typing.final
class ICoreDropOperationTarget(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ICoreDropOperationTarget: ...
    def drop_async(self, drag_info: typing.Optional[CoreDragInfo], /) -> windows_foundation.IAsyncOperation[windows_applicationmodel_datatransfer.DataPackageOperation]: ...
    def enter_async(self, drag_info: typing.Optional[CoreDragInfo], drag_u_i_override: typing.Optional[CoreDragUIOverride], /) -> windows_foundation.IAsyncOperation[windows_applicationmodel_datatransfer.DataPackageOperation]: ...
    def leave_async(self, drag_info: typing.Optional[CoreDragInfo], /) -> windows_foundation.IAsyncAction: ...
    def over_async(self, drag_info: typing.Optional[CoreDragInfo], drag_u_i_override: typing.Optional[CoreDragUIOverride], /) -> windows_foundation.IAsyncOperation[windows_applicationmodel_datatransfer.DataPackageOperation]: ...

