# 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
import winrt.windows.storage as windows_storage
import winrt.windows.storage.streams as 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')

@typing.final
class PhotoImportProgress:
    @_property
    def items_imported(self) -> winrt.system.UInt32: ...
    @_property
    def total_items_to_import(self) -> winrt.system.UInt32: ...
    @_property
    def bytes_imported(self) -> winrt.system.UInt64: ...
    @_property
    def total_bytes_to_import(self) -> winrt.system.UInt64: ...
    @_property
    def import_progress(self) -> winrt.system.Double: ...
    def __new__(cls, items_imported: winrt.system.UInt32 = 0, total_items_to_import: winrt.system.UInt32 = 0, bytes_imported: winrt.system.UInt64 = 0, total_bytes_to_import: winrt.system.UInt64 = 0, import_progress: winrt.system.Double = 0) -> PhotoImportProgress: ...
    def __replace__(self, /, **changes: typing.Any) -> PhotoImportProgress: ...
    def unpack(self) -> typing.Tuple[winrt.system.UInt32, winrt.system.UInt32, winrt.system.UInt64, winrt.system.UInt64, winrt.system.Double]: ...

@typing.final
class PhotoImportDeleteImportedItemsFromSourceResult(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportItem> Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_DeletedItems()
    @_property
    def deleted_items(self) -> typing.Sequence[PhotoImportItem]: ...
    # System.Boolean Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_HasSucceeded()
    @_property
    def has_succeeded(self) -> bool: ...
    # System.UInt32 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_PhotosCount()
    @_property
    def photos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_PhotosSizeInBytes()
    @_property
    def photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    # Windows.Media.Import.PhotoImportSession Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_Session()
    @_property
    def session(self) -> PhotoImportSession: ...
    # System.UInt32 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_SiblingsCount()
    @_property
    def siblings_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_SiblingsSizeInBytes()
    @_property
    def siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_SidecarsCount()
    @_property
    def sidecars_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_SidecarsSizeInBytes()
    @_property
    def sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_TotalCount()
    @_property
    def total_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_TotalSizeInBytes()
    @_property
    def total_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_VideosCount()
    @_property
    def videos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult::get_VideosSizeInBytes()
    @_property
    def videos_size_in_bytes(self) -> winrt.system.UInt64: ...

@typing.final
class PhotoImportFindItemsResult(winrt.system.Object):
    # System.Void Windows.Media.Import.PhotoImportFindItemsResult::AddItemsInDateRangeToSelection(Windows.Foundation.DateTime,Windows.Foundation.TimeSpan)
    def add_items_in_date_range_to_selection(self, range_start: datetime.datetime, range_length: datetime.timedelta, /) -> None: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Media.Import.PhotoImportImportItemsResult,Windows.Media.Import.PhotoImportProgress> Windows.Media.Import.PhotoImportFindItemsResult::ImportItemsAsync()
    def import_items_async(self) -> windows_foundation.IAsyncOperationWithProgress[PhotoImportImportItemsResult, PhotoImportProgress]: ...
    # System.Void Windows.Media.Import.PhotoImportFindItemsResult::SelectAll()
    def select_all(self) -> None: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Import.PhotoImportFindItemsResult::SelectNewAsync()
    def select_new_async(self) -> windows_foundation.IAsyncAction: ...
    # System.Void Windows.Media.Import.PhotoImportFindItemsResult::SelectNone()
    def select_none(self) -> None: ...
    # System.Void Windows.Media.Import.PhotoImportFindItemsResult::SetImportMode(Windows.Media.Import.PhotoImportImportMode)
    def set_import_mode(self, value: PhotoImportImportMode, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Import.PhotoImportFindItemsResult::add_ItemImported(Windows.Foundation.TypedEventHandler`2<Windows.Media.Import.PhotoImportFindItemsResult,Windows.Media.Import.PhotoImportItemImportedEventArgs>)
    def add_item_imported(self, value: windows_foundation.TypedEventHandler[PhotoImportFindItemsResult, PhotoImportItemImportedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Import.PhotoImportFindItemsResult::remove_ItemImported(Windows.Foundation.EventRegistrationToken)
    def remove_item_imported(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Import.PhotoImportFindItemsResult::add_SelectionChanged(Windows.Foundation.TypedEventHandler`2<Windows.Media.Import.PhotoImportFindItemsResult,Windows.Media.Import.PhotoImportSelectionChangedEventArgs>)
    def add_selection_changed(self, value: windows_foundation.TypedEventHandler[PhotoImportFindItemsResult, PhotoImportSelectionChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Import.PhotoImportFindItemsResult::remove_SelectionChanged(Windows.Foundation.EventRegistrationToken)
    def remove_selection_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportItem> Windows.Media.Import.PhotoImportFindItemsResult::get_FoundItems()
    @_property
    def found_items(self) -> typing.Sequence[PhotoImportItem]: ...
    # System.Boolean Windows.Media.Import.PhotoImportFindItemsResult::get_HasSucceeded()
    @_property
    def has_succeeded(self) -> bool: ...
    # Windows.Media.Import.PhotoImportImportMode Windows.Media.Import.PhotoImportFindItemsResult::get_ImportMode()
    @_property
    def import_mode(self) -> PhotoImportImportMode: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_PhotosCount()
    @_property
    def photos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_PhotosSizeInBytes()
    @_property
    def photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedPhotosCount()
    @_property
    def selected_photos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedPhotosSizeInBytes()
    @_property
    def selected_photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedSiblingsCount()
    @_property
    def selected_siblings_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedSiblingsSizeInBytes()
    @_property
    def selected_siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedSidecarsCount()
    @_property
    def selected_sidecars_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedSidecarsSizeInBytes()
    @_property
    def selected_sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedTotalCount()
    @_property
    def selected_total_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedTotalSizeInBytes()
    @_property
    def selected_total_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedVideosCount()
    @_property
    def selected_videos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_SelectedVideosSizeInBytes()
    @_property
    def selected_videos_size_in_bytes(self) -> winrt.system.UInt64: ...
    # Windows.Media.Import.PhotoImportSession Windows.Media.Import.PhotoImportFindItemsResult::get_Session()
    @_property
    def session(self) -> PhotoImportSession: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_SiblingsCount()
    @_property
    def siblings_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_SiblingsSizeInBytes()
    @_property
    def siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_SidecarsCount()
    @_property
    def sidecars_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_SidecarsSizeInBytes()
    @_property
    def sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_TotalCount()
    @_property
    def total_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_TotalSizeInBytes()
    @_property
    def total_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportFindItemsResult::get_VideosCount()
    @_property
    def videos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportFindItemsResult::get_VideosSizeInBytes()
    @_property
    def videos_size_in_bytes(self) -> winrt.system.UInt64: ...

@typing.final
class PhotoImportImportItemsResult(winrt.system.Object):
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult,System.Double> Windows.Media.Import.PhotoImportImportItemsResult::DeleteImportedItemsFromSourceAsync()
    def delete_imported_items_from_source_async(self) -> windows_foundation.IAsyncOperationWithProgress[PhotoImportDeleteImportedItemsFromSourceResult, winrt.system.Double]: ...
    # System.Boolean Windows.Media.Import.PhotoImportImportItemsResult::get_HasSucceeded()
    @_property
    def has_succeeded(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportItem> Windows.Media.Import.PhotoImportImportItemsResult::get_ImportedItems()
    @_property
    def imported_items(self) -> typing.Sequence[PhotoImportItem]: ...
    # System.UInt32 Windows.Media.Import.PhotoImportImportItemsResult::get_PhotosCount()
    @_property
    def photos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportImportItemsResult::get_PhotosSizeInBytes()
    @_property
    def photos_size_in_bytes(self) -> winrt.system.UInt64: ...
    # Windows.Media.Import.PhotoImportSession Windows.Media.Import.PhotoImportImportItemsResult::get_Session()
    @_property
    def session(self) -> PhotoImportSession: ...
    # System.UInt32 Windows.Media.Import.PhotoImportImportItemsResult::get_SiblingsCount()
    @_property
    def siblings_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportImportItemsResult::get_SiblingsSizeInBytes()
    @_property
    def siblings_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportImportItemsResult::get_SidecarsCount()
    @_property
    def sidecars_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportImportItemsResult::get_SidecarsSizeInBytes()
    @_property
    def sidecars_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportImportItemsResult::get_TotalCount()
    @_property
    def total_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportImportItemsResult::get_TotalSizeInBytes()
    @_property
    def total_size_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt32 Windows.Media.Import.PhotoImportImportItemsResult::get_VideosCount()
    @_property
    def videos_count(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Media.Import.PhotoImportImportItemsResult::get_VideosSizeInBytes()
    @_property
    def videos_size_in_bytes(self) -> winrt.system.UInt64: ...

@typing.final
class PhotoImportItem(winrt.system.Object):
    # System.Boolean Windows.Media.Import.PhotoImportItem::get_IsSelected()
    @_property
    def is_selected(self) -> bool: ...
    # System.Void Windows.Media.Import.PhotoImportItem::put_IsSelected(System.Boolean)
    @is_selected.setter
    def is_selected(self, value: bool) -> None: ...
    # Windows.Media.Import.PhotoImportContentType Windows.Media.Import.PhotoImportItem::get_ContentType()
    @_property
    def content_type(self) -> PhotoImportContentType: ...
    # Windows.Foundation.DateTime Windows.Media.Import.PhotoImportItem::get_Date()
    @_property
    def date(self) -> datetime.datetime: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Media.Import.PhotoImportItem::get_DeletedFileNames()
    @_property
    def deleted_file_names(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Media.Import.PhotoImportItem::get_ImportedFileNames()
    @_property
    def imported_file_names(self) -> typing.Sequence[str]: ...
    # System.UInt64 Windows.Media.Import.PhotoImportItem::get_ItemKey()
    @_property
    def item_key(self) -> winrt.system.UInt64: ...
    # System.String Windows.Media.Import.PhotoImportItem::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Media.Import.PhotoImportSidecar Windows.Media.Import.PhotoImportItem::get_Sibling()
    @_property
    def sibling(self) -> PhotoImportSidecar: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportSidecar> Windows.Media.Import.PhotoImportItem::get_Sidecars()
    @_property
    def sidecars(self) -> typing.Sequence[PhotoImportSidecar]: ...
    # System.UInt64 Windows.Media.Import.PhotoImportItem::get_SizeInBytes()
    @_property
    def size_in_bytes(self) -> winrt.system.UInt64: ...
    # Windows.Storage.Streams.IRandomAccessStreamReference Windows.Media.Import.PhotoImportItem::get_Thumbnail()
    @_property
    def thumbnail(self) -> windows_storage_streams.IRandomAccessStreamReference: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportVideoSegment> Windows.Media.Import.PhotoImportItem::get_VideoSegments()
    @_property
    def video_segments(self) -> typing.Sequence[PhotoImportVideoSegment]: ...
    # System.String Windows.Media.Import.PhotoImportItem::get_Path()
    @_property
    def path(self) -> str: ...

@typing.final
class PhotoImportItemImportedEventArgs(winrt.system.Object):
    # Windows.Media.Import.PhotoImportItem Windows.Media.Import.PhotoImportItemImportedEventArgs::get_ImportedItem()
    @_property
    def imported_item(self) -> PhotoImportItem: ...

@typing.final
class PhotoImportManager_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportSource>> Windows.Media.Import.PhotoImportManager::FindAllSourcesAsync()
    def find_all_sources_async(cls) -> windows_foundation.IAsyncOperation[typing.Sequence[PhotoImportSource]]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportOperation> Windows.Media.Import.PhotoImportManager::GetPendingOperations()
    def get_pending_operations(cls) -> typing.Sequence[PhotoImportOperation]: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Media.Import.PhotoImportManager::IsSupportedAsync()
    def is_supported_async(cls) -> windows_foundation.IAsyncOperation[bool]: ...

@typing.final
class PhotoImportManager(winrt.system.Object, metaclass=PhotoImportManager_Static):
    pass

@typing.final
class PhotoImportOperation(winrt.system.Object):
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult,System.Double> Windows.Media.Import.PhotoImportOperation::get_ContinueDeletingImportedItemsFromSourceAsync()
    @_property
    def continue_deleting_imported_items_from_source_async(self) -> windows_foundation.IAsyncOperationWithProgress[PhotoImportDeleteImportedItemsFromSourceResult, winrt.system.Double]: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Media.Import.PhotoImportFindItemsResult,System.UInt32> Windows.Media.Import.PhotoImportOperation::get_ContinueFindingItemsAsync()
    @_property
    def continue_finding_items_async(self) -> windows_foundation.IAsyncOperationWithProgress[PhotoImportFindItemsResult, winrt.system.UInt32]: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Media.Import.PhotoImportImportItemsResult,Windows.Media.Import.PhotoImportProgress> Windows.Media.Import.PhotoImportOperation::get_ContinueImportingItemsAsync()
    @_property
    def continue_importing_items_async(self) -> windows_foundation.IAsyncOperationWithProgress[PhotoImportImportItemsResult, PhotoImportProgress]: ...
    # Windows.Media.Import.PhotoImportSession Windows.Media.Import.PhotoImportOperation::get_Session()
    @_property
    def session(self) -> PhotoImportSession: ...
    # Windows.Media.Import.PhotoImportStage Windows.Media.Import.PhotoImportOperation::get_Stage()
    @_property
    def stage(self) -> PhotoImportStage: ...

@typing.final
class PhotoImportSelectionChangedEventArgs(winrt.system.Object):
    # System.Boolean Windows.Media.Import.PhotoImportSelectionChangedEventArgs::get_IsSelectionEmpty()
    @_property
    def is_selection_empty(self) -> bool: ...

@typing.final
class PhotoImportSession(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Media.Import.PhotoImportSession::Close()
    def close(self) -> None: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Media.Import.PhotoImportFindItemsResult,System.UInt32> Windows.Media.Import.PhotoImportSession::FindItemsAsync(Windows.Media.Import.PhotoImportContentTypeFilter,Windows.Media.Import.PhotoImportItemSelectionMode)
    def find_items_async(self, content_type_filter: PhotoImportContentTypeFilter, item_selection_mode: PhotoImportItemSelectionMode, /) -> windows_foundation.IAsyncOperationWithProgress[PhotoImportFindItemsResult, winrt.system.UInt32]: ...
    # Windows.Media.Import.PhotoImportSubfolderCreationMode Windows.Media.Import.PhotoImportSession::get_SubfolderCreationMode()
    @_property
    def subfolder_creation_mode(self) -> PhotoImportSubfolderCreationMode: ...
    # System.Void Windows.Media.Import.PhotoImportSession::put_SubfolderCreationMode(Windows.Media.Import.PhotoImportSubfolderCreationMode)
    @subfolder_creation_mode.setter
    def subfolder_creation_mode(self, value: PhotoImportSubfolderCreationMode) -> None: ...
    # Windows.Storage.IStorageFolder Windows.Media.Import.PhotoImportSession::get_DestinationFolder()
    @_property
    def destination_folder(self) -> windows_storage.IStorageFolder: ...
    # System.Void Windows.Media.Import.PhotoImportSession::put_DestinationFolder(Windows.Storage.IStorageFolder)
    @destination_folder.setter
    def destination_folder(self, value: windows_storage.IStorageFolder) -> None: ...
    # System.String Windows.Media.Import.PhotoImportSession::get_DestinationFileNamePrefix()
    @_property
    def destination_file_name_prefix(self) -> str: ...
    # System.Void Windows.Media.Import.PhotoImportSession::put_DestinationFileNamePrefix(System.String)
    @destination_file_name_prefix.setter
    def destination_file_name_prefix(self, value: str) -> None: ...
    # System.Boolean Windows.Media.Import.PhotoImportSession::get_AppendSessionDateToDestinationFolder()
    @_property
    def append_session_date_to_destination_folder(self) -> bool: ...
    # System.Void Windows.Media.Import.PhotoImportSession::put_AppendSessionDateToDestinationFolder(System.Boolean)
    @append_session_date_to_destination_folder.setter
    def append_session_date_to_destination_folder(self, value: bool) -> None: ...
    # System.Guid Windows.Media.Import.PhotoImportSession::get_SessionId()
    @_property
    def session_id(self) -> _uuid.UUID: ...
    # Windows.Media.Import.PhotoImportSource Windows.Media.Import.PhotoImportSession::get_Source()
    @_property
    def source(self) -> PhotoImportSource: ...
    # Windows.Media.Import.PhotoImportSubfolderDateFormat Windows.Media.Import.PhotoImportSession::get_SubfolderDateFormat()
    @_property
    def subfolder_date_format(self) -> PhotoImportSubfolderDateFormat: ...
    # System.Void Windows.Media.Import.PhotoImportSession::put_SubfolderDateFormat(Windows.Media.Import.PhotoImportSubfolderDateFormat)
    @subfolder_date_format.setter
    def subfolder_date_format(self, value: PhotoImportSubfolderDateFormat) -> None: ...
    # System.Boolean Windows.Media.Import.PhotoImportSession::get_RememberDeselectedItems()
    @_property
    def remember_deselected_items(self) -> bool: ...
    # System.Void Windows.Media.Import.PhotoImportSession::put_RememberDeselectedItems(System.Boolean)
    @remember_deselected_items.setter
    def remember_deselected_items(self, value: bool) -> None: ...

@typing.final
class PhotoImportSidecar(winrt.system.Object):
    # Windows.Foundation.DateTime Windows.Media.Import.PhotoImportSidecar::get_Date()
    @_property
    def date(self) -> datetime.datetime: ...
    # System.String Windows.Media.Import.PhotoImportSidecar::get_Name()
    @_property
    def name(self) -> str: ...
    # System.UInt64 Windows.Media.Import.PhotoImportSidecar::get_SizeInBytes()
    @_property
    def size_in_bytes(self) -> winrt.system.UInt64: ...

@typing.final
class PhotoImportSource_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.Import.PhotoImportSource> Windows.Media.Import.PhotoImportSource::FromFolderAsync(Windows.Storage.IStorageFolder)
    def from_folder_async(cls, source_root_folder: windows_storage.IStorageFolder, /) -> windows_foundation.IAsyncOperation[PhotoImportSource]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.Import.PhotoImportSource> Windows.Media.Import.PhotoImportSource::FromIdAsync(System.String)
    def from_id_async(cls, source_id: str, /) -> windows_foundation.IAsyncOperation[PhotoImportSource]: ...

@typing.final
class PhotoImportSource(winrt.system.Object, metaclass=PhotoImportSource_Static):
    # Windows.Media.Import.PhotoImportSession Windows.Media.Import.PhotoImportSource::CreateImportSession()
    def create_import_session(self) -> PhotoImportSession: ...
    # Windows.Foundation.IReference`1<System.UInt32> Windows.Media.Import.PhotoImportSource::get_BatteryLevelPercent()
    @_property
    def battery_level_percent(self) -> typing.Optional[winrt.system.UInt32]: ...
    # System.String Windows.Media.Import.PhotoImportSource::get_ConnectionProtocol()
    @_property
    def connection_protocol(self) -> str: ...
    # Windows.Media.Import.PhotoImportConnectionTransport Windows.Media.Import.PhotoImportSource::get_ConnectionTransport()
    @_property
    def connection_transport(self) -> PhotoImportConnectionTransport: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.DateTime> Windows.Media.Import.PhotoImportSource::get_DateTime()
    @_property
    def date_time(self) -> typing.Optional[datetime.datetime]: ...
    # System.String Windows.Media.Import.PhotoImportSource::get_Description()
    @_property
    def description(self) -> str: ...
    # System.String Windows.Media.Import.PhotoImportSource::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.String Windows.Media.Import.PhotoImportSource::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Foundation.IReference`1<System.Boolean> Windows.Media.Import.PhotoImportSource::get_IsLocked()
    @_property
    def is_locked(self) -> typing.Optional[bool]: ...
    # System.Boolean Windows.Media.Import.PhotoImportSource::get_IsMassStorage()
    @_property
    def is_mass_storage(self) -> bool: ...
    # System.String Windows.Media.Import.PhotoImportSource::get_Manufacturer()
    @_property
    def manufacturer(self) -> str: ...
    # System.String Windows.Media.Import.PhotoImportSource::get_Model()
    @_property
    def model(self) -> str: ...
    # Windows.Media.Import.PhotoImportPowerSource Windows.Media.Import.PhotoImportSource::get_PowerSource()
    @_property
    def power_source(self) -> PhotoImportPowerSource: ...
    # System.String Windows.Media.Import.PhotoImportSource::get_SerialNumber()
    @_property
    def serial_number(self) -> str: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportStorageMedium> Windows.Media.Import.PhotoImportSource::get_StorageMedia()
    @_property
    def storage_media(self) -> typing.Sequence[PhotoImportStorageMedium]: ...
    # Windows.Storage.Streams.IRandomAccessStreamReference Windows.Media.Import.PhotoImportSource::get_Thumbnail()
    @_property
    def thumbnail(self) -> windows_storage_streams.IRandomAccessStreamReference: ...
    # Windows.Media.Import.PhotoImportSourceType Windows.Media.Import.PhotoImportSource::get_Type()
    @_property
    def type(self) -> PhotoImportSourceType: ...

@typing.final
class PhotoImportStorageMedium(winrt.system.Object):
    # System.Void Windows.Media.Import.PhotoImportStorageMedium::Refresh()
    def refresh(self) -> None: ...
    # System.UInt64 Windows.Media.Import.PhotoImportStorageMedium::get_AvailableSpaceInBytes()
    @_property
    def available_space_in_bytes(self) -> winrt.system.UInt64: ...
    # System.UInt64 Windows.Media.Import.PhotoImportStorageMedium::get_CapacityInBytes()
    @_property
    def capacity_in_bytes(self) -> winrt.system.UInt64: ...
    # System.String Windows.Media.Import.PhotoImportStorageMedium::get_Description()
    @_property
    def description(self) -> str: ...
    # System.String Windows.Media.Import.PhotoImportStorageMedium::get_Name()
    @_property
    def name(self) -> str: ...
    # System.String Windows.Media.Import.PhotoImportStorageMedium::get_SerialNumber()
    @_property
    def serial_number(self) -> str: ...
    # Windows.Media.Import.PhotoImportStorageMediumType Windows.Media.Import.PhotoImportStorageMedium::get_StorageMediumType()
    @_property
    def storage_medium_type(self) -> PhotoImportStorageMediumType: ...
    # Windows.Media.Import.PhotoImportAccessMode Windows.Media.Import.PhotoImportStorageMedium::get_SupportedAccessMode()
    @_property
    def supported_access_mode(self) -> PhotoImportAccessMode: ...

@typing.final
class PhotoImportVideoSegment(winrt.system.Object):
    # Windows.Foundation.DateTime Windows.Media.Import.PhotoImportVideoSegment::get_Date()
    @_property
    def date(self) -> datetime.datetime: ...
    # System.String Windows.Media.Import.PhotoImportVideoSegment::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Media.Import.PhotoImportSidecar Windows.Media.Import.PhotoImportVideoSegment::get_Sibling()
    @_property
    def sibling(self) -> PhotoImportSidecar: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Import.PhotoImportSidecar> Windows.Media.Import.PhotoImportVideoSegment::get_Sidecars()
    @_property
    def sidecars(self) -> typing.Sequence[PhotoImportSidecar]: ...
    # System.UInt64 Windows.Media.Import.PhotoImportVideoSegment::get_SizeInBytes()
    @_property
    def size_in_bytes(self) -> winrt.system.UInt64: ...

