# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.0.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 winui3.microsoft.ui.xaml as microsoft_ui_xaml

Self = typing.TypeVar('Self')

@typing.final
class Matrix3D:
    @_property
    def m11(self) -> winrt.system.Double: ...
    @_property
    def m12(self) -> winrt.system.Double: ...
    @_property
    def m13(self) -> winrt.system.Double: ...
    @_property
    def m14(self) -> winrt.system.Double: ...
    @_property
    def m21(self) -> winrt.system.Double: ...
    @_property
    def m22(self) -> winrt.system.Double: ...
    @_property
    def m23(self) -> winrt.system.Double: ...
    @_property
    def m24(self) -> winrt.system.Double: ...
    @_property
    def m31(self) -> winrt.system.Double: ...
    @_property
    def m32(self) -> winrt.system.Double: ...
    @_property
    def m33(self) -> winrt.system.Double: ...
    @_property
    def m34(self) -> winrt.system.Double: ...
    @_property
    def offset_x(self) -> winrt.system.Double: ...
    @_property
    def offset_y(self) -> winrt.system.Double: ...
    @_property
    def offset_z(self) -> winrt.system.Double: ...
    @_property
    def m44(self) -> winrt.system.Double: ...
    def __new__(cls, m11: winrt.system.Double = 0, m12: winrt.system.Double = 0, m13: winrt.system.Double = 0, m14: winrt.system.Double = 0, m21: winrt.system.Double = 0, m22: winrt.system.Double = 0, m23: winrt.system.Double = 0, m24: winrt.system.Double = 0, m31: winrt.system.Double = 0, m32: winrt.system.Double = 0, m33: winrt.system.Double = 0, m34: winrt.system.Double = 0, offset_x: winrt.system.Double = 0, offset_y: winrt.system.Double = 0, offset_z: winrt.system.Double = 0, m44: winrt.system.Double = 0) -> Matrix3D: ...
    def __replace__(self, /, **changes: typing.Any) -> Matrix3D: ...
    def unpack(self) -> typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double]: ...

@typing.final
class CompositeTransform3D_Static(Transform3D_Static):
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_CenterXProperty()
    @_property
    def center_x_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_CenterYProperty()
    @_property
    def center_y_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_CenterZProperty()
    @_property
    def center_z_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_RotationXProperty()
    @_property
    def rotation_x_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_RotationYProperty()
    @_property
    def rotation_y_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_RotationZProperty()
    @_property
    def rotation_z_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_ScaleXProperty()
    @_property
    def scale_x_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_ScaleYProperty()
    @_property
    def scale_y_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_ScaleZProperty()
    @_property
    def scale_z_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_TranslateXProperty()
    @_property
    def translate_x_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_TranslateYProperty()
    @_property
    def translate_y_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_TranslateZProperty()
    @_property
    def translate_z_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...

