# 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.foundation.collections as windows_foundation_collections
import winrt.windows.foundation.numerics as windows_foundation_numerics
import winrt.windows.storage.streams as windows_storage_streams
import winrt.windows.ui as windows_ui

from winrt.windows.graphics.printing3d import Print3DTaskCompletion, Print3DTaskDetail, Printing3DBufferFormat, Printing3DMeshVerificationMode, Printing3DModelUnit, Printing3DObjectType, Printing3DPackageCompression, Printing3DTextureEdgeBehavior
from winrt.windows.graphics.printing3d import Print3DTaskSourceRequestedHandler

Self = typing.TypeVar('Self')

@typing.final
class Printing3DBufferDescription:
    @_property
    def format(self) -> Printing3DBufferFormat: ...
    @_property
    def stride(self) -> winrt.system.UInt32: ...
    def __new__(cls, format: Printing3DBufferFormat = Printing3DBufferFormat(0), stride: winrt.system.UInt32 = 0) -> Printing3DBufferDescription: ...
    def __replace__(self, /, **changes: typing.Any) -> Printing3DBufferDescription: ...
    def unpack(self) -> typing.Tuple[Printing3DBufferFormat, winrt.system.UInt32]: ...

@typing.final
class Print3DManager_Static(winrt._winrt.IInspectable_Static):
    # Windows.Graphics.Printing3D.Print3DManager Windows.Graphics.Printing3D.Print3DManager::GetForCurrentView()
    def get_for_current_view(cls) -> Print3DManager: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Graphics.Printing3D.Print3DManager::ShowPrintUIAsync()
    def show_print_ui_async(cls) -> windows_foundation.IAsyncOperation[bool]: ...

