import typing
import bpy.types

GenericType = typing.TypeVar("GenericType")

def attribute_set(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    value_float: typing.Any = 0.0,
    value_float_vector_2d: typing.Any = (0.0, 0.0),
    value_float_vector_3d: typing.Any = (0.0, 0.0, 0.0),
    value_int: typing.Any = 0,
    value_int_vector_2d: typing.Any = (0, 0),
    value_color: typing.Any = (1.0, 1.0, 1.0, 1.0),
    value_bool: typing.Union[bool, typing.Any] = False,
):
    """Set values of the active attribute for selected elements

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param value_float: Value
    :type value_float: typing.Any
    :param value_float_vector_2d: Value
    :type value_float_vector_2d: typing.Any
    :param value_float_vector_3d: Value
    :type value_float_vector_3d: typing.Any
    :param value_int: Value
    :type value_int: typing.Any
    :param value_int_vector_2d: Value
    :type value_int_vector_2d: typing.Any
    :param value_color: Value
    :type value_color: typing.Any
    :param value_bool: Value
    :type value_bool: typing.Union[bool, typing.Any]
    """

    ...

def average_normals(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    average_type: typing.Any = "CUSTOM_NORMAL",
    weight: typing.Any = 50,
    threshold: typing.Any = 0.01,
):
    """Average custom normals of selected vertices

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param average_type: Type, Averaging method

    CUSTOM_NORMAL
    Custom Normal -- Take average of vertex normals.

    FACE_AREA
    Face Area -- Set all vertex normals by face area.

    CORNER_ANGLE
    Corner Angle -- Set all vertex normals by corner angle.
        :type average_type: typing.Any
        :param weight: Weight, Weight applied per face
        :type weight: typing.Any
        :param threshold: Threshold, Threshold value for different weights to be considered equal
        :type threshold: typing.Any
    """

    ...

def beautify_fill(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    angle_limit: typing.Any = 3.14159,
):
    """Rearrange some faces to try to get less degenerated geometry

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param angle_limit: Max Angle, Angle limit
    :type angle_limit: typing.Any
    """

    ...

def bevel(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    offset_type: typing.Any = "OFFSET",
    offset: typing.Any = 0.0,
    profile_type: typing.Any = "SUPERELLIPSE",
    offset_pct: typing.Any = 0.0,
    segments: typing.Any = 1,
    profile: typing.Any = 0.5,
    affect: typing.Any = "EDGES",
    clamp_overlap: typing.Union[bool, typing.Any] = False,
    loop_slide: typing.Union[bool, typing.Any] = True,
    mark_seam: typing.Union[bool, typing.Any] = False,
    mark_sharp: typing.Union[bool, typing.Any] = False,
    material: typing.Any = -1,
    harden_normals: typing.Union[bool, typing.Any] = False,
    face_strength_mode: typing.Any = "NONE",
    miter_outer: typing.Any = "SHARP",
    miter_inner: typing.Any = "SHARP",
    spread: typing.Any = 0.1,
    vmesh_method: typing.Any = "ADJ",
    release_confirm: typing.Union[bool, typing.Any] = False,
):
    """Cut into selected items at an angle to create bevel or chamfer

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param offset_type: Width Type, The method for determining the size of the bevel

    OFFSET
    Offset -- Amount is offset of new edges from original.

    WIDTH
    Width -- Amount is width of new face.

    DEPTH
    Depth -- Amount is perpendicular distance from original edge to bevel face.

    PERCENT
    Percent -- Amount is percent of adjacent edge length.

    ABSOLUTE
    Absolute -- Amount is absolute distance along adjacent edge.
        :type offset_type: typing.Any
        :param offset: Width, Bevel amount
        :type offset: typing.Any
        :param profile_type: Profile Type, The type of shape used to rebuild a beveled section

    SUPERELLIPSE
    Superellipse -- The profile can be a concave or convex curve.

    CUSTOM
    Custom -- The profile can be any arbitrary path between its endpoints.
        :type profile_type: typing.Any
        :param offset_pct: Width Percent, Bevel amount for percentage method
        :type offset_pct: typing.Any
        :param segments: Segments, Segments for curved edge
        :type segments: typing.Any
        :param profile: Profile, Controls profile shape (0.5 = round)
        :type profile: typing.Any
        :param affect: Affect, Affect edges or vertices

    VERTICES
    Vertices -- Affect only vertices.

    EDGES
    Edges -- Affect only edges.
        :type affect: typing.Any
        :param clamp_overlap: Clamp Overlap, Do not allow beveled edges/vertices to overlap each other
        :type clamp_overlap: typing.Union[bool, typing.Any]
        :param loop_slide: Loop Slide, Prefer sliding along edges to even widths
        :type loop_slide: typing.Union[bool, typing.Any]
        :param mark_seam: Mark Seams, Mark Seams along beveled edges
        :type mark_seam: typing.Union[bool, typing.Any]
        :param mark_sharp: Mark Sharp, Mark beveled edges as sharp
        :type mark_sharp: typing.Union[bool, typing.Any]
        :param material: Material Index, Material for bevel faces (-1 means use adjacent faces)
        :type material: typing.Any
        :param harden_normals: Harden Normals, Match normals of new faces to adjacent faces
        :type harden_normals: typing.Union[bool, typing.Any]
        :param face_strength_mode: Face Strength Mode, Whether to set face strength, and which faces to set face strength on

    NONE
    None -- Do not set face strength.

    NEW
    New -- Set face strength on new faces only.

    AFFECTED
    Affected -- Set face strength on new and modified faces only.

    ALL
    All -- Set face strength on all faces.
        :type face_strength_mode: typing.Any
        :param miter_outer: Outer Miter, Pattern to use for outside of miters

    SHARP
    Sharp -- Outside of miter is sharp.

    PATCH
    Patch -- Outside of miter is squared-off patch.

    ARC
    Arc -- Outside of miter is arc.
        :type miter_outer: typing.Any
        :param miter_inner: Inner Miter, Pattern to use for inside of miters

    SHARP
    Sharp -- Inside of miter is sharp.

    ARC
    Arc -- Inside of miter is arc.
        :type miter_inner: typing.Any
        :param spread: Spread, Amount to spread arcs for arc inner miters
        :type spread: typing.Any
        :param vmesh_method: Vertex Mesh Method, The method to use to create meshes at intersections

    ADJ
    Grid Fill -- Default patterned fill.

    CUTOFF
    Cutoff -- A cutoff at each profile's end before the intersection.
        :type vmesh_method: typing.Any
        :param release_confirm: Confirm on Release
        :type release_confirm: typing.Union[bool, typing.Any]
    """

    ...

def bisect(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    plane_co: typing.Any = (0.0, 0.0, 0.0),
    plane_no: typing.Any = (0.0, 0.0, 0.0),
    use_fill: typing.Union[bool, typing.Any] = False,
    clear_inner: typing.Union[bool, typing.Any] = False,
    clear_outer: typing.Union[bool, typing.Any] = False,
    threshold: typing.Any = 0.0001,
    xstart: typing.Any = 0,
    xend: typing.Any = 0,
    ystart: typing.Any = 0,
    yend: typing.Any = 0,
    flip: typing.Union[bool, typing.Any] = False,
    cursor: typing.Any = 5,
):
    """Cut geometry along a plane (click-drag to define plane)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param plane_co: Plane Point, A point on the plane
    :type plane_co: typing.Any
    :param plane_no: Plane Normal, The direction the plane points
    :type plane_no: typing.Any
    :param use_fill: Fill, Fill in the cut
    :type use_fill: typing.Union[bool, typing.Any]
    :param clear_inner: Clear Inner, Remove geometry behind the plane
    :type clear_inner: typing.Union[bool, typing.Any]
    :param clear_outer: Clear Outer, Remove geometry in front of the plane
    :type clear_outer: typing.Union[bool, typing.Any]
    :param threshold: Axis Threshold, Preserves the existing geometry along the cut plane
    :type threshold: typing.Any
    :param xstart: X Start
    :type xstart: typing.Any
    :param xend: X End
    :type xend: typing.Any
    :param ystart: Y Start
    :type ystart: typing.Any
    :param yend: Y End
    :type yend: typing.Any
    :param flip: Flip
    :type flip: typing.Union[bool, typing.Any]
    :param cursor: Cursor, Mouse cursor style to use during the modal operator
    :type cursor: typing.Any
    """

    ...

def blend_from_shape(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    shape: typing.Union[str, int, typing.Any] = "",
    blend: typing.Any = 1.0,
    add: typing.Union[bool, typing.Any] = True,
):
    """Blend in shape from a shape key

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param shape: Shape, Shape key to use for blending
    :type shape: typing.Union[str, int, typing.Any]
    :param blend: Blend, Blending factor
    :type blend: typing.Any
    :param add: Add, Add rather than blend between shapes
    :type add: typing.Union[bool, typing.Any]
    """

    ...

def bridge_edge_loops(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    type: typing.Any = "SINGLE",
    use_merge: typing.Union[bool, typing.Any] = False,
    merge_factor: typing.Any = 0.5,
    twist_offset: typing.Any = 0,
    number_cuts: typing.Any = 0,
    interpolation: typing.Any = "PATH",
    smoothness: typing.Any = 1.0,
    profile_shape_factor: typing.Any = 0.0,
    profile_shape: typing.Union[str, int] = "SMOOTH",
):
    """Create a bridge of faces between two or more selected edge loops

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param type: Connect Loops, Method of bridging multiple loops
    :type type: typing.Any
    :param use_merge: Merge, Merge rather than creating faces
    :type use_merge: typing.Union[bool, typing.Any]
    :param merge_factor: Merge Factor
    :type merge_factor: typing.Any
    :param twist_offset: Twist, Twist offset for closed loops
    :type twist_offset: typing.Any
    :param number_cuts: Number of Cuts
    :type number_cuts: typing.Any
    :param interpolation: Interpolation, Interpolation method
    :type interpolation: typing.Any
    :param smoothness: Smoothness, Smoothness factor
    :type smoothness: typing.Any
    :param profile_shape_factor: Profile Factor, How much intermediary new edges are shrunk/expanded
    :type profile_shape_factor: typing.Any
    :param profile_shape: Profile Shape, Shape of the profile
    :type profile_shape: typing.Union[str, int]
    """

    ...

