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

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
import winrt.windows.foundation.collections
import winrt.windows.storage
import winrt.windows.storage.streams

from winrt.windows.media.import_ import PhotoImportAccessMode, PhotoImportConnectionTransport, PhotoImportContentType, PhotoImportContentTypeFilter, PhotoImportImportMode, PhotoImportItemSelectionMode, PhotoImportPowerSource, PhotoImportSourceType, PhotoImportStage, PhotoImportStorageMediumType, PhotoImportSubfolderCreationMode, PhotoImportSubfolderDateFormat

Self = typing.TypeVar('Self')

class PhotoImportProgress:
    items_imported: winrt.system.UInt32
    total_items_to_import: winrt.system.UInt32
    bytes_imported: winrt.system.UInt64
    total_bytes_to_import: winrt.system.UInt64
    import_progress: winrt.system.Double
    def __init__(self, items_imported: winrt.system.UInt32, total_items_to_import: winrt.system.UInt32, bytes_imported: winrt.system.UInt64, total_bytes_to_import: winrt.system.UInt64, import_progress: winrt.system.Double) -> None: ...

class PhotoImportDeleteImportedItemsFromSourceResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportDeleteImportedItemsFromSourceResult: ...
    @_property
    def deleted_items(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportItem]]: ...
    @_property
    def has_succeeded(self) -> bool: ...
    @_property
    def photos_count(self) -> winrt.system.UInt32: ...
    @_property
    def photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def session(self) -> typing.Optional[PhotoImportSession]: ...
    @_property
    def siblings_count(self) -> winrt.system.UInt32: ...
    @_property
    def siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def sidecars_count(self) -> winrt.system.UInt32: ...
    @_property
    def sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def total_count(self) -> winrt.system.UInt32: ...
    @_property
    def total_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def videos_count(self) -> winrt.system.UInt32: ...
    @_property
    def videos_size_in_bytes(self) -> winrt.system.UInt64: ...

class PhotoImportFindItemsResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportFindItemsResult: ...
    def add_items_in_date_range_to_selection(self, range_start: datetime.datetime, range_length: datetime.timedelta, /) -> None: ...
    def import_items_async(self) -> winrt.windows.foundation.IAsyncOperationWithProgress[PhotoImportImportItemsResult, PhotoImportProgress]: ...
    def select_all(self) -> None: ...
    def select_new_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def select_none(self) -> None: ...
    def set_import_mode(self, value: PhotoImportImportMode, /) -> None: ...
    def add_item_imported(self, value: winrt.windows.foundation.TypedEventHandler[PhotoImportFindItemsResult, PhotoImportItemImportedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_item_imported(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_selection_changed(self, value: winrt.windows.foundation.TypedEventHandler[PhotoImportFindItemsResult, PhotoImportSelectionChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_selection_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def found_items(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportItem]]: ...
    @_property
    def has_succeeded(self) -> bool: ...
    @_property
    def import_mode(self) -> PhotoImportImportMode: ...
    @_property
    def photos_count(self) -> winrt.system.UInt32: ...
    @_property
    def photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def selected_photos_count(self) -> winrt.system.UInt32: ...
    @_property
    def selected_photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def selected_siblings_count(self) -> winrt.system.UInt32: ...
    @_property
    def selected_siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def selected_sidecars_count(self) -> winrt.system.UInt32: ...
    @_property
    def selected_sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def selected_total_count(self) -> winrt.system.UInt32: ...
    @_property
    def selected_total_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def selected_videos_count(self) -> winrt.system.UInt32: ...
    @_property
    def selected_videos_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def session(self) -> typing.Optional[PhotoImportSession]: ...
    @_property
    def siblings_count(self) -> winrt.system.UInt32: ...
    @_property
    def siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def sidecars_count(self) -> winrt.system.UInt32: ...
    @_property
    def sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def total_count(self) -> winrt.system.UInt32: ...
    @_property
    def total_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def videos_count(self) -> winrt.system.UInt32: ...
    @_property
    def videos_size_in_bytes(self) -> winrt.system.UInt64: ...

class PhotoImportImportItemsResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportImportItemsResult: ...
    def delete_imported_items_from_source_async(self) -> winrt.windows.foundation.IAsyncOperationWithProgress[PhotoImportDeleteImportedItemsFromSourceResult, winrt.system.Double]: ...
    @_property
    def has_succeeded(self) -> bool: ...
    @_property
    def imported_items(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportItem]]: ...
    @_property
    def photos_count(self) -> winrt.system.UInt32: ...
    @_property
    def photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def session(self) -> typing.Optional[PhotoImportSession]: ...
    @_property
    def siblings_count(self) -> winrt.system.UInt32: ...
    @_property
    def siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def sidecars_count(self) -> winrt.system.UInt32: ...
    @_property
    def sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def total_count(self) -> winrt.system.UInt32: ...
    @_property
    def total_size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def videos_count(self) -> winrt.system.UInt32: ...
    @_property
    def videos_size_in_bytes(self) -> winrt.system.UInt64: ...

class PhotoImportItem(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportItem: ...
    @_property
    def is_selected(self) -> bool: ...
    @is_selected.setter
    def is_selected(self, value: bool) -> None: ...
    @_property
    def content_type(self) -> PhotoImportContentType: ...
    @_property
    def date(self) -> datetime.datetime: ...
    @_property
    def deleted_file_names(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[str]]: ...
    @_property
    def imported_file_names(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[str]]: ...
    @_property
    def item_key(self) -> winrt.system.UInt64: ...
    @_property
    def name(self) -> str: ...
    @_property
    def sibling(self) -> typing.Optional[PhotoImportSidecar]: ...
    @_property
    def sidecars(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportSidecar]]: ...
    @_property
    def size_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def thumbnail(self) -> typing.Optional[winrt.windows.storage.streams.IRandomAccessStreamReference]: ...
    @_property
    def video_segments(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportVideoSegment]]: ...
    @_property
    def path(self) -> str: ...

class PhotoImportItemImportedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportItemImportedEventArgs: ...
    @_property
    def imported_item(self) -> typing.Optional[PhotoImportItem]: ...

class PhotoImportManager_Static(type):
    def find_all_sources_async(cls) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.foundation.collections.IVectorView[PhotoImportSource]]: ...
    def get_pending_operations(cls) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportOperation]]: ...
    def is_supported_async(cls) -> winrt.windows.foundation.IAsyncOperation[bool]: ...