@typing.final
class CompositeTransform3D(Transform3D, metaclass=CompositeTransform3D_Static):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_TranslateZ()
    @_property
    def translate_z(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_TranslateZ(System.Double)
    @translate_z.setter
    def translate_z(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_TranslateY()
    @_property
    def translate_y(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_TranslateY(System.Double)
    @translate_y.setter
    def translate_y(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_TranslateX()
    @_property
    def translate_x(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_TranslateX(System.Double)
    @translate_x.setter
    def translate_x(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_ScaleZ()
    @_property
    def scale_z(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_ScaleZ(System.Double)
    @scale_z.setter
    def scale_z(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_ScaleY()
    @_property
    def scale_y(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_ScaleY(System.Double)
    @scale_y.setter
    def scale_y(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_ScaleX()
    @_property
    def scale_x(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_ScaleX(System.Double)
    @scale_x.setter
    def scale_x(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_RotationZ()
    @_property
    def rotation_z(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_RotationZ(System.Double)
    @rotation_z.setter
    def rotation_z(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_RotationY()
    @_property
    def rotation_y(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_RotationY(System.Double)
    @rotation_y.setter
    def rotation_y(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_RotationX()
    @_property
    def rotation_x(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_RotationX(System.Double)
    @rotation_x.setter
    def rotation_x(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_CenterZ()
    @_property
    def center_z(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_CenterZ(System.Double)
    @center_z.setter
    def center_z(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_CenterY()
    @_property
    def center_y(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_CenterY(System.Double)
    @center_y.setter
    def center_y(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::get_CenterX()
    @_property
    def center_x(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.CompositeTransform3D::put_CenterX(System.Double)
    @center_x.setter
    def center_x(self, value: winrt.system.Double) -> None: ...

@typing.final
class Matrix3DHelper_Static(winrt._winrt.IInspectable_Static):
    # Microsoft.UI.Xaml.Media.Media3D.Matrix3D Microsoft.UI.Xaml.Media.Media3D.Matrix3DHelper::FromElements(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)
    def from_elements(cls, m11: winrt.system.Double, m12: winrt.system.Double, m13: winrt.system.Double, m14: winrt.system.Double, m21: winrt.system.Double, m22: winrt.system.Double, m23: winrt.system.Double, m24: winrt.system.Double, m31: winrt.system.Double, m32: winrt.system.Double, m33: winrt.system.Double, m34: winrt.system.Double, offset_x: winrt.system.Double, offset_y: winrt.system.Double, offset_z: winrt.system.Double, m44: winrt.system.Double, /) -> Matrix3D: ...
    # System.Boolean Microsoft.UI.Xaml.Media.Media3D.Matrix3DHelper::GetHasInverse(Microsoft.UI.Xaml.Media.Media3D.Matrix3D)
    def get_has_inverse(cls, target: typing.Union[Matrix3D, typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double]], /) -> bool: ...
    # System.Boolean Microsoft.UI.Xaml.Media.Media3D.Matrix3DHelper::GetIsIdentity(Microsoft.UI.Xaml.Media.Media3D.Matrix3D)
    def get_is_identity(cls, target: typing.Union[Matrix3D, typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double]], /) -> bool: ...
    # Microsoft.UI.Xaml.Media.Media3D.Matrix3D Microsoft.UI.Xaml.Media.Media3D.Matrix3DHelper::Invert(Microsoft.UI.Xaml.Media.Media3D.Matrix3D)
    def invert(cls, target: typing.Union[Matrix3D, typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double]], /) -> Matrix3D: ...
    # Microsoft.UI.Xaml.Media.Media3D.Matrix3D Microsoft.UI.Xaml.Media.Media3D.Matrix3DHelper::Multiply(Microsoft.UI.Xaml.Media.Media3D.Matrix3D,Microsoft.UI.Xaml.Media.Media3D.Matrix3D)
    def multiply(cls, matrix1: typing.Union[Matrix3D, typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double]], matrix2: typing.Union[Matrix3D, typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double]], /) -> Matrix3D: ...
    # Microsoft.UI.Xaml.Media.Media3D.Matrix3D Microsoft.UI.Xaml.Media.Media3D.Matrix3DHelper::get_Identity()
    @_property
    def identity(cls) -> Matrix3D: ...

@typing.final
class Matrix3DHelper(winrt.system.Object, metaclass=Matrix3DHelper_Static):
    pass

@typing.final
class PerspectiveTransform3D_Static(Transform3D_Static):
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::get_DepthProperty()
    @_property
    def depth_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::get_OffsetXProperty()
    @_property
    def offset_x_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...
    # Microsoft.UI.Xaml.DependencyProperty Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::get_OffsetYProperty()
    @_property
    def offset_y_property(cls) -> microsoft_ui_xaml.DependencyProperty: ...

@typing.final
class PerspectiveTransform3D(Transform3D, metaclass=PerspectiveTransform3D_Static):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::get_OffsetY()
    @_property
    def offset_y(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::put_OffsetY(System.Double)
    @offset_y.setter
    def offset_y(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::get_OffsetX()
    @_property
    def offset_x(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::put_OffsetX(System.Double)
    @offset_x.setter
    def offset_x(self, value: winrt.system.Double) -> None: ...
    # System.Double Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::get_Depth()
    @_property
    def depth(self) -> winrt.system.Double: ...
    # System.Void Microsoft.UI.Xaml.Media.Media3D.PerspectiveTransform3D::put_Depth(System.Double)
    @depth.setter
    def depth(self, value: winrt.system.Double) -> None: ...

class Transform3D_Static(microsoft_ui_xaml.DependencyObject_Static):
    pass

class Transform3D(microsoft_ui_xaml.DependencyObject, metaclass=Transform3D_Static):
    pass

