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

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.background
import winrt.windows.foundation
import winrt.windows.graphics.imaging
import winrt.windows.storage.streams
import winrt.windows.ui.xaml

from winrt.windows.ui.xaml.media.imaging import BitmapCreateOptions, DecodePixelType, SvgImageSourceLoadStatus
from winrt.windows.ui.xaml.media.imaging import DownloadProgressEventHandler

Self = typing.TypeVar('Self')

@typing.final
class BitmapImage_Static(type):
    @_property
    def create_options_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def decode_pixel_height_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def decode_pixel_width_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def uri_source_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def decode_pixel_type_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def auto_play_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def is_animated_bitmap_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def is_playing_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...

@typing.final
class BitmapImage(winrt.system.Object, metaclass=BitmapImage_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BitmapImage: ...
    @typing.overload
    def __new__(cls: typing.Type[BitmapImage], uri_source: typing.Optional[winrt.windows.foundation.Uri]) -> BitmapImage:...
    @typing.overload
    def __new__(cls: typing.Type[BitmapImage]) -> BitmapImage:...
    def play(self) -> None: ...
    def stop(self) -> None: ...
    def add_download_progress(self, handler: typing.Optional[DownloadProgressEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_download_progress(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_image_failed(self, handler: typing.Optional[winrt.windows.ui.xaml.ExceptionRoutedEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_image_failed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_image_opened(self, handler: typing.Optional[winrt.windows.ui.xaml.RoutedEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_image_opened(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def uri_source(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @uri_source.setter
    def uri_source(self, value: typing.Optional[winrt.windows.foundation.Uri]) -> None: ...
    @_property
    def decode_pixel_width(self) -> winrt.system.Int32: ...
    @decode_pixel_width.setter
    def decode_pixel_width(self, value: winrt.system.Int32) -> None: ...
    @_property
    def decode_pixel_height(self) -> winrt.system.Int32: ...
    @decode_pixel_height.setter
    def decode_pixel_height(self, value: winrt.system.Int32) -> None: ...
    @_property
    def create_options(self) -> BitmapCreateOptions: ...
    @create_options.setter
    def create_options(self, value: BitmapCreateOptions) -> None: ...
    @_property
    def decode_pixel_type(self) -> DecodePixelType: ...
    @decode_pixel_type.setter
    def decode_pixel_type(self, value: DecodePixelType) -> None: ...
    @_property
    def auto_play(self) -> bool: ...
    @auto_play.setter
    def auto_play(self, value: bool) -> None: ...
    @_property
    def is_animated_bitmap(self) -> bool: ...
    @_property
    def is_playing(self) -> bool: ...

@typing.final
class BitmapSource_Static(type):
    @_property
    def pixel_height_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def pixel_width_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...

@typing.final
class BitmapSource(winrt.system.Object, metaclass=BitmapSource_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BitmapSource: ...
    def set_source(self, stream_source: typing.Optional[winrt.windows.storage.streams.IRandomAccessStream], /) -> None: ...
    def set_source_async(self, stream_source: typing.Optional[winrt.windows.storage.streams.IRandomAccessStream], /) -> winrt.windows.foundation.IAsyncAction: ...
    @_property
    def pixel_height(self) -> winrt.system.Int32: ...
    @_property
    def pixel_width(self) -> winrt.system.Int32: ...

@typing.final
class DownloadProgressEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DownloadProgressEventArgs: ...
    @_property
    def progress(self) -> winrt.system.Int32: ...
    @progress.setter
    def progress(self, value: winrt.system.Int32) -> None: ...

@typing.final
class RenderTargetBitmap_Static(type):
    @_property
    def pixel_height_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def pixel_width_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...

@typing.final
class RenderTargetBitmap(winrt.system.Object, metaclass=RenderTargetBitmap_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> RenderTargetBitmap: ...
    def __new__(cls: typing.Type[RenderTargetBitmap]) -> RenderTargetBitmap:...
    def get_pixels_async(self) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.storage.streams.IBuffer]: ...
    @typing.overload
    def render_async(self, element: typing.Optional[winrt.windows.ui.xaml.UIElement], /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def render_async(self, element: typing.Optional[winrt.windows.ui.xaml.UIElement], scaled_width: winrt.system.Int32, scaled_height: winrt.system.Int32, /) -> winrt.windows.foundation.IAsyncAction: ...
    @_property
    def pixel_height(self) -> winrt.system.Int32: ...
    @_property
    def pixel_width(self) -> winrt.system.Int32: ...

@typing.final
class SoftwareBitmapSource(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SoftwareBitmapSource: ...
    def __new__(cls: typing.Type[SoftwareBitmapSource]) -> SoftwareBitmapSource:...
    def close(self) -> None: ...
    def set_bitmap_async(self, software_bitmap: typing.Optional[winrt.windows.graphics.imaging.SoftwareBitmap], /) -> winrt.windows.foundation.IAsyncAction: ...

@typing.final
class SurfaceImageSource(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SurfaceImageSource: ...
    @typing.overload
    def __new__(cls: typing.Type[SurfaceImageSource], pixel_width: winrt.system.Int32, pixel_height: winrt.system.Int32) -> SurfaceImageSource:...
    @typing.overload
    def __new__(cls: typing.Type[SurfaceImageSource], pixel_width: winrt.system.Int32, pixel_height: winrt.system.Int32, is_opaque: bool) -> SurfaceImageSource:...

@typing.final
class SvgImageSource_Static(type):
    @_property
    def rasterize_pixel_height_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def rasterize_pixel_width_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...
    @_property
    def uri_source_property(cls) -> typing.Optional[winrt.windows.ui.xaml.DependencyProperty]: ...

@typing.final
class SvgImageSource(winrt.system.Object, metaclass=SvgImageSource_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SvgImageSource: ...
    @typing.overload
    def __new__(cls: typing.Type[SvgImageSource]) -> SvgImageSource:...
    @typing.overload
    def __new__(cls: typing.Type[SvgImageSource], uri_source: typing.Optional[winrt.windows.foundation.Uri]) -> SvgImageSource:...
    def set_source_async(self, stream_source: typing.Optional[winrt.windows.storage.streams.IRandomAccessStream], /) -> winrt.windows.foundation.IAsyncOperation[SvgImageSourceLoadStatus]: ...
    def add_open_failed(self, handler: winrt.windows.foundation.TypedEventHandler[SvgImageSource, SvgImageSourceFailedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_open_failed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_opened(self, handler: winrt.windows.foundation.TypedEventHandler[SvgImageSource, SvgImageSourceOpenedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_opened(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def uri_source(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @uri_source.setter
    def uri_source(self, value: typing.Optional[winrt.windows.foundation.Uri]) -> None: ...
    @_property
    def rasterize_pixel_width(self) -> winrt.system.Double: ...
    @rasterize_pixel_width.setter
    def rasterize_pixel_width(self, value: winrt.system.Double) -> None: ...
    @_property
    def rasterize_pixel_height(self) -> winrt.system.Double: ...
    @rasterize_pixel_height.setter
    def rasterize_pixel_height(self, value: winrt.system.Double) -> None: ...

@typing.final
class SvgImageSourceFailedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SvgImageSourceFailedEventArgs: ...
    @_property
    def status(self) -> SvgImageSourceLoadStatus: ...

@typing.final
class SvgImageSourceOpenedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SvgImageSourceOpenedEventArgs: ...

@typing.final
class VirtualSurfaceImageSource(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VirtualSurfaceImageSource: ...
    @typing.overload
    def __new__(cls: typing.Type[VirtualSurfaceImageSource], pixel_width: winrt.system.Int32, pixel_height: winrt.system.Int32) -> VirtualSurfaceImageSource:...
    @typing.overload
    def __new__(cls: typing.Type[VirtualSurfaceImageSource], pixel_width: winrt.system.Int32, pixel_height: winrt.system.Int32, is_opaque: bool) -> VirtualSurfaceImageSource:...

@typing.final
class WriteableBitmap(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WriteableBitmap: ...
    def __new__(cls: typing.Type[WriteableBitmap], pixel_width: winrt.system.Int32, pixel_height: winrt.system.Int32) -> WriteableBitmap:...
    def invalidate(self) -> None: ...
    @_property
    def pixel_buffer(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...

@typing.final
class XamlRenderingBackgroundTask(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> XamlRenderingBackgroundTask: ...
    def on_run(self, task_instance: typing.Optional[winrt.windows.applicationmodel.background.IBackgroundTaskInstance], /) -> None: ...