class PhotoImportManager(winrt.system.Object, metaclass=PhotoImportManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportManager: ...

class PhotoImportOperation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportOperation: ...
    @_property
    def continue_deleting_imported_items_from_source_async(self) -> winrt.windows.foundation.IAsyncOperationWithProgress[PhotoImportDeleteImportedItemsFromSourceResult, winrt.system.Double]: ...
    @_property
    def continue_finding_items_async(self) -> winrt.windows.foundation.IAsyncOperationWithProgress[PhotoImportFindItemsResult, winrt.system.UInt32]: ...
    @_property
    def continue_importing_items_async(self) -> winrt.windows.foundation.IAsyncOperationWithProgress[PhotoImportImportItemsResult, PhotoImportProgress]: ...
    @_property
    def session(self) -> typing.Optional[PhotoImportSession]: ...
    @_property
    def stage(self) -> PhotoImportStage: ...

class PhotoImportSelectionChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportSelectionChangedEventArgs: ...
    @_property
    def is_selection_empty(self) -> bool: ...

class PhotoImportSession(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportSession: ...
    def close(self) -> None: ...
    def find_items_async(self, content_type_filter: PhotoImportContentTypeFilter, item_selection_mode: PhotoImportItemSelectionMode, /) -> winrt.windows.foundation.IAsyncOperationWithProgress[PhotoImportFindItemsResult, winrt.system.UInt32]: ...
    @_property
    def subfolder_creation_mode(self) -> PhotoImportSubfolderCreationMode: ...
    @subfolder_creation_mode.setter
    def subfolder_creation_mode(self, value: PhotoImportSubfolderCreationMode) -> None: ...
    @_property
    def destination_folder(self) -> typing.Optional[winrt.windows.storage.IStorageFolder]: ...
    @destination_folder.setter
    def destination_folder(self, value: typing.Optional[winrt.windows.storage.IStorageFolder]) -> None: ...
    @_property
    def destination_file_name_prefix(self) -> str: ...
    @destination_file_name_prefix.setter
    def destination_file_name_prefix(self, value: str) -> None: ...
    @_property
    def append_session_date_to_destination_folder(self) -> bool: ...
    @append_session_date_to_destination_folder.setter
    def append_session_date_to_destination_folder(self, value: bool) -> None: ...
    @_property
    def session_id(self) -> _uuid.UUID: ...
    @_property
    def source(self) -> typing.Optional[PhotoImportSource]: ...
    @_property
    def subfolder_date_format(self) -> PhotoImportSubfolderDateFormat: ...
    @subfolder_date_format.setter
    def subfolder_date_format(self, value: PhotoImportSubfolderDateFormat) -> None: ...
    @_property
    def remember_deselected_items(self) -> bool: ...
    @remember_deselected_items.setter
    def remember_deselected_items(self, value: bool) -> None: ...

class PhotoImportSidecar(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportSidecar: ...
    @_property
    def date(self) -> datetime.datetime: ...
    @_property
    def name(self) -> str: ...
    @_property
    def size_in_bytes(self) -> winrt.system.UInt64: ...

class PhotoImportSource_Static(type):
    def from_folder_async(cls, source_root_folder: typing.Optional[winrt.windows.storage.IStorageFolder], /) -> winrt.windows.foundation.IAsyncOperation[PhotoImportSource]: ...
    def from_id_async(cls, source_id: str, /) -> winrt.windows.foundation.IAsyncOperation[PhotoImportSource]: ...

class PhotoImportSource(winrt.system.Object, metaclass=PhotoImportSource_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportSource: ...
    def create_import_session(self) -> typing.Optional[PhotoImportSession]: ...
    @_property
    def battery_level_percent(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def connection_protocol(self) -> str: ...
    @_property
    def connection_transport(self) -> PhotoImportConnectionTransport: ...
    @_property
    def date_time(self) -> typing.Optional[typing.Optional[datetime.datetime]]: ...
    @_property
    def description(self) -> str: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def id(self) -> str: ...
    @_property
    def is_locked(self) -> typing.Optional[typing.Optional[bool]]: ...
    @_property
    def is_mass_storage(self) -> bool: ...
    @_property
    def manufacturer(self) -> str: ...
    @_property
    def model(self) -> str: ...
    @_property
    def power_source(self) -> PhotoImportPowerSource: ...
    @_property
    def serial_number(self) -> str: ...
    @_property
    def storage_media(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportStorageMedium]]: ...
    @_property
    def thumbnail(self) -> typing.Optional[winrt.windows.storage.streams.IRandomAccessStreamReference]: ...
    @_property
    def type(self) -> PhotoImportSourceType: ...

class PhotoImportStorageMedium(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportStorageMedium: ...
    def refresh(self) -> None: ...
    @_property
    def available_space_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def capacity_in_bytes(self) -> winrt.system.UInt64: ...
    @_property
    def description(self) -> str: ...
    @_property
    def name(self) -> str: ...
    @_property
    def serial_number(self) -> str: ...
    @_property
    def storage_medium_type(self) -> PhotoImportStorageMediumType: ...
    @_property
    def supported_access_mode(self) -> PhotoImportAccessMode: ...

class PhotoImportVideoSegment(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoImportVideoSegment: ...
    @_property
    def date(self) -> datetime.datetime: ...
    @_property
    def name(self) -> str: ...
    @_property
    def sibling(self) -> typing.Optional[PhotoImportSidecar]: ...
    @_property
    def sidecars(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[PhotoImportSidecar]]: ...
    @_property
    def size_in_bytes(self) -> winrt.system.UInt64: ...