def colors_reverse(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Flip direction of face corner color attribute inside faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def colors_rotate(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_ccw: typing.Union[bool, typing.Any] = False,
):
    """Rotate face corner color attribute inside faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_ccw: Counter Clockwise
    :type use_ccw: typing.Union[bool, typing.Any]
    """

    ...

def convex_hull(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    delete_unused: typing.Union[bool, typing.Any] = True,
    use_existing_faces: typing.Union[bool, typing.Any] = True,
    make_holes: typing.Union[bool, typing.Any] = False,
    join_triangles: typing.Union[bool, typing.Any] = True,
    face_threshold: typing.Any = 0.698132,
    shape_threshold: typing.Any = 0.698132,
    uvs: typing.Union[bool, typing.Any] = False,
    vcols: typing.Union[bool, typing.Any] = False,
    seam: typing.Union[bool, typing.Any] = False,
    sharp: typing.Union[bool, typing.Any] = False,
    materials: typing.Union[bool, typing.Any] = False,
):
    """Enclose selected vertices in a convex polyhedron

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param delete_unused: Delete Unused, Delete selected elements that are not used by the hull
    :type delete_unused: typing.Union[bool, typing.Any]
    :param use_existing_faces: Use Existing Faces, Skip hull triangles that are covered by a pre-existing face
    :type use_existing_faces: typing.Union[bool, typing.Any]
    :param make_holes: Make Holes, Delete selected faces that are used by the hull
    :type make_holes: typing.Union[bool, typing.Any]
    :param join_triangles: Join Triangles, Merge adjacent triangles into quads
    :type join_triangles: typing.Union[bool, typing.Any]
    :param face_threshold: Max Face Angle, Face angle limit
    :type face_threshold: typing.Any
    :param shape_threshold: Max Shape Angle, Shape angle limit
    :type shape_threshold: typing.Any
    :param uvs: Compare UVs
    :type uvs: typing.Union[bool, typing.Any]
    :param vcols: Compare Color Attributes
    :type vcols: typing.Union[bool, typing.Any]
    :param seam: Compare Seam
    :type seam: typing.Union[bool, typing.Any]
    :param sharp: Compare Sharp
    :type sharp: typing.Union[bool, typing.Any]
    :param materials: Compare Materials
    :type materials: typing.Union[bool, typing.Any]
    """

    ...

def customdata_custom_splitnormals_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Add a custom split normals layer, if none exists yet

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def customdata_custom_splitnormals_clear(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Remove the custom split normals layer, if it exists

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def customdata_mask_clear(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Clear vertex sculpt masking data from the mesh

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def customdata_skin_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Add a vertex skin layer

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def customdata_skin_clear(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Clear vertex skin layer

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def decimate(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    ratio: typing.Any = 1.0,
    use_vertex_group: typing.Union[bool, typing.Any] = False,
    vertex_group_factor: typing.Any = 1.0,
    invert_vertex_group: typing.Union[bool, typing.Any] = False,
    use_symmetry: typing.Union[bool, typing.Any] = False,
    symmetry_axis: typing.Union[str, int] = "Y",
):
    """Simplify geometry by collapsing edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param ratio: Ratio
    :type ratio: typing.Any
    :param use_vertex_group: Vertex Group, Use active vertex group as an influence
    :type use_vertex_group: typing.Union[bool, typing.Any]
    :param vertex_group_factor: Weight, Vertex group strength
    :type vertex_group_factor: typing.Any
    :param invert_vertex_group: Invert, Invert vertex group influence
    :type invert_vertex_group: typing.Union[bool, typing.Any]
    :param use_symmetry: Symmetry, Maintain symmetry on an axis
    :type use_symmetry: typing.Union[bool, typing.Any]
    :param symmetry_axis: Axis, Axis of symmetry
    :type symmetry_axis: typing.Union[str, int]
    """

    ...

def delete(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    type: typing.Any = "VERT",
):
    """Delete selected vertices, edges or faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param type: Type, Method used for deleting mesh data
    :type type: typing.Any
    """

    ...

def delete_edgeloop(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_face_split: typing.Union[bool, typing.Any] = True,
):
    """Delete an edge loop by merging the faces on each side

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_face_split: Face Split, Split off face corners to maintain surrounding geometry
    :type use_face_split: typing.Union[bool, typing.Any]
    """

    ...

def delete_loose(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_verts: typing.Union[bool, typing.Any] = True,
    use_edges: typing.Union[bool, typing.Any] = True,
    use_faces: typing.Union[bool, typing.Any] = False,
):
    """Delete loose vertices, edges or faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_verts: Vertices, Remove loose vertices
    :type use_verts: typing.Union[bool, typing.Any]
    :param use_edges: Edges, Remove loose edges
    :type use_edges: typing.Union[bool, typing.Any]
    :param use_faces: Faces, Remove loose faces
    :type use_faces: typing.Union[bool, typing.Any]
    """

    ...

def dissolve_degenerate(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    threshold: typing.Any = 0.0001,
):
    """Dissolve zero area faces and zero length edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param threshold: Merge Distance, Maximum distance between elements to merge
    :type threshold: typing.Any
    """

    ...

def dissolve_edges(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_verts: typing.Union[bool, typing.Any] = True,
    use_face_split: typing.Union[bool, typing.Any] = False,
):
    """Dissolve edges, merging faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_verts: Dissolve Vertices, Dissolve remaining vertices
    :type use_verts: typing.Union[bool, typing.Any]
    :param use_face_split: Face Split, Split off face corners to maintain surrounding geometry
    :type use_face_split: typing.Union[bool, typing.Any]
    """

    ...

def dissolve_faces(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_verts: typing.Union[bool, typing.Any] = False,
):
    """Dissolve faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_verts: Dissolve Vertices, Dissolve remaining vertices
    :type use_verts: typing.Union[bool, typing.Any]
    """

    ...

def dissolve_limited(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    angle_limit: typing.Any = 0.0872665,
    use_dissolve_boundaries: typing.Union[bool, typing.Any] = False,
    delimit: typing.Any = {'"NORMAL"'},
):
    """Dissolve selected edges and vertices, limited by the angle of surrounding geometry

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param angle_limit: Max Angle, Angle limit
    :type angle_limit: typing.Any
    :param use_dissolve_boundaries: All Boundaries, Dissolve all vertices in between face boundaries
    :type use_dissolve_boundaries: typing.Union[bool, typing.Any]
    :param delimit: Delimit, Delimit dissolve operation
    :type delimit: typing.Any
    """

    ...

def dissolve_mode(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_verts: typing.Union[bool, typing.Any] = False,
    use_face_split: typing.Union[bool, typing.Any] = False,
    use_boundary_tear: typing.Union[bool, typing.Any] = False,
):
    """Dissolve geometry based on the selection mode

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_verts: Dissolve Vertices, Dissolve remaining vertices
    :type use_verts: typing.Union[bool, typing.Any]
    :param use_face_split: Face Split, Split off face corners to maintain surrounding geometry
    :type use_face_split: typing.Union[bool, typing.Any]
    :param use_boundary_tear: Tear Boundary, Split off face corners instead of merging faces
    :type use_boundary_tear: typing.Union[bool, typing.Any]
    """

    ...

def dissolve_verts(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_face_split: typing.Union[bool, typing.Any] = False,
    use_boundary_tear: typing.Union[bool, typing.Any] = False,
):
    """Dissolve vertices, merge edges and faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_face_split: Face Split, Split off face corners to maintain surrounding geometry
    :type use_face_split: typing.Union[bool, typing.Any]
    :param use_boundary_tear: Tear Boundary, Split off face corners instead of merging faces
    :type use_boundary_tear: typing.Union[bool, typing.Any]
    """

    ...

def dupli_extrude_cursor(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    rotate_source: typing.Union[bool, typing.Any] = True,
):
    """Duplicate and extrude selected vertices, edges or faces towards the mouse cursor

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param rotate_source: Rotate Source, Rotate initial selection giving better shape
    :type rotate_source: typing.Union[bool, typing.Any]
    """

    ...

def duplicate(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mode: typing.Any = 1,
):
    """Duplicate selected vertices, edges or faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mode: Mode
    :type mode: typing.Any
    """

    ...

def duplicate_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_duplicate: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Duplicate mesh and move

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_duplicate: Duplicate, Duplicate selected vertices, edges or faces
    :type MESH_OT_duplicate: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def edge_collapse(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Collapse isolated edge and face regions, merging data such as UVs and color attributes. This can collapse edge-rings as well as regions of connected faces into vertices

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def edge_face_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Add an edge or face to selected

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def edge_rotate(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_ccw: typing.Union[bool, typing.Any] = False,
):
    """Rotate selected edge or adjoining faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_ccw: Counter Clockwise
    :type use_ccw: typing.Union[bool, typing.Any]
    """

    ...

def edge_split(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    type: typing.Any = "EDGE",
):
    """Split selected edges so that each neighbor face gets its own copy

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param type: Type, Method to use for splitting

    EDGE
    Faces by Edges -- Split faces along selected edges.

    VERT
    Faces & Edges by Vertices -- Split faces and edges connected to selected vertices.
        :type type: typing.Any
    """

    ...

def edgering_select(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    extend: typing.Union[bool, typing.Any] = False,
    deselect: typing.Union[bool, typing.Any] = False,
    toggle: typing.Union[bool, typing.Any] = False,
    ring: typing.Union[bool, typing.Any] = True,
):
    """Select an edge ring

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param extend: Extend, Extend the selection
    :type extend: typing.Union[bool, typing.Any]
    :param deselect: Deselect, Remove from the selection
    :type deselect: typing.Union[bool, typing.Any]
    :param toggle: Toggle Select, Toggle the selection
    :type toggle: typing.Union[bool, typing.Any]
    :param ring: Select Ring, Select ring
    :type ring: typing.Union[bool, typing.Any]
    """

    ...

def edges_select_sharp(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    sharpness: typing.Any = 0.523599,
):
    """Select all sharp enough edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param sharpness: Sharpness
    :type sharpness: typing.Any
    """

    ...

def extrude_context(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_normal_flip: typing.Union[bool, typing.Any] = False,
    use_dissolve_ortho_edges: typing.Union[bool, typing.Any] = False,
    mirror: typing.Union[bool, typing.Any] = False,
):
    """Extrude selection

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_normal_flip: Flip Normals
    :type use_normal_flip: typing.Union[bool, typing.Any]
    :param use_dissolve_ortho_edges: Dissolve Orthogonal Edges
    :type use_dissolve_ortho_edges: typing.Union[bool, typing.Any]
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    """

    ...

def extrude_context_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_extrude_context: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Extrude region together along the average normal

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_extrude_context: Extrude Context, Extrude selection
    :type MESH_OT_extrude_context: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def extrude_edges_indiv(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_normal_flip: typing.Union[bool, typing.Any] = False,
    mirror: typing.Union[bool, typing.Any] = False,
):
    """Extrude individual edges only

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_normal_flip: Flip Normals
    :type use_normal_flip: typing.Union[bool, typing.Any]
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    """

    ...

def extrude_edges_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_extrude_edges_indiv: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Extrude edges and move result

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_extrude_edges_indiv: Extrude Only Edges, Extrude individual edges only
    :type MESH_OT_extrude_edges_indiv: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def extrude_faces_indiv(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mirror: typing.Union[bool, typing.Any] = False,
):
    """Extrude individual faces only

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    """

    ...

def extrude_faces_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_extrude_faces_indiv: typing.Any = None,
    TRANSFORM_OT_shrink_fatten: typing.Any = None,
):
    """Extrude each individual face separately along local normals

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_extrude_faces_indiv: Extrude Individual Faces, Extrude individual faces only
    :type MESH_OT_extrude_faces_indiv: typing.Any
    :param TRANSFORM_OT_shrink_fatten: Shrink/Fatten, Shrink/fatten selected vertices along normals
    :type TRANSFORM_OT_shrink_fatten: typing.Any
    """

    ...

def extrude_manifold(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_extrude_region: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Extrude, dissolves edges whose faces form a flat surface and intersect new edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_extrude_region: Extrude Region, Extrude region of faces
    :type MESH_OT_extrude_region: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def extrude_region(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_normal_flip: typing.Union[bool, typing.Any] = False,
    use_dissolve_ortho_edges: typing.Union[bool, typing.Any] = False,
    mirror: typing.Union[bool, typing.Any] = False,
):
    """Extrude region of faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_normal_flip: Flip Normals
    :type use_normal_flip: typing.Union[bool, typing.Any]
    :param use_dissolve_ortho_edges: Dissolve Orthogonal Edges
    :type use_dissolve_ortho_edges: typing.Union[bool, typing.Any]
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    """

    ...

def extrude_region_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_extrude_region: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Extrude region and move result

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_extrude_region: Extrude Region, Extrude region of faces
    :type MESH_OT_extrude_region: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def extrude_region_shrink_fatten(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_extrude_region: typing.Any = None,
    TRANSFORM_OT_shrink_fatten: typing.Any = None,
):
    """Extrude region together along local normals

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_extrude_region: Extrude Region, Extrude region of faces
    :type MESH_OT_extrude_region: typing.Any
    :param TRANSFORM_OT_shrink_fatten: Shrink/Fatten, Shrink/fatten selected vertices along normals
    :type TRANSFORM_OT_shrink_fatten: typing.Any
    """

    ...

def extrude_repeat(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    steps: typing.Any = 10,
    offset: typing.Any = (0.0, 0.0, 0.0),
    scale_offset: typing.Any = 1.0,
):
    """Extrude selected vertices, edges or faces repeatedly

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param steps: Steps
    :type steps: typing.Any
    :param offset: Offset, Offset vector
    :type offset: typing.Any
    :param scale_offset: Scale Offset
    :type scale_offset: typing.Any
    """

    ...

def extrude_vertices_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_extrude_verts_indiv: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Extrude vertices and move result

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_extrude_verts_indiv: Extrude Only Vertices, Extrude individual vertices only
    :type MESH_OT_extrude_verts_indiv: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def extrude_verts_indiv(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mirror: typing.Union[bool, typing.Any] = False,
):
    """Extrude individual vertices only

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    """

    ...

def face_make_planar(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    factor: typing.Any = 1.0,
    repeat: typing.Any = 1,
):
    """Flatten selected faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param factor: Factor
    :type factor: typing.Any
    :param repeat: Iterations
    :type repeat: typing.Any
    """

    ...

def face_set_extract(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    add_boundary_loop: typing.Union[bool, typing.Any] = True,
    smooth_iterations: typing.Any = 4,
    apply_shrinkwrap: typing.Union[bool, typing.Any] = True,
    add_solidify: typing.Union[bool, typing.Any] = True,
):
    """Create a new mesh object from the selected Face Set

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param add_boundary_loop: Add Boundary Loop, Add an extra edge loop to better preserve the shape when applying a subdivision surface modifier
    :type add_boundary_loop: typing.Union[bool, typing.Any]
    :param smooth_iterations: Smooth Iterations, Smooth iterations applied to the extracted mesh
    :type smooth_iterations: typing.Any
    :param apply_shrinkwrap: Project to Sculpt, Project the extracted mesh into the original sculpt
    :type apply_shrinkwrap: typing.Union[bool, typing.Any]
    :param add_solidify: Extract as Solid, Extract the mask as a solid object with a solidify modifier
    :type add_solidify: typing.Union[bool, typing.Any]
    """

    ...

def face_split_by_edges(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Weld loose edges into faces (splitting them into new faces)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def faces_mirror_uv(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    direction: typing.Any = "POSITIVE",
    precision: typing.Any = 3,
):
    """Copy mirror UV coordinates on the X axis based on a mirrored mesh

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param direction: Axis Direction
    :type direction: typing.Any
    :param precision: Precision, Tolerance for finding vertex duplicates
    :type precision: typing.Any
    """

    ...

def faces_select_linked_flat(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    sharpness: typing.Any = 0.0174533,
):
    """Select linked faces by angle

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param sharpness: Sharpness
    :type sharpness: typing.Any
    """

    ...

def faces_shade_flat(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Display faces flat

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def faces_shade_smooth(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Display faces smooth (using vertex normals)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def fill(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_beauty: typing.Union[bool, typing.Any] = True,
):
    """Fill a selected edge loop with faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_beauty: Beauty, Use best triangulation division
    :type use_beauty: typing.Union[bool, typing.Any]
    """

    ...

def fill_grid(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    span: typing.Any = 1,
    offset: typing.Any = 0,
    use_interp_simple: typing.Union[bool, typing.Any] = False,
):
    """Fill grid from two loops

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param span: Span, Number of grid columns
    :type span: typing.Any
    :param offset: Offset, Vertex that is the corner of the grid
    :type offset: typing.Any
    :param use_interp_simple: Simple Blending, Use simple interpolation of grid vertices
    :type use_interp_simple: typing.Union[bool, typing.Any]
    """

    ...

def fill_holes(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    sides: typing.Any = 4,
):
    """Fill in holes (boundary edge loops)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param sides: Sides, Number of sides in hole required to fill (zero fills all holes)
    :type sides: typing.Any
    """

    ...

def flip_normals(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    only_clnors: typing.Union[bool, typing.Any] = False,
):
    """Flip the direction of selected faces' normals (and of their vertices)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param only_clnors: Custom Normals Only, Only flip the custom loop normals of the selected elements
    :type only_clnors: typing.Union[bool, typing.Any]
    """

    ...

def flip_quad_tessellation(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Flips the tessellation of selected quads

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def hide(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    unselected: typing.Union[bool, typing.Any] = False,
):
    """Hide (un)selected vertices, edges or faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param unselected: Unselected, Hide unselected rather than selected
    :type unselected: typing.Union[bool, typing.Any]
    """

    ...

def inset(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_boundary: typing.Union[bool, typing.Any] = True,
    use_even_offset: typing.Union[bool, typing.Any] = True,
    use_relative_offset: typing.Union[bool, typing.Any] = False,
    use_edge_rail: typing.Union[bool, typing.Any] = False,
    thickness: typing.Any = 0.0,
    depth: typing.Any = 0.0,
    use_outset: typing.Union[bool, typing.Any] = False,
    use_select_inset: typing.Union[bool, typing.Any] = False,
    use_individual: typing.Union[bool, typing.Any] = False,
    use_interpolate: typing.Union[bool, typing.Any] = True,
    release_confirm: typing.Union[bool, typing.Any] = False,
):
    """Inset new faces into selected faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_boundary: Boundary, Inset face boundaries
    :type use_boundary: typing.Union[bool, typing.Any]
    :param use_even_offset: Offset Even, Scale the offset to give more even thickness
    :type use_even_offset: typing.Union[bool, typing.Any]
    :param use_relative_offset: Offset Relative, Scale the offset by surrounding geometry
    :type use_relative_offset: typing.Union[bool, typing.Any]
    :param use_edge_rail: Edge Rail, Inset the region along existing edges
    :type use_edge_rail: typing.Union[bool, typing.Any]
    :param thickness: Thickness
    :type thickness: typing.Any
    :param depth: Depth
    :type depth: typing.Any
    :param use_outset: Outset, Outset rather than inset
    :type use_outset: typing.Union[bool, typing.Any]
    :param use_select_inset: Select Outer, Select the new inset faces
    :type use_select_inset: typing.Union[bool, typing.Any]
    :param use_individual: Individual, Individual face inset
    :type use_individual: typing.Union[bool, typing.Any]
    :param use_interpolate: Interpolate, Blend face data across the inset
    :type use_interpolate: typing.Union[bool, typing.Any]
    :param release_confirm: Confirm on Release
    :type release_confirm: typing.Union[bool, typing.Any]
    """

    ...

def intersect(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mode: typing.Any = "SELECT_UNSELECT",
    separate_mode: typing.Any = "CUT",
    threshold: typing.Any = 1e-06,
    solver: typing.Any = "EXACT",
):
    """Cut an intersection into faces

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param mode: Source

    SELECT
    Self Intersect -- Self intersect selected faces.

    SELECT_UNSELECT
    Selected/Unselected -- Intersect selected with unselected faces.
        :type mode: typing.Any
        :param separate_mode: Separate Mode

    ALL
    All -- Separate all geometry from intersections.

    CUT
    Cut -- Cut into geometry keeping each side separate (Selected/Unselected only).

    NONE
    Merge -- Merge all geometry from the intersection.
        :type separate_mode: typing.Any
        :param threshold: Merge Threshold
        :type threshold: typing.Any
        :param solver: Solver, Which Intersect solver to use

    FAST
    Fast -- Faster solver, some limitations.

    EXACT
    Exact -- Exact solver, slower, handles more cases.
        :type solver: typing.Any
    """

    ...

def intersect_boolean(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    operation: typing.Any = "DIFFERENCE",
    use_swap: typing.Union[bool, typing.Any] = False,
    use_self: typing.Union[bool, typing.Any] = False,
    threshold: typing.Any = 1e-06,
    solver: typing.Any = "EXACT",
):
    """Cut solid geometry from selected to unselected

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param operation: Boolean Operation, Which boolean operation to apply
        :type operation: typing.Any
        :param use_swap: Swap, Use with difference intersection to swap which side is kept
        :type use_swap: typing.Union[bool, typing.Any]
        :param use_self: Self Intersection, Do self-union or self-intersection
        :type use_self: typing.Union[bool, typing.Any]
        :param threshold: Merge Threshold
        :type threshold: typing.Any
        :param solver: Solver, Which Boolean solver to use

    FAST
    Fast -- Faster solver, some limitations.

    EXACT
    Exact -- Exact solver, slower, handles more cases.
        :type solver: typing.Any
    """

    ...

def knife_project(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    cut_through: typing.Union[bool, typing.Any] = False,
):
    """Use other objects outlines and boundaries to project knife cuts

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param cut_through: Cut Through, Cut through all faces, not just visible ones
    :type cut_through: typing.Union[bool, typing.Any]
    """

    ...

def knife_tool(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_occlude_geometry: typing.Union[bool, typing.Any] = True,
    only_selected: typing.Union[bool, typing.Any] = False,
    xray: typing.Union[bool, typing.Any] = True,
    visible_measurements: typing.Any = "NONE",
    angle_snapping: typing.Any = "NONE",
    angle_snapping_increment: typing.Any = 0.523599,
    wait_for_input: typing.Union[bool, typing.Any] = True,
):
    """Cut new topology

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param use_occlude_geometry: Occlude Geometry, Only cut the front most geometry
        :type use_occlude_geometry: typing.Union[bool, typing.Any]
        :param only_selected: Only Selected, Only cut selected geometry
        :type only_selected: typing.Union[bool, typing.Any]
        :param xray: X-Ray, Show cuts hidden by geometry
        :type xray: typing.Union[bool, typing.Any]
        :param visible_measurements: Measurements, Visible distance and angle measurements

    NONE
    None -- Show no measurements.

    BOTH
    Both -- Show both distances and angles.

    DISTANCE
    Distance -- Show just distance measurements.

    ANGLE
    Angle -- Show just angle measurements.
        :type visible_measurements: typing.Any
        :param angle_snapping: Angle Snapping, Angle snapping mode

    NONE
    None -- No angle snapping.

    SCREEN
    Screen -- Screen space angle snapping.

    RELATIVE
    Relative -- Angle snapping relative to the previous cut edge.
        :type angle_snapping: typing.Any
        :param angle_snapping_increment: Angle Snap Increment, The angle snap increment used when in constrained angle mode
        :type angle_snapping_increment: typing.Any
        :param wait_for_input: Wait for Input
        :type wait_for_input: typing.Union[bool, typing.Any]
    """

    ...

def loop_multi_select(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    ring: typing.Union[bool, typing.Any] = False,
):
    """Select a loop of connected edges by connection type

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param ring: Ring
    :type ring: typing.Union[bool, typing.Any]
    """

    ...

def loop_select(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    extend: typing.Union[bool, typing.Any] = False,
    deselect: typing.Union[bool, typing.Any] = False,
    toggle: typing.Union[bool, typing.Any] = False,
    ring: typing.Union[bool, typing.Any] = False,
):
    """Select a loop of connected edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param extend: Extend Select, Extend the selection
    :type extend: typing.Union[bool, typing.Any]
    :param deselect: Deselect, Remove from the selection
    :type deselect: typing.Union[bool, typing.Any]
    :param toggle: Toggle Select, Toggle the selection
    :type toggle: typing.Union[bool, typing.Any]
    :param ring: Select Ring, Select ring
    :type ring: typing.Union[bool, typing.Any]
    """

    ...

def loop_to_region(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    select_bigger: typing.Union[bool, typing.Any] = False,
):
    """Select region of faces inside of a selected loop of edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param select_bigger: Select Bigger, Select bigger regions instead of smaller ones
    :type select_bigger: typing.Union[bool, typing.Any]
    """

    ...

def loopcut(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    number_cuts: typing.Any = 1,
    smoothness: typing.Any = 0.0,
    falloff: typing.Union[str, int] = "INVERSE_SQUARE",
    object_index: typing.Any = -1,
    edge_index: typing.Any = -1,
    mesh_select_mode_init: typing.Union[typing.List[bool], typing.Any] = (
        False,
        False,
        False,
    ),
):
    """Add a new loop between existing loops

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param number_cuts: Number of Cuts
    :type number_cuts: typing.Any
    :param smoothness: Smoothness, Smoothness factor
    :type smoothness: typing.Any
    :param falloff: Falloff, Falloff type of the feather
    :type falloff: typing.Union[str, int]
    :param object_index: Object Index
    :type object_index: typing.Any
    :param edge_index: Edge Index
    :type edge_index: typing.Any
    :type mesh_select_mode_init: typing.Union[typing.List[bool], typing.Any]
    """

    ...

def loopcut_slide(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_loopcut: typing.Any = None,
    TRANSFORM_OT_edge_slide: typing.Any = None,
):
    """Cut mesh loop and slide it

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_loopcut: Loop Cut, Add a new loop between existing loops
    :type MESH_OT_loopcut: typing.Any
    :param TRANSFORM_OT_edge_slide: Edge Slide, Slide an edge loop along a mesh
    :type TRANSFORM_OT_edge_slide: typing.Any
    """

    ...

def mark_freestyle_edge(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    clear: typing.Union[bool, typing.Any] = False,
):
    """(Un)mark selected edges as Freestyle feature edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param clear: Clear
    :type clear: typing.Union[bool, typing.Any]
    """

    ...

def mark_freestyle_face(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    clear: typing.Union[bool, typing.Any] = False,
):
    """(Un)mark selected faces for exclusion from Freestyle feature edge detection

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param clear: Clear
    :type clear: typing.Union[bool, typing.Any]
    """

    ...

def mark_seam(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    clear: typing.Union[bool, typing.Any] = False,
):
    """(Un)mark selected edges as a seam

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param clear: Clear
    :type clear: typing.Union[bool, typing.Any]
    """

    ...

def mark_sharp(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    clear: typing.Union[bool, typing.Any] = False,
    use_verts: typing.Union[bool, typing.Any] = False,
):
    """(Un)mark selected edges as sharp

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param clear: Clear
    :type clear: typing.Union[bool, typing.Any]
    :param use_verts: Vertices, Consider vertices instead of edges to select which edges to (un)tag as sharp
    :type use_verts: typing.Union[bool, typing.Any]
    """

    ...

def merge(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    type: typing.Any = "CENTER",
    uvs: typing.Union[bool, typing.Any] = False,
):
    """Merge selected vertices

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param type: Type, Merge method to use
    :type type: typing.Any
    :param uvs: UVs, Move UVs according to merge
    :type uvs: typing.Union[bool, typing.Any]
    """

    ...

def merge_normals(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Merge custom normals of selected vertices

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def mod_weighted_strength(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    set: typing.Union[bool, typing.Any] = False,
    face_strength: typing.Any = "MEDIUM",
):
    """Set/Get strength of face (used in Weighted Normal modifier)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param set: Set Value, Set value of faces
    :type set: typing.Union[bool, typing.Any]
    :param face_strength: Face Strength, Strength to use for assigning or selecting face influence for weighted normal modifier
    :type face_strength: typing.Any
    """

    ...

def normals_make_consistent(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    inside: typing.Union[bool, typing.Any] = False,
):
    """Make face and vertex normals point either outside or inside the mesh

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param inside: Inside
    :type inside: typing.Union[bool, typing.Any]
    """

    ...

def normals_tools(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mode: typing.Any = "COPY",
    absolute: typing.Union[bool, typing.Any] = False,
):
    """Custom normals tools using Normal Vector of UI

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param mode: Mode, Mode of tools taking input from interface

    COPY
    Copy Normal -- Copy normal to the internal clipboard.

    PASTE
    Paste Normal -- Paste normal from the internal clipboard.

    ADD
    Add Normal -- Add normal vector with selection.

    MULTIPLY
    Multiply Normal -- Multiply normal vector with selection.

    RESET
    Reset Normal -- Reset the internal clipboard and/or normal of selected element.
        :type mode: typing.Any
        :param absolute: Absolute Coordinates, Copy Absolute coordinates of Normal vector
        :type absolute: typing.Union[bool, typing.Any]
    """

    ...

def offset_edge_loops(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_cap_endpoint: typing.Union[bool, typing.Any] = False,
):
    """Create offset edge loop from the current selection

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_cap_endpoint: Cap Endpoint, Extend loop around end-points
    :type use_cap_endpoint: typing.Union[bool, typing.Any]
    """

    ...

def offset_edge_loops_slide(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_offset_edge_loops: typing.Any = None,
    TRANSFORM_OT_edge_slide: typing.Any = None,
):
    """Offset edge loop slide

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_offset_edge_loops: Offset Edge Loop, Create offset edge loop from the current selection
    :type MESH_OT_offset_edge_loops: typing.Any
    :param TRANSFORM_OT_edge_slide: Edge Slide, Slide an edge loop along a mesh
    :type TRANSFORM_OT_edge_slide: typing.Any
    """

    ...

def paint_mask_extract(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mask_threshold: typing.Any = 0.5,
    add_boundary_loop: typing.Union[bool, typing.Any] = True,
    smooth_iterations: typing.Any = 4,
    apply_shrinkwrap: typing.Union[bool, typing.Any] = True,
    add_solidify: typing.Union[bool, typing.Any] = True,
):
    """Create a new mesh object from the current paint mask

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mask_threshold: Threshold, Minimum mask value to consider the vertex valid to extract a face from the original mesh
    :type mask_threshold: typing.Any
    :param add_boundary_loop: Add Boundary Loop, Add an extra edge loop to better preserve the shape when applying a subdivision surface modifier
    :type add_boundary_loop: typing.Union[bool, typing.Any]
    :param smooth_iterations: Smooth Iterations, Smooth iterations applied to the extracted mesh
    :type smooth_iterations: typing.Any
    :param apply_shrinkwrap: Project to Sculpt, Project the extracted mesh into the original sculpt
    :type apply_shrinkwrap: typing.Union[bool, typing.Any]
    :param add_solidify: Extract as Solid, Extract the mask as a solid object with a solidify modifier
    :type add_solidify: typing.Union[bool, typing.Any]
    """

    ...

def paint_mask_slice(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mask_threshold: typing.Any = 0.5,
    fill_holes: typing.Union[bool, typing.Any] = True,
    new_object: typing.Union[bool, typing.Any] = True,
):
    """Slices the paint mask from the mesh

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mask_threshold: Threshold, Minimum mask value to consider the vertex valid to extract a face from the original mesh
    :type mask_threshold: typing.Any
    :param fill_holes: Fill Holes, Fill holes after slicing the mask
    :type fill_holes: typing.Union[bool, typing.Any]
    :param new_object: Slice to New Object, Create a new object from the sliced mask
    :type new_object: typing.Union[bool, typing.Any]
    """

    ...

def point_normals(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mode: typing.Any = "COORDINATES",
    invert: typing.Union[bool, typing.Any] = False,
    align: typing.Union[bool, typing.Any] = False,
    target_location: typing.Any = (0.0, 0.0, 0.0),
    spherize: typing.Union[bool, typing.Any] = False,
    spherize_strength: typing.Any = 0.1,
):
    """Point selected custom normals to specified Target

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param mode: Mode, How to define coordinates to point custom normals to

    COORDINATES
    Coordinates -- Use static coordinates (defined by various means).

    MOUSE
    Mouse -- Follow mouse cursor.
        :type mode: typing.Any
        :param invert: Invert, Invert affected normals
        :type invert: typing.Union[bool, typing.Any]
        :param align: Align, Make all affected normals parallel
        :type align: typing.Union[bool, typing.Any]
        :param target_location: Target, Target location to which normals will point
        :type target_location: typing.Any
        :param spherize: Spherize, Interpolate between original and new normals
        :type spherize: typing.Union[bool, typing.Any]
        :param spherize_strength: Spherize Strength, Ratio of spherized normal to original normal
        :type spherize_strength: typing.Any
    """

    ...

def poke(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    offset: typing.Any = 0.0,
    use_relative_offset: typing.Union[bool, typing.Any] = False,
    center_mode: typing.Any = "MEDIAN_WEIGHTED",
):
    """Split a face into a fan

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param offset: Poke Offset, Poke Offset
        :type offset: typing.Any
        :param use_relative_offset: Offset Relative, Scale the offset by surrounding geometry
        :type use_relative_offset: typing.Union[bool, typing.Any]
        :param center_mode: Poke Center, Poke face center calculation

    MEDIAN_WEIGHTED
    Weighted Median -- Weighted median face center.

    MEDIAN
    Median -- Median face center.

    BOUNDS
    Bounds -- Face bounds center.
        :type center_mode: typing.Any
    """

    ...

def polybuild_delete_at_cursor(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mirror: typing.Union[bool, typing.Any] = False,
    use_proportional_edit: typing.Union[bool, typing.Any] = False,
    proportional_edit_falloff: typing.Union[str, int] = "SMOOTH",
    proportional_size: typing.Any = 1.0,
    use_proportional_connected: typing.Union[bool, typing.Any] = False,
    use_proportional_projected: typing.Union[bool, typing.Any] = False,
    release_confirm: typing.Union[bool, typing.Any] = False,
    use_accurate: typing.Union[bool, typing.Any] = False,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    :param use_proportional_edit: Proportional Editing
    :type use_proportional_edit: typing.Union[bool, typing.Any]
    :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
    :type proportional_edit_falloff: typing.Union[str, int]
    :param proportional_size: Proportional Size
    :type proportional_size: typing.Any
    :param use_proportional_connected: Connected
    :type use_proportional_connected: typing.Union[bool, typing.Any]
    :param use_proportional_projected: Projected (2D)
    :type use_proportional_projected: typing.Union[bool, typing.Any]
    :param release_confirm: Confirm on Release, Always confirm operation when releasing button
    :type release_confirm: typing.Union[bool, typing.Any]
    :param use_accurate: Accurate, Use accurate transformation
    :type use_accurate: typing.Union[bool, typing.Any]
    """

    ...

def polybuild_dissolve_at_cursor(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def polybuild_extrude_at_cursor_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_polybuild_transform_at_cursor: typing.Any = None,
    MESH_OT_extrude_edges_indiv: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_polybuild_transform_at_cursor: Poly Build Transform at Cursor
    :type MESH_OT_polybuild_transform_at_cursor: typing.Any
    :param MESH_OT_extrude_edges_indiv: Extrude Only Edges, Extrude individual edges only
    :type MESH_OT_extrude_edges_indiv: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def polybuild_face_at_cursor(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    create_quads: typing.Union[bool, typing.Any] = True,
    mirror: typing.Union[bool, typing.Any] = False,
    use_proportional_edit: typing.Union[bool, typing.Any] = False,
    proportional_edit_falloff: typing.Union[str, int] = "SMOOTH",
    proportional_size: typing.Any = 1.0,
    use_proportional_connected: typing.Union[bool, typing.Any] = False,
    use_proportional_projected: typing.Union[bool, typing.Any] = False,
    release_confirm: typing.Union[bool, typing.Any] = False,
    use_accurate: typing.Union[bool, typing.Any] = False,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param create_quads: Create Quads, Automatically split edges in triangles to maintain quad topology
    :type create_quads: typing.Union[bool, typing.Any]
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    :param use_proportional_edit: Proportional Editing
    :type use_proportional_edit: typing.Union[bool, typing.Any]
    :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
    :type proportional_edit_falloff: typing.Union[str, int]
    :param proportional_size: Proportional Size
    :type proportional_size: typing.Any
    :param use_proportional_connected: Connected
    :type use_proportional_connected: typing.Union[bool, typing.Any]
    :param use_proportional_projected: Projected (2D)
    :type use_proportional_projected: typing.Union[bool, typing.Any]
    :param release_confirm: Confirm on Release, Always confirm operation when releasing button
    :type release_confirm: typing.Union[bool, typing.Any]
    :param use_accurate: Accurate, Use accurate transformation
    :type use_accurate: typing.Union[bool, typing.Any]
    """

    ...

def polybuild_face_at_cursor_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_polybuild_face_at_cursor: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_polybuild_face_at_cursor: Poly Build Face at Cursor
    :type MESH_OT_polybuild_face_at_cursor: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def polybuild_split_at_cursor(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mirror: typing.Union[bool, typing.Any] = False,
    use_proportional_edit: typing.Union[bool, typing.Any] = False,
    proportional_edit_falloff: typing.Union[str, int] = "SMOOTH",
    proportional_size: typing.Any = 1.0,
    use_proportional_connected: typing.Union[bool, typing.Any] = False,
    use_proportional_projected: typing.Union[bool, typing.Any] = False,
    release_confirm: typing.Union[bool, typing.Any] = False,
    use_accurate: typing.Union[bool, typing.Any] = False,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    :param use_proportional_edit: Proportional Editing
    :type use_proportional_edit: typing.Union[bool, typing.Any]
    :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
    :type proportional_edit_falloff: typing.Union[str, int]
    :param proportional_size: Proportional Size
    :type proportional_size: typing.Any
    :param use_proportional_connected: Connected
    :type use_proportional_connected: typing.Union[bool, typing.Any]
    :param use_proportional_projected: Projected (2D)
    :type use_proportional_projected: typing.Union[bool, typing.Any]
    :param release_confirm: Confirm on Release, Always confirm operation when releasing button
    :type release_confirm: typing.Union[bool, typing.Any]
    :param use_accurate: Accurate, Use accurate transformation
    :type use_accurate: typing.Union[bool, typing.Any]
    """

    ...

def polybuild_split_at_cursor_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_polybuild_split_at_cursor: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_polybuild_split_at_cursor: Poly Build Split at Cursor
    :type MESH_OT_polybuild_split_at_cursor: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def polybuild_transform_at_cursor(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mirror: typing.Union[bool, typing.Any] = False,
    use_proportional_edit: typing.Union[bool, typing.Any] = False,
    proportional_edit_falloff: typing.Union[str, int] = "SMOOTH",
    proportional_size: typing.Any = 1.0,
    use_proportional_connected: typing.Union[bool, typing.Any] = False,
    use_proportional_projected: typing.Union[bool, typing.Any] = False,
    release_confirm: typing.Union[bool, typing.Any] = False,
    use_accurate: typing.Union[bool, typing.Any] = False,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    :param use_proportional_edit: Proportional Editing
    :type use_proportional_edit: typing.Union[bool, typing.Any]
    :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
    :type proportional_edit_falloff: typing.Union[str, int]
    :param proportional_size: Proportional Size
    :type proportional_size: typing.Any
    :param use_proportional_connected: Connected
    :type use_proportional_connected: typing.Union[bool, typing.Any]
    :param use_proportional_projected: Projected (2D)
    :type use_proportional_projected: typing.Union[bool, typing.Any]
    :param release_confirm: Confirm on Release, Always confirm operation when releasing button
    :type release_confirm: typing.Union[bool, typing.Any]
    :param use_accurate: Accurate, Use accurate transformation
    :type use_accurate: typing.Union[bool, typing.Any]
    """

    ...

def polybuild_transform_at_cursor_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_polybuild_transform_at_cursor: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Undocumented, consider contributing.

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_polybuild_transform_at_cursor: Poly Build Transform at Cursor
    :type MESH_OT_polybuild_transform_at_cursor: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def primitive_circle_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    vertices: typing.Any = 32,
    radius: typing.Any = 1.0,
    fill_type: typing.Any = "NOTHING",
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a circle mesh

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param vertices: Vertices
        :type vertices: typing.Any
        :param radius: Radius
        :type radius: typing.Any
        :param fill_type: Fill Type

    NOTHING
    Nothing -- Don't fill at all.

    NGON
    N-Gon -- Use n-gons.

    TRIFAN
    Triangle Fan -- Use triangle fans.
        :type fill_type: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_cone_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    vertices: typing.Any = 32,
    radius1: typing.Any = 1.0,
    radius2: typing.Any = 0.0,
    depth: typing.Any = 2.0,
    end_fill_type: typing.Any = "NGON",
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a conic mesh

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param vertices: Vertices
        :type vertices: typing.Any
        :param radius1: Radius 1
        :type radius1: typing.Any
        :param radius2: Radius 2
        :type radius2: typing.Any
        :param depth: Depth
        :type depth: typing.Any
        :param end_fill_type: Base Fill Type

    NOTHING
    Nothing -- Don't fill at all.

    NGON
    N-Gon -- Use n-gons.

    TRIFAN
    Triangle Fan -- Use triangle fans.
        :type end_fill_type: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_cube_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    size: typing.Any = 2.0,
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a cube mesh that consists of six square faces

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param size: Size
        :type size: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_cube_add_gizmo(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
    matrix: typing.Any = (
        (0.0, 0.0, 0.0, 0.0),
        (0.0, 0.0, 0.0, 0.0),
        (0.0, 0.0, 0.0, 0.0),
        (0.0, 0.0, 0.0, 0.0),
    ),
):
    """Construct a cube mesh

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
        :param matrix: Matrix
        :type matrix: typing.Any
    """

    ...

def primitive_cylinder_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    vertices: typing.Any = 32,
    radius: typing.Any = 1.0,
    depth: typing.Any = 2.0,
    end_fill_type: typing.Any = "NGON",
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a cylinder mesh

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param vertices: Vertices
        :type vertices: typing.Any
        :param radius: Radius
        :type radius: typing.Any
        :param depth: Depth
        :type depth: typing.Any
        :param end_fill_type: Cap Fill Type

    NOTHING
    Nothing -- Don't fill at all.

    NGON
    N-Gon -- Use n-gons.

    TRIFAN
    Triangle Fan -- Use triangle fans.
        :type end_fill_type: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_grid_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    x_subdivisions: typing.Any = 10,
    y_subdivisions: typing.Any = 10,
    size: typing.Any = 2.0,
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a subdivided plane mesh

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param x_subdivisions: X Subdivisions
        :type x_subdivisions: typing.Any
        :param y_subdivisions: Y Subdivisions
        :type y_subdivisions: typing.Any
        :param size: Size
        :type size: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_ico_sphere_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    subdivisions: typing.Any = 2,
    radius: typing.Any = 1.0,
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a spherical mesh that consists of equally sized triangles

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param subdivisions: Subdivisions
        :type subdivisions: typing.Any
        :param radius: Radius
        :type radius: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_monkey_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    size: typing.Any = 2.0,
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a Suzanne mesh

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param size: Size
        :type size: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_plane_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    size: typing.Any = 2.0,
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a filled planar mesh with 4 vertices

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param size: Size
        :type size: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def primitive_torus_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    major_segments: typing.Any = 48,
    minor_segments: typing.Any = 12,
    mode: typing.Any = "MAJOR_MINOR",
    major_radius: typing.Any = 1.0,
    minor_radius: typing.Any = 0.25,
    abso_major_rad: typing.Any = 1.25,
    abso_minor_rad: typing.Any = 0.75,
    generate_uvs: typing.Union[bool, typing.Any] = True,
):
    """Construct a torus mesh

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param align: Align

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location
        :type location: typing.Any
        :param rotation: Rotation
        :type rotation: typing.Any
        :param major_segments: Major Segments, Number of segments for the main ring of the torus
        :type major_segments: typing.Any
        :param minor_segments: Minor Segments, Number of segments for the minor ring of the torus
        :type minor_segments: typing.Any
        :param mode: Dimensions Mode

    MAJOR_MINOR
    Major/Minor -- Use the major/minor radii for torus dimensions.

    EXT_INT
    Exterior/Interior -- Use the exterior/interior radii for torus dimensions.
        :type mode: typing.Any
        :param major_radius: Major Radius, Radius from the origin to the center of the cross sections
        :type major_radius: typing.Any
        :param minor_radius: Minor Radius, Radius of the torus' cross section
        :type minor_radius: typing.Any
        :param abso_major_rad: Exterior Radius, Total Exterior Radius of the torus
        :type abso_major_rad: typing.Any
        :param abso_minor_rad: Interior Radius, Total Interior Radius of the torus
        :type abso_minor_rad: typing.Any
        :param generate_uvs: Generate UVs, Generate a default UV map
        :type generate_uvs: typing.Union[bool, typing.Any]
    """

    ...

def primitive_uv_sphere_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    segments: typing.Any = 32,
    ring_count: typing.Any = 16,
    radius: typing.Any = 1.0,
    calc_uvs: typing.Union[bool, typing.Any] = True,
    enter_editmode: typing.Union[bool, typing.Any] = False,
    align: typing.Any = "WORLD",
    location: typing.Any = (0.0, 0.0, 0.0),
    rotation: typing.Any = (0.0, 0.0, 0.0),
    scale: typing.Any = (0.0, 0.0, 0.0),
):
    """Construct a spherical mesh with quad faces, except for triangle faces at the top and bottom

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param segments: Segments
        :type segments: typing.Any
        :param ring_count: Rings
        :type ring_count: typing.Any
        :param radius: Radius
        :type radius: typing.Any
        :param calc_uvs: Generate UVs, Generate a default UV map
        :type calc_uvs: typing.Union[bool, typing.Any]
        :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
        :type enter_editmode: typing.Union[bool, typing.Any]
        :param align: Align, The alignment of the new object

    WORLD
    World -- Align the new object to the world.

    VIEW
    View -- Align the new object to the view.

    CURSOR
    3D Cursor -- Use the 3D cursor orientation for the new object.
        :type align: typing.Any
        :param location: Location, Location for the newly added object
        :type location: typing.Any
        :param rotation: Rotation, Rotation for the newly added object
        :type rotation: typing.Any
        :param scale: Scale, Scale for the newly added object
        :type scale: typing.Any
    """

    ...

def quads_convert_to_tris(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    quad_method: typing.Union[str, int] = "BEAUTY",
    ngon_method: typing.Union[str, int] = "BEAUTY",
):
    """Triangulate selected faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param quad_method: Quad Method, Method for splitting the quads into triangles
    :type quad_method: typing.Union[str, int]
    :param ngon_method: N-gon Method, Method for splitting the n-gons into triangles
    :type ngon_method: typing.Union[str, int]
    """

    ...

def region_to_loop(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Select boundary edges around the selected faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def remove_doubles(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    threshold: typing.Any = 0.0001,
    use_unselected: typing.Union[bool, typing.Any] = False,
    use_sharp_edge_from_normals: typing.Union[bool, typing.Any] = False,
):
    """Merge vertices based on their proximity

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param threshold: Merge Distance, Maximum distance between elements to merge
    :type threshold: typing.Any
    :param use_unselected: Unselected, Merge selected to other unselected vertices
    :type use_unselected: typing.Union[bool, typing.Any]
    :param use_sharp_edge_from_normals: Sharp Edges, Calculate sharp edges using custom normal data (when available)
    :type use_sharp_edge_from_normals: typing.Union[bool, typing.Any]
    """

    ...

def reveal(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    select: typing.Union[bool, typing.Any] = True,
):
    """Reveal all hidden vertices, edges and faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param select: Select
    :type select: typing.Union[bool, typing.Any]
    """

    ...

def rip(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mirror: typing.Union[bool, typing.Any] = False,
    use_proportional_edit: typing.Union[bool, typing.Any] = False,
    proportional_edit_falloff: typing.Union[str, int] = "SMOOTH",
    proportional_size: typing.Any = 1.0,
    use_proportional_connected: typing.Union[bool, typing.Any] = False,
    use_proportional_projected: typing.Union[bool, typing.Any] = False,
    release_confirm: typing.Union[bool, typing.Any] = False,
    use_accurate: typing.Union[bool, typing.Any] = False,
    use_fill: typing.Union[bool, typing.Any] = False,
):
    """Disconnect vertex or edges from connected geometry

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    :param use_proportional_edit: Proportional Editing
    :type use_proportional_edit: typing.Union[bool, typing.Any]
    :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
    :type proportional_edit_falloff: typing.Union[str, int]
    :param proportional_size: Proportional Size
    :type proportional_size: typing.Any
    :param use_proportional_connected: Connected
    :type use_proportional_connected: typing.Union[bool, typing.Any]
    :param use_proportional_projected: Projected (2D)
    :type use_proportional_projected: typing.Union[bool, typing.Any]
    :param release_confirm: Confirm on Release, Always confirm operation when releasing button
    :type release_confirm: typing.Union[bool, typing.Any]
    :param use_accurate: Accurate, Use accurate transformation
    :type use_accurate: typing.Union[bool, typing.Any]
    :param use_fill: Fill, Fill the ripped region
    :type use_fill: typing.Union[bool, typing.Any]
    """

    ...

def rip_edge(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    mirror: typing.Union[bool, typing.Any] = False,
    use_proportional_edit: typing.Union[bool, typing.Any] = False,
    proportional_edit_falloff: typing.Union[str, int] = "SMOOTH",
    proportional_size: typing.Any = 1.0,
    use_proportional_connected: typing.Union[bool, typing.Any] = False,
    use_proportional_projected: typing.Union[bool, typing.Any] = False,
    release_confirm: typing.Union[bool, typing.Any] = False,
    use_accurate: typing.Union[bool, typing.Any] = False,
):
    """Extend vertices along the edge closest to the cursor

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param mirror: Mirror Editing
    :type mirror: typing.Union[bool, typing.Any]
    :param use_proportional_edit: Proportional Editing
    :type use_proportional_edit: typing.Union[bool, typing.Any]
    :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
    :type proportional_edit_falloff: typing.Union[str, int]
    :param proportional_size: Proportional Size
    :type proportional_size: typing.Any
    :param use_proportional_connected: Connected
    :type use_proportional_connected: typing.Union[bool, typing.Any]
    :param use_proportional_projected: Projected (2D)
    :type use_proportional_projected: typing.Union[bool, typing.Any]
    :param release_confirm: Confirm on Release, Always confirm operation when releasing button
    :type release_confirm: typing.Union[bool, typing.Any]
    :param use_accurate: Accurate, Use accurate transformation
    :type use_accurate: typing.Union[bool, typing.Any]
    """

    ...

def rip_edge_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_rip_edge: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Extend vertices and move the result

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_rip_edge: Extend Vertices, Extend vertices along the edge closest to the cursor
    :type MESH_OT_rip_edge: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def rip_move(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    MESH_OT_rip: typing.Any = None,
    TRANSFORM_OT_translate: typing.Any = None,
):
    """Rip polygons and move the result

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param MESH_OT_rip: Rip, Disconnect vertex or edges from connected geometry
    :type MESH_OT_rip: typing.Any
    :param TRANSFORM_OT_translate: Move, Move selected items
    :type TRANSFORM_OT_translate: typing.Any
    """

    ...

def screw(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    steps: typing.Any = 9,
    turns: typing.Any = 1,
    center: typing.Any = (0.0, 0.0, 0.0),
    axis: typing.Any = (0.0, 0.0, 0.0),
):
    """Extrude selected vertices in screw-shaped rotation around the cursor in indicated viewport

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param steps: Steps, Steps
    :type steps: typing.Any
    :param turns: Turns, Turns
    :type turns: typing.Any
    :param center: Center, Center in global view space
    :type center: typing.Any
    :param axis: Axis, Axis in global view space
    :type axis: typing.Any
    """

    ...

def select_all(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    action: typing.Any = "TOGGLE",
):
    """(De)select all vertices, edges or faces

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param action: Action, Selection action to execute

    TOGGLE
    Toggle -- Toggle selection for all elements.

    SELECT
    Select -- Select all elements.

    DESELECT
    Deselect -- Deselect all elements.

    INVERT
    Invert -- Invert selection of all elements.
        :type action: typing.Any
    """

    ...

def select_axis(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    orientation: typing.Union[str, int] = "LOCAL",
    sign: typing.Any = "POS",
    axis: typing.Union[str, int] = "X",
    threshold: typing.Any = 0.0001,
):
    """Select all data in the mesh on a single axis

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param orientation: Axis Mode, Axis orientation
    :type orientation: typing.Union[str, int]
    :param sign: Axis Sign, Side to select
    :type sign: typing.Any
    :param axis: Axis, Select the axis to compare each vertex on
    :type axis: typing.Union[str, int]
    :param threshold: Threshold
    :type threshold: typing.Any
    """

    ...

def select_by_attribute(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Select elements based on the active boolean attribute

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def select_face_by_sides(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    number: typing.Any = 4,
    type: typing.Any = "EQUAL",
    extend: typing.Union[bool, typing.Any] = True,
):
    """Select vertices or faces by the number of face sides

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param number: Number of Vertices
    :type number: typing.Any
    :param type: Type, Type of comparison to make
    :type type: typing.Any
    :param extend: Extend, Extend the selection
    :type extend: typing.Union[bool, typing.Any]
    """

    ...

def select_interior_faces(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Select faces where all edges have more than 2 face users

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def select_less(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_face_step: typing.Union[bool, typing.Any] = True,
):
    """Deselect vertices, edges or faces at the boundary of each selection region

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_face_step: Face Step, Connected faces (instead of edges)
    :type use_face_step: typing.Union[bool, typing.Any]
    """

    ...

def select_linked(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    delimit: typing.Any = {'"SEAM"'},
):
    """Select all vertices connected to the current selection

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param delimit: Delimit, Delimit selected region
    :type delimit: typing.Any
    """

    ...

def select_linked_pick(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    deselect: typing.Union[bool, typing.Any] = False,
    delimit: typing.Any = {'"SEAM"'},
    object_index: typing.Any = -1,
    index: typing.Any = -1,
):
    """(De)select all vertices linked to the edge under the mouse cursor

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param deselect: Deselect
    :type deselect: typing.Union[bool, typing.Any]
    :param delimit: Delimit, Delimit selected region
    :type delimit: typing.Any
    :type object_index: typing.Any
    :type index: typing.Any
    """

    ...

def select_loose(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    extend: typing.Union[bool, typing.Any] = False,
):
    """Select loose geometry based on the selection mode

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param extend: Extend, Extend the selection
    :type extend: typing.Union[bool, typing.Any]
    """

    ...

def select_mirror(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    axis: typing.Any = {'"X"'},
    extend: typing.Union[bool, typing.Any] = False,
):
    """Select mesh items at mirrored locations

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param axis: Axis
    :type axis: typing.Any
    :param extend: Extend, Extend the existing selection
    :type extend: typing.Union[bool, typing.Any]
    """

    ...

def select_mode(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_extend: typing.Union[bool, typing.Any] = False,
    use_expand: typing.Union[bool, typing.Any] = False,
    type: typing.Union[str, int] = "VERT",
    action: typing.Any = "TOGGLE",
):
    """Change selection mode

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param use_extend: Extend
        :type use_extend: typing.Union[bool, typing.Any]
        :param use_expand: Expand
        :type use_expand: typing.Union[bool, typing.Any]
        :param type: Type
        :type type: typing.Union[str, int]
        :param action: Action, Selection action to execute

    DISABLE
    Disable -- Disable selected markers.

    ENABLE
    Enable -- Enable selected markers.

    TOGGLE
    Toggle -- Toggle disabled flag for selected markers.
        :type action: typing.Any
    """

    ...

def select_more(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_face_step: typing.Union[bool, typing.Any] = True,
):
    """Select more vertices, edges or faces connected to initial selection

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_face_step: Face Step, Connected faces (instead of edges)
    :type use_face_step: typing.Union[bool, typing.Any]
    """

    ...

def select_next_item(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Select the next element (using selection order)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def select_non_manifold(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    extend: typing.Union[bool, typing.Any] = True,
    use_wire: typing.Union[bool, typing.Any] = True,
    use_boundary: typing.Union[bool, typing.Any] = True,
    use_multi_face: typing.Union[bool, typing.Any] = True,
    use_non_contiguous: typing.Union[bool, typing.Any] = True,
    use_verts: typing.Union[bool, typing.Any] = True,
):
    """Select all non-manifold vertices or edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param extend: Extend, Extend the selection
    :type extend: typing.Union[bool, typing.Any]
    :param use_wire: Wire, Wire edges
    :type use_wire: typing.Union[bool, typing.Any]
    :param use_boundary: Boundaries, Boundary edges
    :type use_boundary: typing.Union[bool, typing.Any]
    :param use_multi_face: Multiple Faces, Edges shared by more than two faces
    :type use_multi_face: typing.Union[bool, typing.Any]
    :param use_non_contiguous: Non Contiguous, Edges between faces pointing in alternate directions
    :type use_non_contiguous: typing.Union[bool, typing.Any]
    :param use_verts: Vertices, Vertices connecting multiple face regions
    :type use_verts: typing.Union[bool, typing.Any]
    """

    ...

def select_nth(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    skip: typing.Any = 1,
    nth: typing.Any = 1,
    offset: typing.Any = 0,
):
    """Deselect every Nth element starting from the active vertex, edge or face

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param skip: Deselected, Number of deselected elements in the repetitive sequence
    :type skip: typing.Any
    :param nth: Selected, Number of selected elements in the repetitive sequence
    :type nth: typing.Any
    :param offset: Offset, Offset from the starting point
    :type offset: typing.Any
    """

    ...

def select_prev_item(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Select the previous element (using selection order)

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def select_random(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    ratio: typing.Any = 0.5,
    seed: typing.Any = 0,
    action: typing.Any = "SELECT",
):
    """Randomly select vertices

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param ratio: Ratio, Portion of items to select randomly
        :type ratio: typing.Any
        :param seed: Random Seed, Seed for the random number generator
        :type seed: typing.Any
        :param action: Action, Selection action to execute

    SELECT
    Select -- Select all elements.

    DESELECT
    Deselect -- Deselect all elements.
        :type action: typing.Any
    """

    ...

def select_similar(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    type: typing.Any = "VERT_NORMAL",
    compare: typing.Any = "EQUAL",
    threshold: typing.Any = 0.0,
):
    """Select similar vertices, edges or faces by property types

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param type: Type
    :type type: typing.Any
    :param compare: Compare
    :type compare: typing.Any
    :param threshold: Threshold
    :type threshold: typing.Any
    """

    ...

def select_similar_region(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Select similar face regions to the current selection

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def select_ungrouped(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    extend: typing.Union[bool, typing.Any] = False,
):
    """Select vertices without a group

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param extend: Extend, Extend the selection
    :type extend: typing.Union[bool, typing.Any]
    """

    ...

def separate(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    type: typing.Any = "SELECTED",
):
    """Separate selected geometry into a new mesh

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param type: Type
    :type type: typing.Any
    """

    ...

def set_normals_from_faces(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    keep_sharp: typing.Union[bool, typing.Any] = False,
):
    """Set the custom normals from the selected faces ones

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param keep_sharp: Keep Sharp Edges, Do not set sharp edges to face
    :type keep_sharp: typing.Union[bool, typing.Any]
    """

    ...

def set_sharpness_by_angle(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    angle: typing.Any = 0.523599,
    extend: typing.Union[bool, typing.Any] = False,
):
    """Set edge sharpness based on the angle between neighboring faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param angle: Angle
    :type angle: typing.Any
    :param extend: Extend, Add new sharp edges without clearing existing sharp edges
    :type extend: typing.Union[bool, typing.Any]
    """

    ...

def shape_propagate_to_all(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Apply selected vertex locations to all other shape keys

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def shortest_path_pick(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    edge_mode: typing.Any = "SELECT",
    use_face_step: typing.Union[bool, typing.Any] = False,
    use_topology_distance: typing.Union[bool, typing.Any] = False,
    use_fill: typing.Union[bool, typing.Any] = False,
    skip: typing.Any = 0,
    nth: typing.Any = 1,
    offset: typing.Any = 0,
    index: typing.Any = -1,
):
    """Select shortest path between two selections

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param edge_mode: Edge Tag, The edge flag to tag when selecting the shortest path
    :type edge_mode: typing.Any
    :param use_face_step: Face Stepping, Traverse connected faces (includes diagonals and edge-rings)
    :type use_face_step: typing.Union[bool, typing.Any]
    :param use_topology_distance: Topology Distance, Find the minimum number of steps, ignoring spatial distance
    :type use_topology_distance: typing.Union[bool, typing.Any]
    :param use_fill: Fill Region, Select all paths between the source/destination elements
    :type use_fill: typing.Union[bool, typing.Any]
    :param skip: Deselected, Number of deselected elements in the repetitive sequence
    :type skip: typing.Any
    :param nth: Selected, Number of selected elements in the repetitive sequence
    :type nth: typing.Any
    :param offset: Offset, Offset from the starting point
    :type offset: typing.Any
    :type index: typing.Any
    """

    ...

def shortest_path_select(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    edge_mode: typing.Any = "SELECT",
    use_face_step: typing.Union[bool, typing.Any] = False,
    use_topology_distance: typing.Union[bool, typing.Any] = False,
    use_fill: typing.Union[bool, typing.Any] = False,
    skip: typing.Any = 0,
    nth: typing.Any = 1,
    offset: typing.Any = 0,
):
    """Selected shortest path between two vertices/edges/faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param edge_mode: Edge Tag, The edge flag to tag when selecting the shortest path
    :type edge_mode: typing.Any
    :param use_face_step: Face Stepping, Traverse connected faces (includes diagonals and edge-rings)
    :type use_face_step: typing.Union[bool, typing.Any]
    :param use_topology_distance: Topology Distance, Find the minimum number of steps, ignoring spatial distance
    :type use_topology_distance: typing.Union[bool, typing.Any]
    :param use_fill: Fill Region, Select all paths between the source/destination elements
    :type use_fill: typing.Union[bool, typing.Any]
    :param skip: Deselected, Number of deselected elements in the repetitive sequence
    :type skip: typing.Any
    :param nth: Selected, Number of selected elements in the repetitive sequence
    :type nth: typing.Any
    :param offset: Offset, Offset from the starting point
    :type offset: typing.Any
    """

    ...

def smooth_normals(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    factor: typing.Any = 0.5,
):
    """Smooth custom normals based on adjacent vertex normals

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param factor: Factor, Specifies weight of smooth vs original normal
    :type factor: typing.Any
    """

    ...

def solidify(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    thickness: typing.Any = 0.01,
):
    """Create a solid skin by extruding, compensating for sharp angles

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param thickness: Thickness
    :type thickness: typing.Any
    """

    ...

def sort_elements(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    type: typing.Any = "VIEW_ZAXIS",
    elements: typing.Any = {'"VERT"'},
    reverse: typing.Union[bool, typing.Any] = False,
    seed: typing.Any = 0,
):
    """The order of selected vertices/edges/faces is modified, based on a given method

        :type override_context: typing.Union[dict, bpy.types.Context]
        :type execution_context: typing.Union[str, int]
        :type undo: bool
        :param type: Type, Type of reordering operation to apply

    VIEW_ZAXIS
    View Z Axis -- Sort selected elements from farthest to nearest one in current view.

    VIEW_XAXIS
    View X Axis -- Sort selected elements from left to right one in current view.

    CURSOR_DISTANCE
    Cursor Distance -- Sort selected elements from nearest to farthest from 3D cursor.

    MATERIAL
    Material -- Sort selected faces from smallest to greatest material index.

    SELECTED
    Selected -- Move all selected elements in first places, preserving their relative order.
    Warning: This will affect unselected elements' indices as well.

    RANDOMIZE
    Randomize -- Randomize order of selected elements.

    REVERSE
    Reverse -- Reverse current order of selected elements.
        :type type: typing.Any
        :param elements: Elements, Which elements to affect (vertices, edges and/or faces)
        :type elements: typing.Any
        :param reverse: Reverse, Reverse the sorting effect
        :type reverse: typing.Union[bool, typing.Any]
        :param seed: Seed, Seed for random-based operations
        :type seed: typing.Any
    """

    ...

def spin(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    steps: typing.Any = 12,
    dupli: typing.Union[bool, typing.Any] = False,
    angle: typing.Any = 1.5708,
    use_auto_merge: typing.Union[bool, typing.Any] = True,
    use_normal_flip: typing.Union[bool, typing.Any] = False,
    center: typing.Any = (0.0, 0.0, 0.0),
    axis: typing.Any = (0.0, 0.0, 0.0),
):
    """Extrude selected vertices in a circle around the cursor in indicated viewport

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param steps: Steps, Steps
    :type steps: typing.Any
    :param dupli: Use Duplicates
    :type dupli: typing.Union[bool, typing.Any]
    :param angle: Angle, Rotation for each step
    :type angle: typing.Any
    :param use_auto_merge: Auto Merge, Merge first/last when the angle is a full revolution
    :type use_auto_merge: typing.Union[bool, typing.Any]
    :param use_normal_flip: Flip Normals
    :type use_normal_flip: typing.Union[bool, typing.Any]
    :param center: Center, Center in global view space
    :type center: typing.Any
    :param axis: Axis, Axis in global view space
    :type axis: typing.Any
    """

    ...

def split(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Split off selected geometry from connected unselected geometry

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def split_normals(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Split custom normals of selected vertices

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def subdivide(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    number_cuts: typing.Any = 1,
    smoothness: typing.Any = 0.0,
    ngon: typing.Union[bool, typing.Any] = True,
    quadcorner: typing.Any = "STRAIGHT_CUT",
    fractal: typing.Any = 0.0,
    fractal_along_normal: typing.Any = 0.0,
    seed: typing.Any = 0,
):
    """Subdivide selected edges

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param number_cuts: Number of Cuts
    :type number_cuts: typing.Any
    :param smoothness: Smoothness, Smoothness factor
    :type smoothness: typing.Any
    :param ngon: Create N-Gons, When disabled, newly created faces are limited to 3 and 4 sided faces
    :type ngon: typing.Union[bool, typing.Any]
    :param quadcorner: Quad Corner Type, How to subdivide quad corners (anything other than Straight Cut will prevent n-gons)
    :type quadcorner: typing.Any
    :param fractal: Fractal, Fractal randomness factor
    :type fractal: typing.Any
    :param fractal_along_normal: Along Normal, Apply fractal displacement along normal only
    :type fractal_along_normal: typing.Any
    :param seed: Random Seed, Seed for the random number generator
    :type seed: typing.Any
    """

    ...

def subdivide_edgering(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    number_cuts: typing.Any = 10,
    interpolation: typing.Any = "PATH",
    smoothness: typing.Any = 1.0,
    profile_shape_factor: typing.Any = 0.0,
    profile_shape: typing.Union[str, int] = "SMOOTH",
):
    """Subdivide perpendicular edges to the selected edge-ring

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param number_cuts: Number of Cuts
    :type number_cuts: typing.Any
    :param interpolation: Interpolation, Interpolation method
    :type interpolation: typing.Any
    :param smoothness: Smoothness, Smoothness factor
    :type smoothness: typing.Any
    :param profile_shape_factor: Profile Factor, How much intermediary new edges are shrunk/expanded
    :type profile_shape_factor: typing.Any
    :param profile_shape: Profile Shape, Shape of the profile
    :type profile_shape: typing.Union[str, int]
    """

    ...

def symmetrize(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    direction: typing.Union[str, int] = "NEGATIVE_X",
    threshold: typing.Any = 0.0001,
):
    """Enforce symmetry (both form and topological) across an axis

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param direction: Direction, Which sides to copy from and to
    :type direction: typing.Union[str, int]
    :param threshold: Threshold, Limit for snap middle vertices to the axis center
    :type threshold: typing.Any
    """

    ...

def symmetry_snap(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    direction: typing.Union[str, int] = "NEGATIVE_X",
    threshold: typing.Any = 0.05,
    factor: typing.Any = 0.5,
    use_center: typing.Union[bool, typing.Any] = True,
):
    """Snap vertex pairs to their mirrored locations

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param direction: Direction, Which sides to copy from and to
    :type direction: typing.Union[str, int]
    :param threshold: Threshold, Distance within which matching vertices are searched
    :type threshold: typing.Any
    :param factor: Factor, Mix factor of the locations of the vertices
    :type factor: typing.Any
    :param use_center: Center, Snap middle vertices to the axis center
    :type use_center: typing.Union[bool, typing.Any]
    """

    ...

def tris_convert_to_quads(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    face_threshold: typing.Any = 0.698132,
    shape_threshold: typing.Any = 0.698132,
    uvs: typing.Union[bool, typing.Any] = False,
    vcols: typing.Union[bool, typing.Any] = False,
    seam: typing.Union[bool, typing.Any] = False,
    sharp: typing.Union[bool, typing.Any] = False,
    materials: typing.Union[bool, typing.Any] = False,
):
    """Join triangles into quads

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param face_threshold: Max Face Angle, Face angle limit
    :type face_threshold: typing.Any
    :param shape_threshold: Max Shape Angle, Shape angle limit
    :type shape_threshold: typing.Any
    :param uvs: Compare UVs
    :type uvs: typing.Union[bool, typing.Any]
    :param vcols: Compare Color Attributes
    :type vcols: typing.Union[bool, typing.Any]
    :param seam: Compare Seam
    :type seam: typing.Union[bool, typing.Any]
    :param sharp: Compare Sharp
    :type sharp: typing.Union[bool, typing.Any]
    :param materials: Compare Materials
    :type materials: typing.Union[bool, typing.Any]
    """

    ...

def unsubdivide(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    iterations: typing.Any = 2,
):
    """Un-subdivide selected edges and faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param iterations: Iterations, Number of times to un-subdivide
    :type iterations: typing.Any
    """

    ...

def uv_texture_add(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Add UV map

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def uv_texture_remove(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Remove UV map

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def uvs_reverse(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Flip direction of UV coordinates inside faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def uvs_rotate(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_ccw: typing.Union[bool, typing.Any] = False,
):
    """Rotate UV coordinates inside faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_ccw: Counter Clockwise
    :type use_ccw: typing.Union[bool, typing.Any]
    """

    ...

def vert_connect(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Connect selected vertices of faces, splitting the face

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def vert_connect_concave(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Make all faces convex

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def vert_connect_nonplanar(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    angle_limit: typing.Any = 0.0872665,
):
    """Split non-planar faces that exceed the angle threshold

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param angle_limit: Max Angle, Angle limit
    :type angle_limit: typing.Any
    """

    ...

def vert_connect_path(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
):
    """Connect vertices by their selection order, creating edges, splitting faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    """

    ...

def vertices_smooth(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    factor: typing.Any = 0.0,
    repeat: typing.Any = 1,
    xaxis: typing.Union[bool, typing.Any] = True,
    yaxis: typing.Union[bool, typing.Any] = True,
    zaxis: typing.Union[bool, typing.Any] = True,
    wait_for_input: typing.Union[bool, typing.Any] = True,
):
    """Flatten angles of selected vertices

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param factor: Smoothing, Smoothing factor
    :type factor: typing.Any
    :param repeat: Repeat, Number of times to smooth the mesh
    :type repeat: typing.Any
    :param xaxis: X-Axis, Smooth along the X axis
    :type xaxis: typing.Union[bool, typing.Any]
    :param yaxis: Y-Axis, Smooth along the Y axis
    :type yaxis: typing.Union[bool, typing.Any]
    :param zaxis: Z-Axis, Smooth along the Z axis
    :type zaxis: typing.Union[bool, typing.Any]
    :param wait_for_input: Wait for Input
    :type wait_for_input: typing.Union[bool, typing.Any]
    """

    ...

def vertices_smooth_laplacian(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    repeat: typing.Any = 1,
    lambda_factor: typing.Any = 1.0,
    lambda_border: typing.Any = 5e-05,
    use_x: typing.Union[bool, typing.Any] = True,
    use_y: typing.Union[bool, typing.Any] = True,
    use_z: typing.Union[bool, typing.Any] = True,
    preserve_volume: typing.Union[bool, typing.Any] = True,
):
    """Laplacian smooth of selected vertices

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param repeat: Number of iterations to smooth the mesh
    :type repeat: typing.Any
    :param lambda_factor: Lambda factor
    :type lambda_factor: typing.Any
    :param lambda_border: Lambda factor in border
    :type lambda_border: typing.Any
    :param use_x: Smooth X Axis, Smooth object along X axis
    :type use_x: typing.Union[bool, typing.Any]
    :param use_y: Smooth Y Axis, Smooth object along Y axis
    :type use_y: typing.Union[bool, typing.Any]
    :param use_z: Smooth Z Axis, Smooth object along Z axis
    :type use_z: typing.Union[bool, typing.Any]
    :param preserve_volume: Preserve Volume, Apply volume preservation after smooth
    :type preserve_volume: typing.Union[bool, typing.Any]
    """

    ...

def wireframe(
    override_context: typing.Union[dict, bpy.types.Context] = None,
    execution_context: typing.Union[str, int] = None,
    undo: bool = None,
    use_boundary: typing.Union[bool, typing.Any] = True,
    use_even_offset: typing.Union[bool, typing.Any] = True,
    use_relative_offset: typing.Union[bool, typing.Any] = False,
    use_replace: typing.Union[bool, typing.Any] = True,
    thickness: typing.Any = 0.01,
    offset: typing.Any = 0.01,
    use_crease: typing.Union[bool, typing.Any] = False,
    crease_weight: typing.Any = 0.01,
):
    """Create a solid wireframe from faces

    :type override_context: typing.Union[dict, bpy.types.Context]
    :type execution_context: typing.Union[str, int]
    :type undo: bool
    :param use_boundary: Boundary, Inset face boundaries
    :type use_boundary: typing.Union[bool, typing.Any]
    :param use_even_offset: Offset Even, Scale the offset to give more even thickness
    :type use_even_offset: typing.Union[bool, typing.Any]
    :param use_relative_offset: Offset Relative, Scale the offset by surrounding geometry
    :type use_relative_offset: typing.Union[bool, typing.Any]
    :param use_replace: Replace, Remove original faces
    :type use_replace: typing.Union[bool, typing.Any]
    :param thickness: Thickness
    :type thickness: typing.Any
    :param offset: Offset
    :type offset: typing.Any
    :param use_crease: Crease, Crease hub edges for an improved subdivision surface
    :type use_crease: typing.Union[bool, typing.Any]
    :param crease_weight: Crease Weight
    :type crease_weight: typing.Any
    """

    ...
