# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.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 as windows_foundation
import winrt.windows.graphics.imaging as windows_graphics_imaging
import winrt.windows.storage.streams as windows_storage_streams

from winui3.microsoft.graphics.imaging import ImageBufferPixelFormat

Self = typing.TypeVar('Self')

@typing.final
class ImageBuffer_Static(winrt._winrt.IInspectable_Static):
    # Microsoft.Graphics.Imaging.ImageBuffer Microsoft.Graphics.Imaging.ImageBuffer::CreateForBuffer(Windows.Storage.Streams.IBuffer,Microsoft.Graphics.Imaging.ImageBufferPixelFormat,System.Int32,System.Int32,System.Int32)
    def create_for_buffer(cls, buffer: winrt.system.Buffer, pixel_format: ImageBufferPixelFormat, width: winrt.system.Int32, height: winrt.system.Int32, row_stride: winrt.system.Int32, /) -> ImageBuffer: ...
    # Microsoft.Graphics.Imaging.ImageBuffer Microsoft.Graphics.Imaging.ImageBuffer::CreateForSoftwareBitmap(Windows.Graphics.Imaging.SoftwareBitmap)
    def create_for_software_bitmap(cls, software_bitmap: windows_graphics_imaging.SoftwareBitmap, /) -> ImageBuffer: ...

@typing.final
class ImageBuffer(winrt.system.Object, windows_foundation.IClosable, metaclass=ImageBuffer_Static):
    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 Microsoft.Graphics.Imaging.ImageBuffer::Close()
    def close(self) -> None: ...
    # System.Void Microsoft.Graphics.Imaging.ImageBuffer::CopyToByteArray(System.Byte[])
    def copy_to_byte_array(self, values: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.WriteableBuffer], /) -> None: ...
    # Windows.Graphics.Imaging.SoftwareBitmap Microsoft.Graphics.Imaging.ImageBuffer::CopyToSoftwareBitmap()
    def copy_to_software_bitmap(self) -> windows_graphics_imaging.SoftwareBitmap: ...
    # Windows.Storage.Streams.IBuffer Microsoft.Graphics.Imaging.ImageBuffer::get_Buffer()
    @_property
    def buffer(self) -> winrt.system.Buffer: ...
    # Microsoft.Graphics.Imaging.ImageBufferPixelFormat Microsoft.Graphics.Imaging.ImageBuffer::get_PixelFormat()
    @_property
    def pixel_format(self) -> ImageBufferPixelFormat: ...
    # System.Int32 Microsoft.Graphics.Imaging.ImageBuffer::get_PixelHeight()
    @_property
    def pixel_height(self) -> winrt.system.Int32: ...
    # System.Int32 Microsoft.Graphics.Imaging.ImageBuffer::get_PixelWidth()
    @_property
    def pixel_width(self) -> winrt.system.Int32: ...
    # System.Int32 Microsoft.Graphics.Imaging.ImageBuffer::get_RowStride()
    @_property
    def row_stride(self) -> winrt.system.Int32: ...