@typing.final
class Print3DManager(winrt.system.Object, metaclass=Print3DManager_Static):
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing3D.Print3DManager::add_TaskRequested(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing3D.Print3DManager,Windows.Graphics.Printing3D.Print3DTaskRequestedEventArgs>)
    def add_task_requested(self, event_handler: windows_foundation.TypedEventHandler[Print3DManager, Print3DTaskRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing3D.Print3DManager::remove_TaskRequested(Windows.Foundation.EventRegistrationToken)
    def remove_task_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class Print3DTask(winrt.system.Object):
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing3D.Print3DTask::add_Completed(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing3D.Print3DTask,Windows.Graphics.Printing3D.Print3DTaskCompletedEventArgs>)
    def add_completed(self, event_handler: windows_foundation.TypedEventHandler[Print3DTask, Print3DTaskCompletedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing3D.Print3DTask::remove_Completed(Windows.Foundation.EventRegistrationToken)
    def remove_completed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing3D.Print3DTask::add_SourceChanged(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing3D.Print3DTask,Windows.Graphics.Printing3D.Print3DTaskSourceChangedEventArgs>)
    def add_source_changed(self, event_handler: windows_foundation.TypedEventHandler[Print3DTask, Print3DTaskSourceChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing3D.Print3DTask::remove_SourceChanged(Windows.Foundation.EventRegistrationToken)
    def remove_source_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Graphics.Printing3D.Print3DTask::add_Submitting(Windows.Foundation.TypedEventHandler`2<Windows.Graphics.Printing3D.Print3DTask,System.Object>)
    def add_submitting(self, event_handler: windows_foundation.TypedEventHandler[Print3DTask, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Graphics.Printing3D.Print3DTask::remove_Submitting(Windows.Foundation.EventRegistrationToken)
    def remove_submitting(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Graphics.Printing3D.Printing3D3MFPackage Windows.Graphics.Printing3D.Print3DTask::get_Source()
    @_property
    def source(self) -> Printing3D3MFPackage: ...

@typing.final
class Print3DTaskCompletedEventArgs(winrt.system.Object):
    # Windows.Graphics.Printing3D.Print3DTaskCompletion Windows.Graphics.Printing3D.Print3DTaskCompletedEventArgs::get_Completion()
    @_property
    def completion(self) -> Print3DTaskCompletion: ...
    # Windows.Graphics.Printing3D.Print3DTaskDetail Windows.Graphics.Printing3D.Print3DTaskCompletedEventArgs::get_ExtendedStatus()
    @_property
    def extended_status(self) -> Print3DTaskDetail: ...

@typing.final
class Print3DTaskRequest(winrt.system.Object):
    # Windows.Graphics.Printing3D.Print3DTask Windows.Graphics.Printing3D.Print3DTaskRequest::CreateTask(System.String,System.String,Windows.Graphics.Printing3D.Print3DTaskSourceRequestedHandler)
    def create_task(self, title: str, printer_id: str, handler: Print3DTaskSourceRequestedHandler, /) -> Print3DTask: ...

@typing.final
class Print3DTaskRequestedEventArgs(winrt.system.Object):
    # Windows.Graphics.Printing3D.Print3DTaskRequest Windows.Graphics.Printing3D.Print3DTaskRequestedEventArgs::get_Request()
    @_property
    def request(self) -> Print3DTaskRequest: ...

@typing.final
class Print3DTaskSourceChangedEventArgs(winrt.system.Object):
    # Windows.Graphics.Printing3D.Printing3D3MFPackage Windows.Graphics.Printing3D.Print3DTaskSourceChangedEventArgs::get_Source()
    @_property
    def source(self) -> Printing3D3MFPackage: ...

@typing.final
class Print3DTaskSourceRequestedArgs(winrt.system.Object):
    # System.Void Windows.Graphics.Printing3D.Print3DTaskSourceRequestedArgs::SetSource(Windows.Graphics.Printing3D.Printing3D3MFPackage)
    def set_source(self, source: Printing3D3MFPackage, /) -> None: ...

@typing.final
class Printing3D3MFPackage_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Graphics.Printing3D.Printing3D3MFPackage> Windows.Graphics.Printing3D.Printing3D3MFPackage::LoadAsync(Windows.Storage.Streams.IRandomAccessStream)
    def load_async(cls, value: windows_storage_streams.IRandomAccessStream, /) -> windows_foundation.IAsyncOperation[Printing3D3MFPackage]: ...

@typing.final
class Printing3D3MFPackage(winrt.system.Object, metaclass=Printing3D3MFPackage_Static):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Graphics.Printing3D.Printing3DModel> Windows.Graphics.Printing3D.Printing3D3MFPackage::LoadModelFromPackageAsync(Windows.Storage.Streams.IRandomAccessStream)
    def load_model_from_package_async(self, value: windows_storage_streams.IRandomAccessStream, /) -> windows_foundation.IAsyncOperation[Printing3DModel]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IRandomAccessStream> Windows.Graphics.Printing3D.Printing3D3MFPackage::SaveAsync()
    def save_async(self) -> windows_foundation.IAsyncOperation[windows_storage_streams.IRandomAccessStream]: ...
    # Windows.Foundation.IAsyncAction Windows.Graphics.Printing3D.Printing3D3MFPackage::SaveModelToPackageAsync(Windows.Graphics.Printing3D.Printing3DModel)
    def save_model_to_package_async(self, value: Printing3DModel, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Graphics.Printing3D.Printing3DTextureResource Windows.Graphics.Printing3D.Printing3D3MFPackage::get_Thumbnail()
    @_property
    def thumbnail(self) -> Printing3DTextureResource: ...
    # System.Void Windows.Graphics.Printing3D.Printing3D3MFPackage::put_Thumbnail(Windows.Graphics.Printing3D.Printing3DTextureResource)
    @thumbnail.setter
    def thumbnail(self, value: Printing3DTextureResource) -> None: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Graphics.Printing3D.Printing3D3MFPackage::get_PrintTicket()
    @_property
    def print_ticket(self) -> windows_storage_streams.IRandomAccessStream: ...
    # System.Void Windows.Graphics.Printing3D.Printing3D3MFPackage::put_PrintTicket(Windows.Storage.Streams.IRandomAccessStream)
    @print_ticket.setter
    def print_ticket(self, value: windows_storage_streams.IRandomAccessStream) -> None: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Graphics.Printing3D.Printing3D3MFPackage::get_ModelPart()
    @_property
    def model_part(self) -> windows_storage_streams.IRandomAccessStream: ...
    # System.Void Windows.Graphics.Printing3D.Printing3D3MFPackage::put_ModelPart(Windows.Storage.Streams.IRandomAccessStream)
    @model_part.setter
    def model_part(self, value: windows_storage_streams.IRandomAccessStream) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DTextureResource> Windows.Graphics.Printing3D.Printing3D3MFPackage::get_Textures()
    @_property
    def textures(self) -> typing.MutableSequence[Printing3DTextureResource]: ...
    # Windows.Graphics.Printing3D.Printing3DPackageCompression Windows.Graphics.Printing3D.Printing3D3MFPackage::get_Compression()
    @_property
    def compression(self) -> Printing3DPackageCompression: ...
    # System.Void Windows.Graphics.Printing3D.Printing3D3MFPackage::put_Compression(Windows.Graphics.Printing3D.Printing3DPackageCompression)
    @compression.setter
    def compression(self, value: Printing3DPackageCompression) -> None: ...

@typing.final
class Printing3DBaseMaterial_Static(winrt._winrt.IInspectable_Static):
    # System.String Windows.Graphics.Printing3D.Printing3DBaseMaterial::get_Abs()
    @_property
    def abs(cls) -> str: ...
    # System.String Windows.Graphics.Printing3D.Printing3DBaseMaterial::get_Pla()
    @_property
    def pla(cls) -> str: ...

@typing.final
class Printing3DBaseMaterial(winrt.system.Object, metaclass=Printing3DBaseMaterial_Static):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Graphics.Printing3D.Printing3DBaseMaterial::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DBaseMaterial::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DColorMaterial Windows.Graphics.Printing3D.Printing3DBaseMaterial::get_Color()
    @_property
    def color(self) -> Printing3DColorMaterial: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DBaseMaterial::put_Color(Windows.Graphics.Printing3D.Printing3DColorMaterial)
    @color.setter
    def color(self, value: Printing3DColorMaterial) -> None: ...

@typing.final
class Printing3DBaseMaterialGroup(winrt.system.Object):
    def __new__(cls: typing.Type[Self], material_group_id: winrt.system.UInt32) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DBaseMaterial> Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup::get_Bases()
    @_property
    def bases(self) -> typing.MutableSequence[Printing3DBaseMaterial]: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup::get_MaterialGroupId()
    @_property
    def material_group_id(self) -> winrt.system.UInt32: ...

@typing.final
class Printing3DColorMaterial(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DColorMaterial::get_Value()
    @_property
    def value(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DColorMaterial::put_Value(System.UInt32)
    @value.setter
    def value(self, value: winrt.system.UInt32) -> None: ...
    # Windows.UI.Color Windows.Graphics.Printing3D.Printing3DColorMaterial::get_Color()
    @_property
    def color(self) -> windows_ui.Color: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DColorMaterial::put_Color(Windows.UI.Color)
    @color.setter
    def color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...

@typing.final
class Printing3DColorMaterialGroup(winrt.system.Object):
    def __new__(cls: typing.Type[Self], material_group_id: winrt.system.UInt32) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DColorMaterial> Windows.Graphics.Printing3D.Printing3DColorMaterialGroup::get_Colors()
    @_property
    def colors(self) -> typing.MutableSequence[Printing3DColorMaterial]: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DColorMaterialGroup::get_MaterialGroupId()
    @_property
    def material_group_id(self) -> winrt.system.UInt32: ...

@typing.final
class Printing3DComponent(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Graphics.Printing3D.Printing3DObjectType Windows.Graphics.Printing3D.Printing3DComponent::get_Type()
    @_property
    def type(self) -> Printing3DObjectType: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DComponent::put_Type(Windows.Graphics.Printing3D.Printing3DObjectType)
    @type.setter
    def type(self, value: Printing3DObjectType) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DTextureResource Windows.Graphics.Printing3D.Printing3DComponent::get_Thumbnail()
    @_property
    def thumbnail(self) -> Printing3DTextureResource: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DComponent::put_Thumbnail(Windows.Graphics.Printing3D.Printing3DTextureResource)
    @thumbnail.setter
    def thumbnail(self, value: Printing3DTextureResource) -> None: ...
    # System.String Windows.Graphics.Printing3D.Printing3DComponent::get_PartNumber()
    @_property
    def part_number(self) -> str: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DComponent::put_PartNumber(System.String)
    @part_number.setter
    def part_number(self, value: str) -> None: ...
    # System.String Windows.Graphics.Printing3D.Printing3DComponent::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DComponent::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DMesh Windows.Graphics.Printing3D.Printing3DComponent::get_Mesh()
    @_property
    def mesh(self) -> Printing3DMesh: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DComponent::put_Mesh(Windows.Graphics.Printing3D.Printing3DMesh)
    @mesh.setter
    def mesh(self, value: Printing3DMesh) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DComponentWithMatrix> Windows.Graphics.Printing3D.Printing3DComponent::get_Components()
    @_property
    def components(self) -> typing.MutableSequence[Printing3DComponentWithMatrix]: ...

@typing.final
class Printing3DComponentWithMatrix(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Numerics.Matrix4x4 Windows.Graphics.Printing3D.Printing3DComponentWithMatrix::get_Matrix()
    @_property
    def matrix(self) -> windows_foundation_numerics.Matrix4x4: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DComponentWithMatrix::put_Matrix(Windows.Foundation.Numerics.Matrix4x4)
    @matrix.setter
    def matrix(self, value: typing.Union[windows_foundation_numerics.Matrix4x4, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]]) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DComponent Windows.Graphics.Printing3D.Printing3DComponentWithMatrix::get_Component()
    @_property
    def component(self) -> Printing3DComponent: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DComponentWithMatrix::put_Component(Windows.Graphics.Printing3D.Printing3DComponent)
    @component.setter
    def component(self, value: Printing3DComponent) -> None: ...

@typing.final
class Printing3DCompositeMaterial(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<System.Double> Windows.Graphics.Printing3D.Printing3DCompositeMaterial::get_Values()
    @_property
    def values(self) -> typing.MutableSequence[winrt.system.Double]: ...

@typing.final
class Printing3DCompositeMaterialGroup(winrt.system.Object):
    def __new__(cls: typing.Type[Self], material_group_id: winrt.system.UInt32) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DCompositeMaterial> Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup::get_Composites()
    @_property
    def composites(self) -> typing.MutableSequence[Printing3DCompositeMaterial]: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup::get_MaterialGroupId()
    @_property
    def material_group_id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.UInt32> Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup::get_MaterialIndices()
    @_property
    def material_indices(self) -> typing.MutableSequence[winrt.system.UInt32]: ...
    # Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup::get_BaseMaterialGroup()
    @_property
    def base_material_group(self) -> Printing3DBaseMaterialGroup: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup::put_BaseMaterialGroup(Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup)
    @base_material_group.setter
    def base_material_group(self, value: Printing3DBaseMaterialGroup) -> None: ...

@typing.final
class Printing3DFaceReductionOptions(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DFaceReductionOptions::get_TargetTriangleCount()
    @_property
    def target_triangle_count(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DFaceReductionOptions::put_TargetTriangleCount(System.UInt32)
    @target_triangle_count.setter
    def target_triangle_count(self, value: winrt.system.UInt32) -> None: ...
    # System.Double Windows.Graphics.Printing3D.Printing3DFaceReductionOptions::get_MaxReductionArea()
    @_property
    def max_reduction_area(self) -> winrt.system.Double: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DFaceReductionOptions::put_MaxReductionArea(System.Double)
    @max_reduction_area.setter
    def max_reduction_area(self, value: winrt.system.Double) -> None: ...
    # System.Double Windows.Graphics.Printing3D.Printing3DFaceReductionOptions::get_MaxEdgeLength()
    @_property
    def max_edge_length(self) -> winrt.system.Double: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DFaceReductionOptions::put_MaxEdgeLength(System.Double)
    @max_edge_length.setter
    def max_edge_length(self, value: winrt.system.Double) -> None: ...

@typing.final
class Printing3DMaterial(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup> Windows.Graphics.Printing3D.Printing3DMaterial::get_BaseGroups()
    @_property
    def base_groups(self) -> typing.MutableSequence[Printing3DBaseMaterialGroup]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DColorMaterialGroup> Windows.Graphics.Printing3D.Printing3DMaterial::get_ColorGroups()
    @_property
    def color_groups(self) -> typing.MutableSequence[Printing3DColorMaterialGroup]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup> Windows.Graphics.Printing3D.Printing3DMaterial::get_CompositeGroups()
    @_property
    def composite_groups(self) -> typing.MutableSequence[Printing3DCompositeMaterialGroup]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup> Windows.Graphics.Printing3D.Printing3DMaterial::get_MultiplePropertyGroups()
    @_property
    def multiple_property_groups(self) -> typing.MutableSequence[Printing3DMultiplePropertyMaterialGroup]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup> Windows.Graphics.Printing3D.Printing3DMaterial::get_Texture2CoordGroups()
    @_property
    def texture2_coord_groups(self) -> typing.MutableSequence[Printing3DTexture2CoordMaterialGroup]: ...

@typing.final
class Printing3DMesh(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::CreateTriangleIndices(System.UInt32)
    def create_triangle_indices(self, value: winrt.system.UInt32, /) -> None: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::CreateTriangleMaterialIndices(System.UInt32)
    def create_triangle_material_indices(self, value: winrt.system.UInt32, /) -> None: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::CreateVertexNormals(System.UInt32)
    def create_vertex_normals(self, value: winrt.system.UInt32, /) -> None: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::CreateVertexPositions(System.UInt32)
    def create_vertex_positions(self, value: winrt.system.UInt32, /) -> None: ...
    # Windows.Storage.Streams.IBuffer Windows.Graphics.Printing3D.Printing3DMesh::GetTriangleIndices()
    def get_triangle_indices(self) -> winrt.system.Buffer: ...
    # Windows.Storage.Streams.IBuffer Windows.Graphics.Printing3D.Printing3DMesh::GetTriangleMaterialIndices()
    def get_triangle_material_indices(self) -> winrt.system.Buffer: ...
    # Windows.Storage.Streams.IBuffer Windows.Graphics.Printing3D.Printing3DMesh::GetVertexNormals()
    def get_vertex_normals(self) -> winrt.system.Buffer: ...
    # Windows.Storage.Streams.IBuffer Windows.Graphics.Printing3D.Printing3DMesh::GetVertexPositions()
    def get_vertex_positions(self) -> winrt.system.Buffer: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Graphics.Printing3D.Printing3DMeshVerificationResult> Windows.Graphics.Printing3D.Printing3DMesh::VerifyAsync(Windows.Graphics.Printing3D.Printing3DMeshVerificationMode)
    def verify_async(self, value: Printing3DMeshVerificationMode, /) -> windows_foundation.IAsyncOperation[Printing3DMeshVerificationResult]: ...
    # Windows.Graphics.Printing3D.Printing3DBufferDescription Windows.Graphics.Printing3D.Printing3DMesh::get_VertexPositionsDescription()
    @_property
    def vertex_positions_description(self) -> Printing3DBufferDescription: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::put_VertexPositionsDescription(Windows.Graphics.Printing3D.Printing3DBufferDescription)
    @vertex_positions_description.setter
    def vertex_positions_description(self, value: typing.Union[Printing3DBufferDescription, typing.Tuple[Printing3DBufferFormat, winrt.system.UInt32]]) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DBufferDescription Windows.Graphics.Printing3D.Printing3DMesh::get_VertexNormalsDescription()
    @_property
    def vertex_normals_description(self) -> Printing3DBufferDescription: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::put_VertexNormalsDescription(Windows.Graphics.Printing3D.Printing3DBufferDescription)
    @vertex_normals_description.setter
    def vertex_normals_description(self, value: typing.Union[Printing3DBufferDescription, typing.Tuple[Printing3DBufferFormat, winrt.system.UInt32]]) -> None: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DMesh::get_VertexCount()
    @_property
    def vertex_count(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::put_VertexCount(System.UInt32)
    @vertex_count.setter
    def vertex_count(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DBufferDescription Windows.Graphics.Printing3D.Printing3DMesh::get_TriangleMaterialIndicesDescription()
    @_property
    def triangle_material_indices_description(self) -> Printing3DBufferDescription: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::put_TriangleMaterialIndicesDescription(Windows.Graphics.Printing3D.Printing3DBufferDescription)
    @triangle_material_indices_description.setter
    def triangle_material_indices_description(self, value: typing.Union[Printing3DBufferDescription, typing.Tuple[Printing3DBufferFormat, winrt.system.UInt32]]) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DBufferDescription Windows.Graphics.Printing3D.Printing3DMesh::get_TriangleIndicesDescription()
    @_property
    def triangle_indices_description(self) -> Printing3DBufferDescription: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::put_TriangleIndicesDescription(Windows.Graphics.Printing3D.Printing3DBufferDescription)
    @triangle_indices_description.setter
    def triangle_indices_description(self, value: typing.Union[Printing3DBufferDescription, typing.Tuple[Printing3DBufferFormat, winrt.system.UInt32]]) -> None: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DMesh::get_IndexCount()
    @_property
    def index_count(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DMesh::put_IndexCount(System.UInt32)
    @index_count.setter
    def index_count(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Foundation.Collections.IPropertySet Windows.Graphics.Printing3D.Printing3DMesh::get_BufferDescriptionSet()
    @_property
    def buffer_description_set(self) -> windows_foundation_collections.IPropertySet: ...
    # Windows.Foundation.Collections.IPropertySet Windows.Graphics.Printing3D.Printing3DMesh::get_BufferSet()
    @_property
    def buffer_set(self) -> windows_foundation_collections.IPropertySet: ...

@typing.final
class Printing3DMeshVerificationResult(winrt.system.Object):
    # System.Boolean Windows.Graphics.Printing3D.Printing3DMeshVerificationResult::get_IsValid()
    @_property
    def is_valid(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<System.UInt32> Windows.Graphics.Printing3D.Printing3DMeshVerificationResult::get_NonmanifoldTriangles()
    @_property
    def nonmanifold_triangles(self) -> typing.Sequence[winrt.system.UInt32]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.UInt32> Windows.Graphics.Printing3D.Printing3DMeshVerificationResult::get_ReversedNormalTriangles()
    @_property
    def reversed_normal_triangles(self) -> typing.Sequence[winrt.system.UInt32]: ...

@typing.final
class Printing3DModel(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Graphics.Printing3D.Printing3DModel Windows.Graphics.Printing3D.Printing3DModel::Clone()
    def clone(self) -> Printing3DModel: ...
    # Windows.Foundation.IAsyncAction Windows.Graphics.Printing3D.Printing3DModel::RepairAsync()
    def repair_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<System.Boolean,System.Double> Windows.Graphics.Printing3D.Printing3DModel::RepairWithProgressAsync()
    def repair_with_progress_async(self) -> windows_foundation.IAsyncOperationWithProgress[bool, winrt.system.Double]: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Graphics.Printing3D.Printing3DModel::TryPartialRepairAsync()
    def try_partial_repair_async(self) -> windows_foundation.IAsyncOperation[bool]: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Graphics.Printing3D.Printing3DModel::TryPartialRepairAsync(Windows.Foundation.TimeSpan)
    def try_partial_repair_with_time_async(self, max_wait_time: datetime.timedelta, /) -> windows_foundation.IAsyncOperation[bool]: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<System.Boolean,System.Double> Windows.Graphics.Printing3D.Printing3DModel::TryReduceFacesAsync()
    def try_reduce_faces_async(self) -> windows_foundation.IAsyncOperationWithProgress[bool, winrt.system.Double]: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<System.Boolean,System.Double> Windows.Graphics.Printing3D.Printing3DModel::TryReduceFacesAsync(Windows.Graphics.Printing3D.Printing3DFaceReductionOptions,Windows.Foundation.TimeSpan)
    def try_reduce_faces_with_options_and_time_async(self, printing_3d_face_reduction_options: Printing3DFaceReductionOptions, max_wait: datetime.timedelta, /) -> windows_foundation.IAsyncOperationWithProgress[bool, winrt.system.Double]: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<System.Boolean,System.Double> Windows.Graphics.Printing3D.Printing3DModel::TryReduceFacesAsync(Windows.Graphics.Printing3D.Printing3DFaceReductionOptions)
    def try_reduce_faces_with_options_async(self, printing_3d_face_reduction_options: Printing3DFaceReductionOptions, /) -> windows_foundation.IAsyncOperationWithProgress[bool, winrt.system.Double]: ...
    # System.String Windows.Graphics.Printing3D.Printing3DModel::get_Version()
    @_property
    def version(self) -> str: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DModel::put_Version(System.String)
    @version.setter
    def version(self, value: str) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DModelUnit Windows.Graphics.Printing3D.Printing3DModel::get_Unit()
    @_property
    def unit(self) -> Printing3DModelUnit: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DModel::put_Unit(Windows.Graphics.Printing3D.Printing3DModelUnit)
    @unit.setter
    def unit(self, value: Printing3DModelUnit) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DMaterial Windows.Graphics.Printing3D.Printing3DModel::get_Material()
    @_property
    def material(self) -> Printing3DMaterial: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DModel::put_Material(Windows.Graphics.Printing3D.Printing3DMaterial)
    @material.setter
    def material(self, value: Printing3DMaterial) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DComponent Windows.Graphics.Printing3D.Printing3DModel::get_Build()
    @_property
    def build(self) -> Printing3DComponent: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DModel::put_Build(Windows.Graphics.Printing3D.Printing3DComponent)
    @build.setter
    def build(self, value: Printing3DComponent) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DComponent> Windows.Graphics.Printing3D.Printing3DModel::get_Components()
    @_property
    def components(self) -> typing.MutableSequence[Printing3DComponent]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DMesh> Windows.Graphics.Printing3D.Printing3DModel::get_Meshes()
    @_property
    def meshes(self) -> typing.MutableSequence[Printing3DMesh]: ...
    # Windows.Foundation.Collections.IMap`2<System.String,System.String> Windows.Graphics.Printing3D.Printing3DModel::get_Metadata()
    @_property
    def metadata(self) -> typing.MutableMapping[str, str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Graphics.Printing3D.Printing3DModel::get_RequiredExtensions()
    @_property
    def required_extensions(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DModelTexture> Windows.Graphics.Printing3D.Printing3DModel::get_Textures()
    @_property
    def textures(self) -> typing.MutableSequence[Printing3DModelTexture]: ...

@typing.final
class Printing3DModelTexture(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior Windows.Graphics.Printing3D.Printing3DModelTexture::get_TileStyleV()
    @_property
    def tile_style_v(self) -> Printing3DTextureEdgeBehavior: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DModelTexture::put_TileStyleV(Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior)
    @tile_style_v.setter
    def tile_style_v(self, value: Printing3DTextureEdgeBehavior) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior Windows.Graphics.Printing3D.Printing3DModelTexture::get_TileStyleU()
    @_property
    def tile_style_u(self) -> Printing3DTextureEdgeBehavior: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DModelTexture::put_TileStyleU(Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior)
    @tile_style_u.setter
    def tile_style_u(self, value: Printing3DTextureEdgeBehavior) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DTextureResource Windows.Graphics.Printing3D.Printing3DModelTexture::get_TextureResource()
    @_property
    def texture_resource(self) -> Printing3DTextureResource: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DModelTexture::put_TextureResource(Windows.Graphics.Printing3D.Printing3DTextureResource)
    @texture_resource.setter
    def texture_resource(self, value: Printing3DTextureResource) -> None: ...

@typing.final
class Printing3DMultiplePropertyMaterial(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<System.UInt32> Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial::get_MaterialIndices()
    @_property
    def material_indices(self) -> typing.MutableSequence[winrt.system.UInt32]: ...

@typing.final
class Printing3DMultiplePropertyMaterialGroup(winrt.system.Object):
    def __new__(cls: typing.Type[Self], material_group_id: winrt.system.UInt32) -> Self: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup::get_MaterialGroupId()
    @_property
    def material_group_id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<System.UInt32> Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup::get_MaterialGroupIndices()
    @_property
    def material_group_indices(self) -> typing.MutableSequence[winrt.system.UInt32]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial> Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup::get_MultipleProperties()
    @_property
    def multiple_properties(self) -> typing.MutableSequence[Printing3DMultiplePropertyMaterial]: ...

@typing.final
class Printing3DTexture2CoordMaterial(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Double Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial::get_V()
    @_property
    def v(self) -> winrt.system.Double: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial::put_V(System.Double)
    @v.setter
    def v(self, value: winrt.system.Double) -> None: ...
    # System.Double Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial::get_U()
    @_property
    def u(self) -> winrt.system.Double: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial::put_U(System.Double)
    @u.setter
    def u(self, value: winrt.system.Double) -> None: ...
    # Windows.Graphics.Printing3D.Printing3DModelTexture Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial::get_Texture()
    @_property
    def texture(self) -> Printing3DModelTexture: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial::put_Texture(Windows.Graphics.Printing3D.Printing3DModelTexture)
    @texture.setter
    def texture(self, value: Printing3DModelTexture) -> None: ...

@typing.final
class Printing3DTexture2CoordMaterialGroup(winrt.system.Object):
    def __new__(cls: typing.Type[Self], material_group_id: winrt.system.UInt32) -> Self: ...
    # System.UInt32 Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup::get_MaterialGroupId()
    @_property
    def material_group_id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial> Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup::get_Texture2Coords()
    @_property
    def texture2_coords(self) -> typing.MutableSequence[Printing3DTexture2CoordMaterial]: ...
    # Windows.Graphics.Printing3D.Printing3DModelTexture Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup::get_Texture()
    @_property
    def texture(self) -> Printing3DModelTexture: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup::put_Texture(Windows.Graphics.Printing3D.Printing3DModelTexture)
    @texture.setter
    def texture(self, value: Printing3DModelTexture) -> None: ...

@typing.final
class Printing3DTextureResource(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Storage.Streams.IRandomAccessStreamWithContentType Windows.Graphics.Printing3D.Printing3DTextureResource::get_TextureData()
    @_property
    def texture_data(self) -> windows_storage_streams.IRandomAccessStreamWithContentType: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DTextureResource::put_TextureData(Windows.Storage.Streams.IRandomAccessStreamWithContentType)
    @texture_data.setter
    def texture_data(self, value: windows_storage_streams.IRandomAccessStreamWithContentType) -> None: ...
    # System.String Windows.Graphics.Printing3D.Printing3DTextureResource::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Graphics.Printing3D.Printing3DTextureResource::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...

