# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property
from abc import abstractmethod

import winrt._winrt
import winrt.system
import winrt.windows.devices.geolocation as windows_devices_geolocation
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.storage.fileproperties import PhotoOrientation, PropertyPrefetchOptions, ThumbnailMode, ThumbnailOptions, ThumbnailType, VideoOrientation

Self = typing.TypeVar('Self')

@typing.final
class BasicProperties(winrt.system.Object, IStorageItemExtraProperties):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.Object>> Windows.Storage.FileProperties.BasicProperties::RetrievePropertiesAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    def retrieve_properties_async(self, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.BasicProperties::SavePropertiesAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.Object>>)
    def save_properties_async(self, properties_to_save: typing.Union[typing.Mapping[str, winrt.system.Object], typing.Iterable[windows_foundation_collections.IKeyValuePair[str, winrt.system.Object]]], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.BasicProperties::SavePropertiesAsync()
    def save_properties_async_overload_default(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.DateTime Windows.Storage.FileProperties.BasicProperties::get_DateModified()
    @_property
    def date_modified(self) -> datetime.datetime: ...
    # Windows.Foundation.DateTime Windows.Storage.FileProperties.BasicProperties::get_ItemDate()
    @_property
    def item_date(self) -> datetime.datetime: ...
    # System.UInt64 Windows.Storage.FileProperties.BasicProperties::get_Size()
    @_property
    def size(self) -> winrt.system.UInt64: ...

@typing.final
class DocumentProperties(winrt.system.Object, IStorageItemExtraProperties):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.Object>> Windows.Storage.FileProperties.DocumentProperties::RetrievePropertiesAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    def retrieve_properties_async(self, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.DocumentProperties::SavePropertiesAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.Object>>)
    def save_properties_async(self, properties_to_save: typing.Union[typing.Mapping[str, winrt.system.Object], typing.Iterable[windows_foundation_collections.IKeyValuePair[str, winrt.system.Object]]], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.DocumentProperties::SavePropertiesAsync()
    def save_properties_async_overload_default(self) -> windows_foundation.IAsyncAction: ...
    # System.String Windows.Storage.FileProperties.DocumentProperties::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.DocumentProperties::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # System.String Windows.Storage.FileProperties.DocumentProperties::get_Comment()
    @_property
    def comment(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.DocumentProperties::put_Comment(System.String)
    @comment.setter
    def comment(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.DocumentProperties::get_Author()
    @_property
    def author(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.DocumentProperties::get_Keywords()
    @_property
    def keywords(self) -> typing.MutableSequence[str]: ...

@typing.final
class GeotagHelper_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Geolocation.Geopoint> Windows.Storage.FileProperties.GeotagHelper::GetGeotagAsync(Windows.Storage.IStorageFile)
    def get_geotag_async(cls, file: windows_storage.IStorageFile, /) -> windows_foundation.IAsyncOperation[windows_devices_geolocation.Geopoint]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.GeotagHelper::SetGeotagAsync(Windows.Storage.IStorageFile,Windows.Devices.Geolocation.Geopoint)
    def set_geotag_async(cls, file: windows_storage.IStorageFile, geopoint: windows_devices_geolocation.Geopoint, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.GeotagHelper::SetGeotagFromGeolocatorAsync(Windows.Storage.IStorageFile,Windows.Devices.Geolocation.Geolocator)
    def set_geotag_from_geolocator_async(cls, file: windows_storage.IStorageFile, geolocator: windows_devices_geolocation.Geolocator, /) -> windows_foundation.IAsyncAction: ...

@typing.final
class GeotagHelper(winrt.system.Object, metaclass=GeotagHelper_Static):
    pass

@typing.final
class ImageProperties(winrt.system.Object, IStorageItemExtraProperties):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.Object>> Windows.Storage.FileProperties.ImageProperties::RetrievePropertiesAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    def retrieve_properties_async(self, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.ImageProperties::SavePropertiesAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.Object>>)
    def save_properties_async(self, properties_to_save: typing.Union[typing.Mapping[str, winrt.system.Object], typing.Iterable[windows_foundation_collections.IKeyValuePair[str, winrt.system.Object]]], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.ImageProperties::SavePropertiesAsync()
    def save_properties_async_overload_default(self) -> windows_foundation.IAsyncAction: ...
    # System.String Windows.Storage.FileProperties.ImageProperties::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.ImageProperties::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # System.UInt32 Windows.Storage.FileProperties.ImageProperties::get_Rating()
    @_property
    def rating(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Storage.FileProperties.ImageProperties::put_Rating(System.UInt32)
    @rating.setter
    def rating(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Foundation.DateTime Windows.Storage.FileProperties.ImageProperties::get_DateTaken()
    @_property
    def date_taken(self) -> datetime.datetime: ...
    # System.Void Windows.Storage.FileProperties.ImageProperties::put_DateTaken(Windows.Foundation.DateTime)
    @date_taken.setter
    def date_taken(self, value: datetime.datetime) -> None: ...
    # System.String Windows.Storage.FileProperties.ImageProperties::get_CameraModel()
    @_property
    def camera_model(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.ImageProperties::put_CameraModel(System.String)
    @camera_model.setter
    def camera_model(self, value: str) -> None: ...
    # System.String Windows.Storage.FileProperties.ImageProperties::get_CameraManufacturer()
    @_property
    def camera_manufacturer(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.ImageProperties::put_CameraManufacturer(System.String)
    @camera_manufacturer.setter
    def camera_manufacturer(self, value: str) -> None: ...
    # System.UInt32 Windows.Storage.FileProperties.ImageProperties::get_Height()
    @_property
    def height(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.ImageProperties::get_Keywords()
    @_property
    def keywords(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Storage.FileProperties.ImageProperties::get_Latitude()
    @_property
    def latitude(self) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Storage.FileProperties.ImageProperties::get_Longitude()
    @_property
    def longitude(self) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Storage.FileProperties.PhotoOrientation Windows.Storage.FileProperties.ImageProperties::get_Orientation()
    @_property
    def orientation(self) -> PhotoOrientation: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Storage.FileProperties.ImageProperties::get_PeopleNames()
    @_property
    def people_names(self) -> typing.Sequence[str]: ...
    # System.UInt32 Windows.Storage.FileProperties.ImageProperties::get_Width()
    @_property
    def width(self) -> winrt.system.UInt32: ...

@typing.final
class MusicProperties(winrt.system.Object, IStorageItemExtraProperties):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.Object>> Windows.Storage.FileProperties.MusicProperties::RetrievePropertiesAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    def retrieve_properties_async(self, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.MusicProperties::SavePropertiesAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.Object>>)
    def save_properties_async(self, properties_to_save: typing.Union[typing.Mapping[str, winrt.system.Object], typing.Iterable[windows_foundation_collections.IKeyValuePair[str, winrt.system.Object]]], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.MusicProperties::SavePropertiesAsync()
    def save_properties_async_overload_default(self) -> windows_foundation.IAsyncAction: ...
    # System.UInt32 Windows.Storage.FileProperties.MusicProperties::get_Year()
    @_property
    def year(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_Year(System.UInt32)
    @year.setter
    def year(self, value: winrt.system.UInt32) -> None: ...
    # System.UInt32 Windows.Storage.FileProperties.MusicProperties::get_TrackNumber()
    @_property
    def track_number(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_TrackNumber(System.UInt32)
    @track_number.setter
    def track_number(self, value: winrt.system.UInt32) -> None: ...
    # System.String Windows.Storage.FileProperties.MusicProperties::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # System.String Windows.Storage.FileProperties.MusicProperties::get_Subtitle()
    @_property
    def subtitle(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_Subtitle(System.String)
    @subtitle.setter
    def subtitle(self, value: str) -> None: ...
    # System.UInt32 Windows.Storage.FileProperties.MusicProperties::get_Rating()
    @_property
    def rating(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_Rating(System.UInt32)
    @rating.setter
    def rating(self, value: winrt.system.UInt32) -> None: ...
    # System.String Windows.Storage.FileProperties.MusicProperties::get_Publisher()
    @_property
    def publisher(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_Publisher(System.String)
    @publisher.setter
    def publisher(self, value: str) -> None: ...
    # System.String Windows.Storage.FileProperties.MusicProperties::get_Artist()
    @_property
    def artist(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_Artist(System.String)
    @artist.setter
    def artist(self, value: str) -> None: ...
    # System.String Windows.Storage.FileProperties.MusicProperties::get_AlbumArtist()
    @_property
    def album_artist(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_AlbumArtist(System.String)
    @album_artist.setter
    def album_artist(self, value: str) -> None: ...
    # System.String Windows.Storage.FileProperties.MusicProperties::get_Album()
    @_property
    def album(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.MusicProperties::put_Album(System.String)
    @album.setter
    def album(self, value: str) -> None: ...
    # System.UInt32 Windows.Storage.FileProperties.MusicProperties::get_Bitrate()
    @_property
    def bitrate(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.MusicProperties::get_Composers()
    @_property
    def composers(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.MusicProperties::get_Conductors()
    @_property
    def conductors(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.TimeSpan Windows.Storage.FileProperties.MusicProperties::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.MusicProperties::get_Genre()
    @_property
    def genre(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.MusicProperties::get_Producers()
    @_property
    def producers(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.MusicProperties::get_Writers()
    @_property
    def writers(self) -> typing.MutableSequence[str]: ...

@typing.final
class StorageItemContentProperties(winrt.system.Object, IStorageItemExtraProperties):
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.FileProperties.DocumentProperties> Windows.Storage.FileProperties.StorageItemContentProperties::GetDocumentPropertiesAsync()
    def get_document_properties_async(self) -> windows_foundation.IAsyncOperation[DocumentProperties]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.FileProperties.ImageProperties> Windows.Storage.FileProperties.StorageItemContentProperties::GetImagePropertiesAsync()
    def get_image_properties_async(self) -> windows_foundation.IAsyncOperation[ImageProperties]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.FileProperties.MusicProperties> Windows.Storage.FileProperties.StorageItemContentProperties::GetMusicPropertiesAsync()
    def get_music_properties_async(self) -> windows_foundation.IAsyncOperation[MusicProperties]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.FileProperties.VideoProperties> Windows.Storage.FileProperties.StorageItemContentProperties::GetVideoPropertiesAsync()
    def get_video_properties_async(self) -> windows_foundation.IAsyncOperation[VideoProperties]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.Object>> Windows.Storage.FileProperties.StorageItemContentProperties::RetrievePropertiesAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    def retrieve_properties_async(self, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.StorageItemContentProperties::SavePropertiesAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.Object>>)
    def save_properties_async(self, properties_to_save: typing.Union[typing.Mapping[str, winrt.system.Object], typing.Iterable[windows_foundation_collections.IKeyValuePair[str, winrt.system.Object]]], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.StorageItemContentProperties::SavePropertiesAsync()
    def save_properties_async_overload_default(self) -> windows_foundation.IAsyncAction: ...

@typing.final
class StorageItemThumbnail(winrt.system.Object, windows_storage_streams.IRandomAccessStreamWithContentType, windows_storage_streams.IContentTypeProvider, windows_storage_streams.IRandomAccessStream, windows_storage_streams.IOutputStream, windows_storage_streams.IInputStream, 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: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Storage.FileProperties.StorageItemThumbnail::CloneStream()
    def clone_stream(self) -> windows_storage_streams.IRandomAccessStream: ...
    # System.Void Windows.Storage.FileProperties.StorageItemThumbnail::Close()
    def close(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Storage.FileProperties.StorageItemThumbnail::FlushAsync()
    def flush_async(self) -> windows_foundation.IAsyncOperation[bool]: ...
    # Windows.Storage.Streams.IInputStream Windows.Storage.FileProperties.StorageItemThumbnail::GetInputStreamAt(System.UInt64)
    def get_input_stream_at(self, position: winrt.system.UInt64, /) -> windows_storage_streams.IInputStream: ...
    # Windows.Storage.Streams.IOutputStream Windows.Storage.FileProperties.StorageItemThumbnail::GetOutputStreamAt(System.UInt64)
    def get_output_stream_at(self, position: winrt.system.UInt64, /) -> windows_storage_streams.IOutputStream: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Storage.Streams.IBuffer,System.UInt32> Windows.Storage.FileProperties.StorageItemThumbnail::ReadAsync(Windows.Storage.Streams.IBuffer,System.UInt32,Windows.Storage.Streams.InputStreamOptions)
    def read_async(self, buffer: winrt.system.Buffer, count: winrt.system.UInt32, options: windows_storage_streams.InputStreamOptions, /) -> windows_foundation.IAsyncOperationWithProgress[winrt.system.Buffer, winrt.system.UInt32]: ...
    # System.Void Windows.Storage.FileProperties.StorageItemThumbnail::Seek(System.UInt64)
    def seek(self, position: winrt.system.UInt64, /) -> None: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<System.UInt32,System.UInt32> Windows.Storage.FileProperties.StorageItemThumbnail::WriteAsync(Windows.Storage.Streams.IBuffer)
    def write_async(self, buffer: winrt.system.Buffer, /) -> windows_foundation.IAsyncOperationWithProgress[winrt.system.UInt32, winrt.system.UInt32]: ...
    # System.UInt32 Windows.Storage.FileProperties.StorageItemThumbnail::get_OriginalHeight()
    @_property
    def original_height(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Storage.FileProperties.StorageItemThumbnail::get_OriginalWidth()
    @_property
    def original_width(self) -> winrt.system.UInt32: ...
    # System.Boolean Windows.Storage.FileProperties.StorageItemThumbnail::get_ReturnedSmallerCachedSize()
    @_property
    def returned_smaller_cached_size(self) -> bool: ...
    # Windows.Storage.FileProperties.ThumbnailType Windows.Storage.FileProperties.StorageItemThumbnail::get_Type()
    @_property
    def type(self) -> ThumbnailType: ...
    # System.String Windows.Storage.FileProperties.StorageItemThumbnail::get_ContentType()
    @_property
    def content_type(self) -> str: ...
    # System.UInt64 Windows.Storage.FileProperties.StorageItemThumbnail::get_Size()
    @_property
    def size(self) -> winrt.system.UInt64: ...
    # System.Void Windows.Storage.FileProperties.StorageItemThumbnail::put_Size(System.UInt64)
    @size.setter
    def size(self, value: winrt.system.UInt64) -> None: ...
    # System.Boolean Windows.Storage.FileProperties.StorageItemThumbnail::get_CanRead()
    @_property
    def can_read(self) -> bool: ...
    # System.Boolean Windows.Storage.FileProperties.StorageItemThumbnail::get_CanWrite()
    @_property
    def can_write(self) -> bool: ...
    # System.UInt64 Windows.Storage.FileProperties.StorageItemThumbnail::get_Position()
    @_property
    def position(self) -> winrt.system.UInt64: ...

@typing.final
class VideoProperties(winrt.system.Object, IStorageItemExtraProperties):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.Object>> Windows.Storage.FileProperties.VideoProperties::RetrievePropertiesAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    def retrieve_properties_async(self, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.VideoProperties::SavePropertiesAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.Object>>)
    def save_properties_async(self, properties_to_save: typing.Union[typing.Mapping[str, winrt.system.Object], typing.Iterable[windows_foundation_collections.IKeyValuePair[str, winrt.system.Object]]], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.VideoProperties::SavePropertiesAsync()
    def save_properties_async_overload_default(self) -> windows_foundation.IAsyncAction: ...
    # System.UInt32 Windows.Storage.FileProperties.VideoProperties::get_Year()
    @_property
    def year(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Storage.FileProperties.VideoProperties::put_Year(System.UInt32)
    @year.setter
    def year(self, value: winrt.system.UInt32) -> None: ...
    # System.String Windows.Storage.FileProperties.VideoProperties::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.VideoProperties::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # System.String Windows.Storage.FileProperties.VideoProperties::get_Subtitle()
    @_property
    def subtitle(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.VideoProperties::put_Subtitle(System.String)
    @subtitle.setter
    def subtitle(self, value: str) -> None: ...
    # System.UInt32 Windows.Storage.FileProperties.VideoProperties::get_Rating()
    @_property
    def rating(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Storage.FileProperties.VideoProperties::put_Rating(System.UInt32)
    @rating.setter
    def rating(self, value: winrt.system.UInt32) -> None: ...
    # System.String Windows.Storage.FileProperties.VideoProperties::get_Publisher()
    @_property
    def publisher(self) -> str: ...
    # System.Void Windows.Storage.FileProperties.VideoProperties::put_Publisher(System.String)
    @publisher.setter
    def publisher(self, value: str) -> None: ...
    # System.UInt32 Windows.Storage.FileProperties.VideoProperties::get_Bitrate()
    @_property
    def bitrate(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.VideoProperties::get_Directors()
    @_property
    def directors(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.TimeSpan Windows.Storage.FileProperties.VideoProperties::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.UInt32 Windows.Storage.FileProperties.VideoProperties::get_Height()
    @_property
    def height(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.VideoProperties::get_Keywords()
    @_property
    def keywords(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Storage.FileProperties.VideoProperties::get_Latitude()
    @_property
    def latitude(self) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Storage.FileProperties.VideoProperties::get_Longitude()
    @_property
    def longitude(self) -> typing.Optional[winrt.system.Double]: ...
    # Windows.Storage.FileProperties.VideoOrientation Windows.Storage.FileProperties.VideoProperties::get_Orientation()
    @_property
    def orientation(self) -> VideoOrientation: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.VideoProperties::get_Producers()
    @_property
    def producers(self) -> typing.MutableSequence[str]: ...
    # System.UInt32 Windows.Storage.FileProperties.VideoProperties::get_Width()
    @_property
    def width(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.FileProperties.VideoProperties::get_Writers()
    @_property
    def writers(self) -> typing.MutableSequence[str]: ...

@typing.final
class _IStorageItemExtraProperties: ...

class IStorageItemExtraProperties(winrt._winrt.IInspectable):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.Object>> Windows.Storage.FileProperties.IStorageItemExtraProperties::RetrievePropertiesAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    @abstractmethod
    def retrieve_properties_async(self, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.IStorageItemExtraProperties::SavePropertiesAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.Object>>)
    @abstractmethod
    def save_properties_async(self, properties_to_save: typing.Union[typing.Mapping[str, winrt.system.Object], typing.Iterable[windows_foundation_collections.IKeyValuePair[str, winrt.system.Object]]], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.FileProperties.IStorageItemExtraProperties::SavePropertiesAsync()
    @abstractmethod
    def save_properties_async_overload_default(self) -> windows_foundation.IAsyncAction: ...

