import sys
import typing
import bpy.context
import mathutils
import bl_ui.space_info
import bl_ui.properties_render
import bl_ui.properties_material
import bl_ui.space_node
import bl_ui.properties_physics_softbody
import bl_ui.properties_workspace
import bl_ui.properties_data_curve
import bl_ui.properties_scene
import bl_ui.properties_physics_dynamicpaint
import bl_ui.properties_data_lightprobe
import bl_ui.space_topbar
import bl_ui.properties_data_light
import bl_ui.properties_data_empty
import bl_ui.properties_collection
import bl_ui.properties_data_volume
import bl_ui.properties_output
import bl_ui.properties_data_shaderfx
import bl_ui.space_image
import bl_operators.wm
import bl_ui.space_view3d
import bl_ui.space_nla
import bl_ui.space_toolsystem_common
import bl_ui
import bl_ui.properties_world
import bl_ui.space_userpref
import bl_operators.clip
import bl_operators.anim
import bl_operators.view3d
import bl_ui.space_clip
import bl_ui.properties_view_layer
import bl_ui.space_properties
import bl_ui.properties_data_lattice
import bl_operators.spreadsheet
import bl_ui.properties_data_mesh
import bl_ui.properties_data_speaker
import bl_operators.file
import bl_ui.properties_material_gpencil
import bl_ui.properties_physics_field
import bl_ui.space_text
import bl_ui.properties_particle
import bl_ui.properties_data_gpencil
import bl_ui.properties_data_pointcloud
import bl_ui.properties_data_metaball
import bl_ui.space_console
import bl_ui.space_filebrowser
import bl_operators.assets
import bl_ui.properties_paint_common
import bl_ui.space_time
import bl_operators.freestyle
import bl_operators.userpref
import bl_ui.properties_data_modifier
import bl_ui.properties_data_hair
import bl_operators.object
import bl_ui.properties_data_camera
import bl_ui.space_outliner
import bl_ui.properties_data_armature
import bl_ui.space_graph
import bl_ui.properties_physics_fluid
import bl_ui.properties_physics_cloth
import bl_operators.node
import bl_ui.properties_physics_rigidbody_constraint
import bl_ui.properties_grease_pencil_common
import bl_ui.properties_constraint
import bl_operators.constraint
import bl_ui.properties_object
import bl_ui.space_toolsystem_toolbar
import bl_ui.space_statusbar
import bl_ui.properties_data_bone
import bl_ui.space_sequencer
import bl_ui.properties_texture
import bl_ui.space_view3d_toolbar
import bl_ui.space_dopesheet
import bl_ui.properties_physics_rigidbody
import bl_operators.presets
import bl_ui.space_spreadsheet
import bl_ui.properties_freestyle
import bl_ui.properties_mask_common
import bl_ui.properties_physics_common


class bpy_prop_collection:
    ''' built-in class used for all collections.
    '''

    def find(self, key: str) -> int:
        ''' Returns the index of a key in a collection or -1 when not found (matches Python's string find function of the same name).

        :param key: The identifier for the collection member.
        :type key: str
        :rtype: int
        :return: index of the key.
        '''
        pass

    def foreach_get(self, attr, seq):
        ''' This is a function to give fast access to attributes within a collection. Only works for 'basic type' properties (bool, int and float)! Multi-dimensional arrays (like array of vectors) will be flattened into seq.

        '''
        pass

    def foreach_set(self, attr, seq):
        ''' This is a function to give fast access to attributes within a collection. Only works for 'basic type' properties (bool, int and float)! seq must be uni-dimensional, multi-dimensional arrays (like array of vectors) will be re-created from it.

        '''
        pass

    def get(self, key: str, default=None):
        ''' Returns the value of the item assigned to key or default when not found (matches Python's dictionary function of the same name).

        :param key: The identifier for the collection member.
        :type key: str
        :param default: Optional argument for the value to return if *key* is not found.
        :type default: 
        '''
        pass

    def items(self) -> list:
        ''' Return the identifiers of collection members (matching Python's dict.items() functionality).

        :rtype: list
        :return: (key, value) pairs for each member of this collection.
        '''
        pass

    def keys(self) -> list:
        ''' Return the identifiers of collection members (matching Python's dict.keys() functionality).

        :rtype: list
        :return: the identifiers for each member of this collection.
        '''
        pass

    def values(self) -> list:
        ''' Return the values of collection (matching Python's dict.values() functionality).

        :rtype: list
        :return: the members of this collection.
        '''
        pass


class bpy_struct:
    ''' built-in base class for all classes in bpy.types.
    '''

    id_data = None
    ''' The bpy.types.ID object this datablock is from or None, (not available for all data types)'''

    def as_pointer(self) -> int:
        ''' Returns the memory address which holds a pointer to Blender's internal data

        :rtype: int
        :return: int (memory address).
        '''
        pass

    def driver_add(self, path: str, index: int = -1) -> typing.List['FCurve']:
        ''' Adds driver(s) to the given property

        :param path: path to the property to drive, analogous to the fcurve's data path.
        :type path: str
        :param index: array index of the property drive. Defaults to -1 for all indices or a single channel if the property is not an array.
        :type index: int
        :rtype: typing.List['FCurve']
        :return: The driver(s) added.
        '''
        pass

    def driver_remove(self, path: str, index: int = -1) -> bool:
        ''' Remove driver(s) from the given property

        :param path: path to the property to drive, analogous to the fcurve's data path.
        :type path: str
        :param index: array index of the property drive. Defaults to -1 for all indices or a single channel if the property is not an array.
        :type index: int
        :rtype: bool
        :return: Success of driver removal.
        '''
        pass

    def get(self, key: str, default=None):
        ''' Returns the value of the custom property assigned to key or default when not found (matches Python's dictionary function of the same name).

        :param key: The key associated with the custom property.
        :type key: str
        :param default: Optional argument for the value to return if *key* is not found.
        :type default: 
        '''
        pass

    def id_properties_clear(self):
        ''' 

        '''
        pass

    def id_properties_ensure(self):
        ''' 

        :return: the parent group for an RNA struct's custom IDProperties.
        '''
        pass

    def id_properties_ui(self, key):
        ''' 

        :param key: 
        :type key: 
        :return: Return an object used to manage an IDProperty's UI data.
        '''
        pass

    def is_property_hidden(self, property) -> bool:
        ''' Check if a property is hidden.

        :rtype: bool
        :return: True when the property is hidden.
        '''
        pass

    def is_property_overridable_library(self, property) -> bool:
        ''' Check if a property is overridable.

        :rtype: bool
        :return: True when the property is overridable.
        '''
        pass

    def is_property_readonly(self, property) -> bool:
        ''' Check if a property is readonly.

        :rtype: bool
        :return: True when the property is readonly (not writable).
        '''
        pass

    def is_property_set(self, property, ghost: bool = True) -> bool:
        ''' Check if a property is set, use for testing operator properties.

        :param ghost: Used for operators that re-run with previous settings. In this case the property is not marked as set, yet the value from the previous execution is used. In rare cases you may want to set this option to false.
        :type ghost: bool
        :rtype: bool
        :return: True when the property has been set.
        '''
        pass

    def items(self):
        ''' Returns the items of this objects custom properties (matches Python's dictionary function of the same name).

        :return: custom property key, value pairs.
        '''
        pass

    def keyframe_delete(self,
                        data_path: str,
                        index: int = -1,
                        frame: float = 'bpy.context.scene.frame_current',
                        group: str = "") -> bool:
        ''' Remove a keyframe from this properties fcurve.

        :param data_path: path to the property to remove a key, analogous to the fcurve's data path.
        :type data_path: str
        :param index: array index of the property to remove a key. Defaults to -1 removing all indices or a single channel if the property is not an array.
        :type index: int
        :param frame: The frame on which the keyframe is deleted, defaulting to the current frame.
        :type frame: float
        :param group: The name of the group the F-Curve should be added to if it doesn't exist yet.
        :type group: str
        :rtype: bool
        :return: Success of keyframe deletion.
        '''
        pass

    def keyframe_insert(self,
                        data_path: str,
                        index: int = -1,
                        frame: float = 'bpy.context.scene.frame_current',
                        group: str = "",
                        options='set()') -> bool:
        ''' Insert a keyframe on the property given, adding fcurves and animation data when necessary. This is the most simple example of inserting a keyframe from python. Note that when keying data paths which contain nested properties this must be done from the ID subclass, in this case the Armature rather than the bone.

        :param data_path: path to the property to key, analogous to the fcurve's data path.
        :type data_path: str
        :param index: array index of the property to key. Defaults to -1 which will key all indices or a single channel if the property is not an array.
        :type index: int
        :param frame: The frame on which the keyframe is inserted, defaulting to the current frame.
        :type frame: float
        :param group: The name of the group the F-Curve should be added to if it doesn't exist yet.
        :type group: str
        :param flag: 
        :type flag: set
        :param options: 
        :type options: 
        :rtype: bool
        :return: Success of keyframe insertion.
        '''
        pass

    def keys(self):
        ''' Returns the keys of this objects custom properties (matches Python's dictionary function of the same name).

        :return: custom property keys.
        '''
        pass

    def path_from_id(self, property: str = "") -> str:
        ''' Returns the data path from the ID to this object (string).

        :param property: Optional property name which can be used if the path is to a property of this object.
        :type property: str
        :rtype: str
        :return: bpy.types.bpy_struct.id_data to this struct and property (when given).
        '''
        pass

    def path_resolve(self, path: str, coerce: bool = True):
        ''' Returns the property from the path, raise an exception when not found.

        :param path: path which this property resolves.
        :type path: str
        :param coerce: optional argument, when True, the property will be converted into its Python representation.
        :type coerce: bool
        '''
        pass

    def pop(self, key: str, default=None):
        ''' Remove and return the value of the custom property assigned to key or default when not found (matches Python's dictionary function of the same name).

        :param key: The key associated with the custom property.
        :type key: str
        :param default: Optional argument for the value to return if *key* is not found.
        :type default: 
        '''
        pass

    def property_overridable_library_set(self, property, overridable) -> bool:
        ''' Define a property as overridable or not (only for custom properties!).

        :rtype: bool
        :return: True when the overridable status of the property was successfully set.
        '''
        pass

    def property_unset(self, property):
        ''' Unset a property, will use default value afterward.

        '''
        pass

    def type_recast(self) -> 'bpy_struct':
        ''' Return a new instance, this is needed because types such as textures can be changed at runtime.

        :rtype: 'bpy_struct'
        :return: a new instance of this object with the type initialized again.
        '''
        pass

    def values(self):
        ''' Returns the values of this objects custom properties (matches Python's dictionary function of the same name).

        :return: custom property values.
        '''
        pass


class AOV(bpy_struct):
    is_valid: bool = None
    ''' Is the name of the AOV conflicting

    :type: bool
    '''

    name: str = None
    ''' Name of the AOV

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Data type of the AOV

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AOVs(bpy_struct):
    ''' Collection of AOVs
    '''

    def add(self) -> 'AOV':
        ''' add

        :rtype: 'AOV'
        :return: Newly created AOV
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ActionFCurves(bpy_struct):
    ''' Collection of action F-Curves
    '''

    def new(self, data_path: str, index: int = 0,
            action_group: str = "") -> 'FCurve':
        ''' Add an F-Curve to the action

        :param data_path: Data Path, F-Curve data path to use
        :type data_path: str
        :param index: Index, Array index
        :type index: int
        :param action_group: Action Group, Acton group to add this F-Curve into
        :type action_group: str
        :rtype: 'FCurve'
        :return: Newly created F-Curve
        '''
        pass

    def find(self, data_path: str, index: int = 0) -> 'FCurve':
        ''' Find an F-Curve. Note that this function performs a linear scan of all F-Curves in the action.

        :param data_path: Data Path, F-Curve data path
        :type data_path: str
        :param index: Index, Array index
        :type index: int
        :rtype: 'FCurve'
        :return: The found F-Curve, or None if it doesn't exist
        '''
        pass

    def remove(self, fcurve: 'FCurve'):
        ''' Remove action group

        :param fcurve: F-Curve to remove
        :type fcurve: 'FCurve'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ActionGroup(bpy_struct):
    ''' Groups of F-Curves
    '''

    channels: typing.Union[typing.Dict[str, 'FCurve'], typing.
                           List['FCurve'], 'bpy_prop_collection'] = None
    ''' F-Curves in this group

    :type: typing.Union[typing.Dict[str, 'FCurve'], typing.List['FCurve'], 'bpy_prop_collection']
    '''

    color_set: typing.Union[int, str] = None
    ''' Custom color set to use

    :type: typing.Union[int, str]
    '''

    colors: 'ThemeBoneColorSet' = None
    ''' Copy of the colors associated with the group's color set

    :type: 'ThemeBoneColorSet'
    '''

    is_custom_color_set: bool = None
    ''' Color set is user-defined instead of a fixed theme color set

    :type: bool
    '''

    lock: bool = None
    ''' Action group is locked

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    select: bool = None
    ''' Action group is selected

    :type: bool
    '''

    show_expanded: bool = None
    ''' Action group is expanded except in graph editor

    :type: bool
    '''

    show_expanded_graph: bool = None
    ''' Action group is expanded in graph editor

    :type: bool
    '''

    use_pin: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ActionGroups(bpy_struct):
    ''' Collection of action groups
    '''

    def new(self, name: str) -> 'ActionGroup':
        ''' Create a new action group and add it to the action

        :param name: New name for the action group
        :type name: str
        :rtype: 'ActionGroup'
        :return: Newly created action group
        '''
        pass

    def remove(self, action_group: 'ActionGroup'):
        ''' Remove action group

        :param action_group: Action group to remove
        :type action_group: 'ActionGroup'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ActionPoseMarkers(bpy_struct):
    ''' Collection of timeline markers
    '''

    active: 'TimelineMarker' = None
    ''' Active pose marker for this action

    :type: 'TimelineMarker'
    '''

    active_index: int = None
    ''' Index of active pose marker

    :type: int
    '''

    def new(self, name: str) -> 'TimelineMarker':
        ''' Add a pose marker to the action

        :param name: New name for the marker (not unique)
        :type name: str
        :rtype: 'TimelineMarker'
        :return: Newly created marker
        '''
        pass

    def remove(self, marker: 'TimelineMarker'):
        ''' Remove a timeline marker

        :param marker: Timeline marker to remove
        :type marker: 'TimelineMarker'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Addon(bpy_struct):
    ''' Python add-ons to be loaded automatically
    '''

    module: str = None
    ''' Module name

    :type: str
    '''

    preferences: 'AddonPreferences' = None
    ''' 

    :type: 'AddonPreferences'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AddonPreferences(bpy_struct):
    bl_idname: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Addons(bpy_struct):
    ''' Collection of add-ons
    '''

    @classmethod
    def new(cls) -> 'Addon':
        ''' Add a new add-on

        :rtype: 'Addon'
        :return: Add-on data
        '''
        pass

    @classmethod
    def remove(cls, addon: 'Addon'):
        ''' Remove add-on

        :param addon: Add-on to remove
        :type addon: 'Addon'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AnimData(bpy_struct):
    ''' Animation data for data-block
    '''

    action: 'Action' = None
    ''' Active Action for this data-block

    :type: 'Action'
    '''

    action_blend_type: typing.Union[int, str] = None
    ''' Method used for combining Active Action's result with result of NLA stack * REPLACE Replace -- The strip values replace the accumulated results by amount specified by influence. * COMBINE Combine -- The strip values are combined with accumulated results by appropriately using addition, multiplication, or quaternion math, based on channel type. * ADD Add -- Weighted result of strip is added to the accumulated results. * SUBTRACT Subtract -- Weighted result of strip is removed from the accumulated results. * MULTIPLY Multiply -- Weighted result of strip is multiplied with the accumulated results.

    :type: typing.Union[int, str]
    '''

    action_extrapolation: typing.Union[int, str] = None
    ''' Action to take for gaps past the Active Action's range (when evaluating with NLA) * NOTHING Nothing -- Strip has no influence past its extents. * HOLD Hold -- Hold the first frame if no previous strips in track, and always hold last frame. * HOLD_FORWARD Hold Forward -- Only hold last frame.

    :type: typing.Union[int, str]
    '''

    action_influence: float = None
    ''' Amount the Active Action contributes to the result of the NLA stack

    :type: float
    '''

    drivers: typing.Union[typing.Dict[str, 'FCurve'], typing.List['FCurve'],
                          'bpy_prop_collection', 'AnimDataDrivers'] = None
    ''' The Drivers/Expressions for this data-block

    :type: typing.Union[typing.Dict[str, 'FCurve'], typing.List['FCurve'], 'bpy_prop_collection', 'AnimDataDrivers']
    '''

    nla_tracks: typing.Union[typing.Dict[str, 'NlaTrack'], typing.
                             List['NlaTrack'], 'bpy_prop_collection',
                             'NlaTracks'] = None
    ''' NLA Tracks (i.e. Animation Layers)

    :type: typing.Union[typing.Dict[str, 'NlaTrack'], typing.List['NlaTrack'], 'bpy_prop_collection', 'NlaTracks']
    '''

    use_nla: bool = None
    ''' NLA stack is evaluated when evaluating this block

    :type: bool
    '''

    use_pin: bool = None
    ''' 

    :type: bool
    '''

    use_tweak_mode: bool = None
    ''' Whether to enable or disable tweak mode in NLA

    :type: bool
    '''

    def nla_tweak_strip_time_to_scene(self, frame: float,
                                      invert: bool = False) -> float:
        ''' Convert a time value from the local time of the tweaked strip to scene time, exactly as done by built-in key editing tools. Returns the input time unchanged if not tweaking.

        :param frame: Input time
        :type frame: float
        :param invert: Invert, Convert scene time to action time
        :type invert: bool
        :rtype: float
        :return: Converted time
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AnimDataDrivers(bpy_struct):
    ''' Collection of Driver F-Curves
    '''

    def new(self, data_path: str, index: int = 0) -> 'FCurve':
        ''' new

        :param data_path: Data Path, F-Curve data path to use
        :type data_path: str
        :param index: Index, Array index
        :type index: int
        :rtype: 'FCurve'
        :return: Newly Driver F-Curve
        '''
        pass

    def remove(self, driver: 'FCurve'):
        ''' remove

        :param driver: 
        :type driver: 'FCurve'
        '''
        pass

    def from_existing(self, src_driver: 'FCurve' = None) -> 'FCurve':
        ''' Add a new driver given an existing one

        :param src_driver: Existing Driver F-Curve to use as template for a new one
        :type src_driver: 'FCurve'
        :rtype: 'FCurve'
        :return: New Driver F-Curve
        '''
        pass

    def find(self, data_path: str, index: int = 0) -> 'FCurve':
        ''' Find a driver F-Curve. Note that this function performs a linear scan of all driver F-Curves.

        :param data_path: Data Path, F-Curve data path
        :type data_path: str
        :param index: Index, Array index
        :type index: int
        :rtype: 'FCurve'
        :return: The found F-Curve, or None if it doesn't exist
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AnimViz(bpy_struct):
    ''' Settings for the visualization of motion
    '''

    motion_path: 'AnimVizMotionPaths' = None
    ''' Motion Path settings for visualization

    :type: 'AnimVizMotionPaths'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AnimVizMotionPaths(bpy_struct):
    ''' Motion Path settings for animation visualization
    '''

    bake_location: typing.Union[int, str] = None
    ''' When calculating Bone Paths, use Head or Tips * HEADS Heads -- Calculate bone paths from heads. * TAILS Tails -- Calculate bone paths from tails.

    :type: typing.Union[int, str]
    '''

    frame_after: int = None
    ''' Number of frames to show after the current frame (only for 'Around Current Frame' Onion-skinning method)

    :type: int
    '''

    frame_before: int = None
    ''' Number of frames to show before the current frame (only for 'Around Current Frame' Onion-skinning method)

    :type: int
    '''

    frame_end: int = None
    ''' End frame of range of paths to display/calculate (not for 'Around Current Frame' Onion-skinning method)

    :type: int
    '''

    frame_start: int = None
    ''' Starting frame of range of paths to display/calculate (not for 'Around Current Frame' Onion-skinning method)

    :type: int
    '''

    frame_step: int = None
    ''' Number of frames between paths shown (not for 'On Keyframes' Onion-skinning method)

    :type: int
    '''

    has_motion_paths: bool = None
    ''' Are there any bone paths that will need updating (read-only)

    :type: bool
    '''

    show_frame_numbers: bool = None
    ''' Show frame numbers on Motion Paths

    :type: bool
    '''

    show_keyframe_action_all: bool = None
    ''' For bone motion paths, search whole Action for keyframes instead of in group with matching name only (is slower)

    :type: bool
    '''

    show_keyframe_highlight: bool = None
    ''' Emphasize position of keyframes on Motion Paths

    :type: bool
    '''

    show_keyframe_numbers: bool = None
    ''' Show frame numbers of Keyframes on Motion Paths

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Type of range to show for Motion Paths * CURRENT_FRAME Around Frame -- Display Paths of poses within a fixed number of frames around the current frame. * RANGE In Range -- Display Paths of poses within specified range.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AnyType(bpy_struct):
    ''' RNA type used for pointers to any possible data
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Area(bpy_struct):
    ''' Area in a subdivided screen, containing an editor
    '''

    height: int = None
    ''' Area height

    :type: int
    '''

    regions: typing.Union[typing.Dict[str, 'Region'], typing.
                          List['Region'], 'bpy_prop_collection'] = None
    ''' Regions this area is subdivided in

    :type: typing.Union[typing.Dict[str, 'Region'], typing.List['Region'], 'bpy_prop_collection']
    '''

    show_menus: bool = None
    ''' Show menus in the header

    :type: bool
    '''

    spaces: typing.Union[typing.Dict[str, 'Space'], typing.List['Space'],
                         'bpy_prop_collection', 'AreaSpaces'] = None
    ''' Spaces contained in this area, the first being the active space (NOTE: Useful for example to restore a previously used 3D view space in a certain area to get the old view orientation)

    :type: typing.Union[typing.Dict[str, 'Space'], typing.List['Space'], 'bpy_prop_collection', 'AreaSpaces']
    '''

    type: typing.Union[int, str] = None
    ''' Current editor type for this area * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.

    :type: typing.Union[int, str]
    '''

    ui_type: typing.Union[int, str] = None
    ''' Current editor type for this area

    :type: typing.Union[int, str]
    '''

    width: int = None
    ''' Area width

    :type: int
    '''

    x: int = None
    ''' The window relative vertical location of the area

    :type: int
    '''

    y: int = None
    ''' The window relative horizontal location of the area

    :type: int
    '''

    def tag_redraw(self):
        ''' tag_redraw

        '''
        pass

    def header_text_set(self, text: str):
        ''' Set the header status text

        :param text: Text, New string for the header, None clears the text
        :type text: str
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AreaSpaces(bpy_struct):
    ''' Collection of spaces
    '''

    active: 'Space' = None
    ''' Space currently being displayed in this area

    :type: 'Space'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArmatureBones(bpy_struct):
    ''' Collection of armature bones
    '''

    active: 'Bone' = None
    ''' Armature's active bone

    :type: 'Bone'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArmatureConstraintTargets(bpy_struct):
    ''' Collection of target bones and weights
    '''

    def new(self) -> 'ConstraintTargetBone':
        ''' Add a new target to the constraint

        :rtype: 'ConstraintTargetBone'
        :return: New target bone
        '''
        pass

    def remove(self, target: 'ConstraintTargetBone'):
        ''' Delete target from the constraint

        :param target: Target to remove
        :type target: 'ConstraintTargetBone'
        '''
        pass

    def clear(self):
        ''' Delete all targets from object

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArmatureEditBones(bpy_struct):
    ''' Collection of armature edit bones
    '''

    active: 'EditBone' = None
    ''' Armatures active edit bone

    :type: 'EditBone'
    '''

    def new(self, name: str) -> 'EditBone':
        ''' Add a new bone

        :param name: New name for the bone
        :type name: str
        :rtype: 'EditBone'
        :return: Newly created edit bone
        '''
        pass

    def remove(self, bone: 'EditBone'):
        ''' Remove an existing bone from the armature

        :param bone: EditBone to remove
        :type bone: 'EditBone'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AssetLibraryReference(bpy_struct):
    ''' Identifier to refer to the asset library
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AssetMetaData(bpy_struct):
    ''' Additional data stored for an asset data-block
    '''

    active_tag: int = None
    ''' Index of the tag set for editing

    :type: int
    '''

    author: str = None
    ''' Name of the creator of the asset

    :type: str
    '''

    catalog_id: str = None
    ''' Identifier for the asset's catalog, used by Blender to look up the asset's catalog path. Must be a UUID according to RFC4122

    :type: str
    '''

    catalog_simple_name: str = None
    ''' Simple name of the asset's catalog, for debugging and data recovery purposes

    :type: str
    '''

    description: str = None
    ''' A description of the asset to be displayed for the user

    :type: str
    '''

    tags: typing.Union[typing.Dict[str, 'AssetTag'], typing.List['AssetTag'],
                       'bpy_prop_collection', 'AssetTags'] = None
    ''' Custom tags (name tokens) for the asset, used for filtering and general asset management

    :type: typing.Union[typing.Dict[str, 'AssetTag'], typing.List['AssetTag'], 'bpy_prop_collection', 'AssetTags']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AssetTag(bpy_struct):
    ''' User defined tag (name token)
    '''

    name: str = None
    ''' The identifier that makes up this tag

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AssetTags(bpy_struct):
    ''' Collection of custom asset tags
    '''

    def new(self, name: str, skip_if_exists: bool = False) -> 'AssetTag':
        ''' Add a new tag to this asset

        :param name: Name
        :type name: str
        :param skip_if_exists: Skip if Exists, Do not add a new tag if one of the same type already exists
        :type skip_if_exists: bool
        :rtype: 'AssetTag'
        :return: New tag
        '''
        pass

    def remove(self, tag: 'AssetTag'):
        ''' Remove an existing tag from this asset

        :param tag: Removed tag
        :type tag: 'AssetTag'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Attribute(bpy_struct):
    ''' Geometry attribute
    '''

    data_type: typing.Union[int, str] = None
    ''' Type of data stored in attribute * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    domain: typing.Union[int, str] = None
    ''' Domain of the Attribute * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the Attribute

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AttributeGroup(bpy_struct):
    ''' Group of geometry attributes
    '''

    active: 'Attribute' = None
    ''' Active attribute

    :type: 'Attribute'
    '''

    active_index: int = None
    ''' 

    :type: int
    '''

    def new(self, name: str, type: typing.Union[int, str],
            domain: typing.Union[int, str]) -> 'Attribute':
        ''' Add an attribute

        :param name: Attribute name
        :type name: str
        :param type: Type, Attribute type * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.
        :type type: typing.Union[int, str]
        :param domain: Domain, Type of element that attribute is stored on * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.
        :type domain: typing.Union[int, str]
        :rtype: 'Attribute'
        :return: New geometry attribute
        '''
        pass

    def remove(self, attribute: 'Attribute'):
        ''' Remove an attribute

        :param attribute: Geometry Attribute
        :type attribute: 'Attribute'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BakeSettings(bpy_struct):
    ''' Bake data for a Scene data-block
    '''

    cage_extrusion: float = None
    ''' Inflate the active object by the specified distance for baking. This helps matching to points nearer to the outside of the selected object meshes

    :type: float
    '''

    cage_object: 'Object' = None
    ''' Object to use as cage instead of calculating the cage from the active object with cage extrusion

    :type: 'Object'
    '''

    filepath: str = None
    ''' Image filepath to use when saving externally

    :type: str
    '''

    height: int = None
    ''' Vertical dimension of the baking map

    :type: int
    '''

    image_settings: 'ImageFormatSettings' = None
    ''' 

    :type: 'ImageFormatSettings'
    '''

    margin: int = None
    ''' Extends the baked result as a post process filter

    :type: int
    '''

    max_ray_distance: float = None
    ''' The maximum ray distance for matching points between the active and selected objects. If zero, there is no limit

    :type: float
    '''

    normal_b: typing.Union[int, str] = None
    ''' Axis to bake in blue channel

    :type: typing.Union[int, str]
    '''

    normal_g: typing.Union[int, str] = None
    ''' Axis to bake in green channel

    :type: typing.Union[int, str]
    '''

    normal_r: typing.Union[int, str] = None
    ''' Axis to bake in red channel

    :type: typing.Union[int, str]
    '''

    normal_space: typing.Union[int, str] = None
    ''' Choose normal space for baking * OBJECT Object -- Bake the normals in object space. * TANGENT Tangent -- Bake the normals in tangent space.

    :type: typing.Union[int, str]
    '''

    pass_filter: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Passes to include in the active baking pass

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    save_mode: typing.Union[int, str] = None
    ''' Where to save baked image textures * INTERNAL Internal -- Save the baking map in an internal image data-block. * EXTERNAL External -- Save the baking map in an external file.

    :type: typing.Union[int, str]
    '''

    target: typing.Union[int, str] = None
    ''' Where to output the baked map * IMAGE_TEXTURES Image Textures -- Bake to image data-blocks associated with active image texture nodes in materials. * VERTEX_COLORS Vertex Colors -- Bake to active vertex color layer on meshes.

    :type: typing.Union[int, str]
    '''

    use_automatic_name: bool = None
    ''' Automatically name the output file with the pass type (external only)

    :type: bool
    '''

    use_cage: bool = None
    ''' Cast rays to active object from a cage

    :type: bool
    '''

    use_clear: bool = None
    ''' Clear Images before baking (internal only)

    :type: bool
    '''

    use_pass_color: bool = None
    ''' Color the pass

    :type: bool
    '''

    use_pass_diffuse: bool = None
    ''' Add diffuse contribution

    :type: bool
    '''

    use_pass_direct: bool = None
    ''' Add direct lighting contribution

    :type: bool
    '''

    use_pass_emit: bool = None
    ''' Add emission contribution

    :type: bool
    '''

    use_pass_glossy: bool = None
    ''' Add glossy contribution

    :type: bool
    '''

    use_pass_indirect: bool = None
    ''' Add indirect lighting contribution

    :type: bool
    '''

    use_pass_transmission: bool = None
    ''' Add transmission contribution

    :type: bool
    '''

    use_selected_to_active: bool = None
    ''' Bake shading on the surface of selected objects to the active object

    :type: bool
    '''

    use_split_materials: bool = None
    ''' Split external images per material (external only)

    :type: bool
    '''

    width: int = None
    ''' Horizontal dimension of the baking map

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BezierSplinePoint(bpy_struct):
    ''' Bezier curve point with two handles
    '''

    co: typing.List[float] = None
    ''' Coordinates of the control point

    :type: typing.List[float]
    '''

    handle_left: typing.List[float] = None
    ''' Coordinates of the first handle

    :type: typing.List[float]
    '''

    handle_left_type: typing.Union[int, str] = None
    ''' Handle types

    :type: typing.Union[int, str]
    '''

    handle_right: typing.List[float] = None
    ''' Coordinates of the second handle

    :type: typing.List[float]
    '''

    handle_right_type: typing.Union[int, str] = None
    ''' Handle types

    :type: typing.Union[int, str]
    '''

    hide: bool = None
    ''' Visibility status

    :type: bool
    '''

    radius: float = None
    ''' Radius for beveling

    :type: float
    '''

    select_control_point: bool = None
    ''' Control point selection status

    :type: bool
    '''

    select_left_handle: bool = None
    ''' Handle 1 selection status

    :type: bool
    '''

    select_right_handle: bool = None
    ''' Handle 2 selection status

    :type: bool
    '''

    tilt: float = None
    ''' Tilt in 3D View

    :type: float
    '''

    weight_softbody: float = None
    ''' Softbody goal weight

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendData(bpy_struct):
    ''' Main data structure representing a .blend file and all its data-blocks
    '''

    actions: typing.Union[typing.Dict[str, 'Action'], typing.List['Action'],
                          'bpy_prop_collection', 'BlendDataActions'] = None
    ''' Action data-blocks

    :type: typing.Union[typing.Dict[str, 'Action'], typing.List['Action'], 'bpy_prop_collection', 'BlendDataActions']
    '''

    armatures: typing.Union[typing.Dict[str, 'Armature'], typing.
                            List['Armature'], 'bpy_prop_collection',
                            'BlendDataArmatures'] = None
    ''' Armature data-blocks

    :type: typing.Union[typing.Dict[str, 'Armature'], typing.List['Armature'], 'bpy_prop_collection', 'BlendDataArmatures']
    '''

    brushes: typing.Union[typing.Dict[str, 'Brush'], typing.List['Brush'],
                          'bpy_prop_collection', 'BlendDataBrushes'] = None
    ''' Brush data-blocks

    :type: typing.Union[typing.Dict[str, 'Brush'], typing.List['Brush'], 'bpy_prop_collection', 'BlendDataBrushes']
    '''

    cache_files: typing.Union[typing.Dict[str, 'CacheFile'], typing.
                              List['CacheFile'], 'bpy_prop_collection',
                              'BlendDataCacheFiles'] = None
    ''' Cache Files data-blocks

    :type: typing.Union[typing.Dict[str, 'CacheFile'], typing.List['CacheFile'], 'bpy_prop_collection', 'BlendDataCacheFiles']
    '''

    cameras: typing.Union[typing.Dict[str, 'Camera'], typing.List['Camera'],
                          'bpy_prop_collection', 'BlendDataCameras'] = None
    ''' Camera data-blocks

    :type: typing.Union[typing.Dict[str, 'Camera'], typing.List['Camera'], 'bpy_prop_collection', 'BlendDataCameras']
    '''

    collections: typing.Union[typing.Dict[str, 'Collection'], typing.
                              List['Collection'], 'bpy_prop_collection',
                              'BlendDataCollections'] = None
    ''' Collection data-blocks

    :type: typing.Union[typing.Dict[str, 'Collection'], typing.List['Collection'], 'bpy_prop_collection', 'BlendDataCollections']
    '''

    curves: typing.Union[typing.Dict[str, 'Curve'], typing.List['Curve'],
                         'bpy_prop_collection', 'BlendDataCurves'] = None
    ''' Curve data-blocks

    :type: typing.Union[typing.Dict[str, 'Curve'], typing.List['Curve'], 'bpy_prop_collection', 'BlendDataCurves']
    '''

    filepath: str = None
    ''' Path to the .blend file

    :type: str
    '''

    fonts: typing.Union[typing.Dict[str, 'VectorFont'], typing.
                        List['VectorFont'], 'bpy_prop_collection',
                        'BlendDataFonts'] = None
    ''' Vector font data-blocks

    :type: typing.Union[typing.Dict[str, 'VectorFont'], typing.List['VectorFont'], 'bpy_prop_collection', 'BlendDataFonts']
    '''

    grease_pencils: typing.Union[typing.Dict[str, 'GreasePencil'], typing.
                                 List['GreasePencil'], 'bpy_prop_collection',
                                 'BlendDataGreasePencils'] = None
    ''' Grease Pencil data-blocks

    :type: typing.Union[typing.Dict[str, 'GreasePencil'], typing.List['GreasePencil'], 'bpy_prop_collection', 'BlendDataGreasePencils']
    '''

    hairs: typing.Union[typing.Dict[str, 'Hair'], typing.List['Hair'],
                        'bpy_prop_collection', 'BlendDataHairs'] = None
    ''' Hair data-blocks

    :type: typing.Union[typing.Dict[str, 'Hair'], typing.List['Hair'], 'bpy_prop_collection', 'BlendDataHairs']
    '''

    images: typing.Union[typing.Dict[str, 'Image'], typing.List['Image'],
                         'bpy_prop_collection', 'BlendDataImages'] = None
    ''' Image data-blocks

    :type: typing.Union[typing.Dict[str, 'Image'], typing.List['Image'], 'bpy_prop_collection', 'BlendDataImages']
    '''

    is_dirty: bool = None
    ''' Have recent edits been saved to disk

    :type: bool
    '''

    is_saved: bool = None
    ''' Has the current session been saved to disk as a .blend file

    :type: bool
    '''

    lattices: typing.Union[typing.Dict[str, 'Lattice'], typing.List['Lattice'],
                           'bpy_prop_collection', 'BlendDataLattices'] = None
    ''' Lattice data-blocks

    :type: typing.Union[typing.Dict[str, 'Lattice'], typing.List['Lattice'], 'bpy_prop_collection', 'BlendDataLattices']
    '''

    libraries: typing.Union[typing.Dict[str, 'Library'], typing.
                            List['Library'], 'bpy_prop_collection',
                            'BlendDataLibraries'] = None
    ''' Library data-blocks

    :type: typing.Union[typing.Dict[str, 'Library'], typing.List['Library'], 'bpy_prop_collection', 'BlendDataLibraries']
    '''

    lightprobes: typing.Union[typing.Dict[str, 'LightProbe'], typing.
                              List['LightProbe'], 'bpy_prop_collection',
                              'BlendDataProbes'] = None
    ''' Light Probe data-blocks

    :type: typing.Union[typing.Dict[str, 'LightProbe'], typing.List['LightProbe'], 'bpy_prop_collection', 'BlendDataProbes']
    '''

    lights: typing.Union[typing.Dict[str, 'Light'], typing.List['Light'],
                         'bpy_prop_collection', 'BlendDataLights'] = None
    ''' Light data-blocks

    :type: typing.Union[typing.Dict[str, 'Light'], typing.List['Light'], 'bpy_prop_collection', 'BlendDataLights']
    '''

    linestyles: typing.Union[typing.Dict[str, 'FreestyleLineStyle'], typing.
                             List['FreestyleLineStyle'], 'bpy_prop_collection',
                             'BlendDataLineStyles'] = None
    ''' Line Style data-blocks

    :type: typing.Union[typing.Dict[str, 'FreestyleLineStyle'], typing.List['FreestyleLineStyle'], 'bpy_prop_collection', 'BlendDataLineStyles']
    '''

    masks: typing.Union[typing.Dict[str, 'Mask'], typing.List['Mask'],
                        'bpy_prop_collection', 'BlendDataMasks'] = None
    ''' Masks data-blocks

    :type: typing.Union[typing.Dict[str, 'Mask'], typing.List['Mask'], 'bpy_prop_collection', 'BlendDataMasks']
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'BlendDataMaterials'] = None
    ''' Material data-blocks

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'BlendDataMaterials']
    '''

    meshes: typing.Union[typing.Dict[str, 'Mesh'], typing.List['Mesh'],
                         'bpy_prop_collection', 'BlendDataMeshes'] = None
    ''' Mesh data-blocks

    :type: typing.Union[typing.Dict[str, 'Mesh'], typing.List['Mesh'], 'bpy_prop_collection', 'BlendDataMeshes']
    '''

    metaballs: typing.Union[typing.Dict[str, 'MetaBall'], typing.
                            List['MetaBall'], 'bpy_prop_collection',
                            'BlendDataMetaBalls'] = None
    ''' Metaball data-blocks

    :type: typing.Union[typing.Dict[str, 'MetaBall'], typing.List['MetaBall'], 'bpy_prop_collection', 'BlendDataMetaBalls']
    '''

    movieclips: typing.Union[typing.Dict[str, 'MovieClip'], typing.
                             List['MovieClip'], 'bpy_prop_collection',
                             'BlendDataMovieClips'] = None
    ''' Movie Clip data-blocks

    :type: typing.Union[typing.Dict[str, 'MovieClip'], typing.List['MovieClip'], 'bpy_prop_collection', 'BlendDataMovieClips']
    '''

    node_groups: typing.Union[typing.Dict[str, 'NodeTree'], typing.
                              List['NodeTree'], 'bpy_prop_collection',
                              'BlendDataNodeTrees'] = None
    ''' Node group data-blocks

    :type: typing.Union[typing.Dict[str, 'NodeTree'], typing.List['NodeTree'], 'bpy_prop_collection', 'BlendDataNodeTrees']
    '''

    objects: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'],
                          'bpy_prop_collection', 'BlendDataObjects'] = None
    ''' Object data-blocks

    :type: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'], 'bpy_prop_collection', 'BlendDataObjects']
    '''

    paint_curves: typing.Union[typing.Dict[str, 'PaintCurve'], typing.
                               List['PaintCurve'], 'bpy_prop_collection',
                               'BlendDataPaintCurves'] = None
    ''' Paint Curves data-blocks

    :type: typing.Union[typing.Dict[str, 'PaintCurve'], typing.List['PaintCurve'], 'bpy_prop_collection', 'BlendDataPaintCurves']
    '''

    palettes: typing.Union[typing.Dict[str, 'Palette'], typing.List['Palette'],
                           'bpy_prop_collection', 'BlendDataPalettes'] = None
    ''' Palette data-blocks

    :type: typing.Union[typing.Dict[str, 'Palette'], typing.List['Palette'], 'bpy_prop_collection', 'BlendDataPalettes']
    '''

    particles: typing.Union[typing.Dict[str, 'ParticleSettings'], typing.
                            List['ParticleSettings'], 'bpy_prop_collection',
                            'BlendDataParticles'] = None
    ''' Particle data-blocks

    :type: typing.Union[typing.Dict[str, 'ParticleSettings'], typing.List['ParticleSettings'], 'bpy_prop_collection', 'BlendDataParticles']
    '''

    pointclouds: typing.Union[typing.Dict[str, 'PointCloud'], typing.
                              List['PointCloud'], 'bpy_prop_collection',
                              'BlendDataPointClouds'] = None
    ''' Point cloud data-blocks

    :type: typing.Union[typing.Dict[str, 'PointCloud'], typing.List['PointCloud'], 'bpy_prop_collection', 'BlendDataPointClouds']
    '''

    scenes: typing.Union[typing.Dict[str, 'Scene'], typing.List['Scene'],
                         'bpy_prop_collection', 'BlendDataScenes'] = None
    ''' Scene data-blocks

    :type: typing.Union[typing.Dict[str, 'Scene'], typing.List['Scene'], 'bpy_prop_collection', 'BlendDataScenes']
    '''

    screens: typing.Union[typing.Dict[str, 'Screen'], typing.List['Screen'],
                          'bpy_prop_collection', 'BlendDataScreens'] = None
    ''' Screen data-blocks

    :type: typing.Union[typing.Dict[str, 'Screen'], typing.List['Screen'], 'bpy_prop_collection', 'BlendDataScreens']
    '''

    shape_keys: typing.Union[typing.Dict[str, 'Key'], typing.
                             List['Key'], 'bpy_prop_collection'] = None
    ''' Shape Key data-blocks

    :type: typing.Union[typing.Dict[str, 'Key'], typing.List['Key'], 'bpy_prop_collection']
    '''

    simulations: typing.Union[typing.Dict[str, 'Simulation'], typing.
                              List['Simulation'], 'bpy_prop_collection',
                              'BlendDataSimulations'] = None
    ''' Simulation data-blocks

    :type: typing.Union[typing.Dict[str, 'Simulation'], typing.List['Simulation'], 'bpy_prop_collection', 'BlendDataSimulations']
    '''

    sounds: typing.Union[typing.Dict[str, 'Sound'], typing.List['Sound'],
                         'bpy_prop_collection', 'BlendDataSounds'] = None
    ''' Sound data-blocks

    :type: typing.Union[typing.Dict[str, 'Sound'], typing.List['Sound'], 'bpy_prop_collection', 'BlendDataSounds']
    '''

    speakers: typing.Union[typing.Dict[str, 'Speaker'], typing.List['Speaker'],
                           'bpy_prop_collection', 'BlendDataSpeakers'] = None
    ''' Speaker data-blocks

    :type: typing.Union[typing.Dict[str, 'Speaker'], typing.List['Speaker'], 'bpy_prop_collection', 'BlendDataSpeakers']
    '''

    texts: typing.Union[typing.Dict[str, 'Text'], typing.List['Text'],
                        'bpy_prop_collection', 'BlendDataTexts'] = None
    ''' Text data-blocks

    :type: typing.Union[typing.Dict[str, 'Text'], typing.List['Text'], 'bpy_prop_collection', 'BlendDataTexts']
    '''

    textures: typing.Union[typing.Dict[str, 'Texture'], typing.List['Texture'],
                           'bpy_prop_collection', 'BlendDataTextures'] = None
    ''' Texture data-blocks

    :type: typing.Union[typing.Dict[str, 'Texture'], typing.List['Texture'], 'bpy_prop_collection', 'BlendDataTextures']
    '''

    use_autopack: bool = None
    ''' Automatically pack all external data into .blend file

    :type: bool
    '''

    version: typing.List[int] = None
    ''' File format version the .blend file was saved with

    :type: typing.List[int]
    '''

    volumes: typing.Union[typing.Dict[str, 'Volume'], typing.List['Volume'],
                          'bpy_prop_collection', 'BlendDataVolumes'] = None
    ''' Volume data-blocks

    :type: typing.Union[typing.Dict[str, 'Volume'], typing.List['Volume'], 'bpy_prop_collection', 'BlendDataVolumes']
    '''

    window_managers: typing.Union[typing.Dict[str, 'WindowManager'], typing.
                                  List['WindowManager'], 'bpy_prop_collection',
                                  'BlendDataWindowManagers'] = None
    ''' Window manager data-blocks

    :type: typing.Union[typing.Dict[str, 'WindowManager'], typing.List['WindowManager'], 'bpy_prop_collection', 'BlendDataWindowManagers']
    '''

    workspaces: typing.Union[typing.Dict[str, 'WorkSpace'], typing.
                             List['WorkSpace'], 'bpy_prop_collection',
                             'BlendDataWorkSpaces'] = None
    ''' Workspace data-blocks

    :type: typing.Union[typing.Dict[str, 'WorkSpace'], typing.List['WorkSpace'], 'bpy_prop_collection', 'BlendDataWorkSpaces']
    '''

    worlds: typing.Union[typing.Dict[str, 'World'], typing.List['World'],
                         'bpy_prop_collection', 'BlendDataWorlds'] = None
    ''' World data-blocks

    :type: typing.Union[typing.Dict[str, 'World'], typing.List['World'], 'bpy_prop_collection', 'BlendDataWorlds']
    '''

    def batch_remove(self, ids):
        ''' Remove (delete) several IDs at once. WARNING: Considered experimental feature currently. Note that this function is quicker than individual calls to :func: remove() (from bpy.types.BlendData ID collections), but less safe/versatile (it can break Blender, e.g. by removing all scenes...).

        :param subset: 
        :type subset: list
        :param ids: 
        :type ids: 
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def orphans_purge(self):
        ''' Remove (delete) all IDs with no user.

        :param do_local_ids: Include unused local IDs in the deletion, defaults to True
        :type do_local_ids: bool
        :param do_linked_ids: Include unused linked IDs in the deletion, defaults to True
        :type do_linked_ids: bool
        :param do_recursive: Recursively check for unused IDs, ensuring no orphaned one remain after a single run of that function, defaults to False
        :type do_recursive: bool
        '''
        pass

    def temp_data(self, filepath: str = None) -> 'BlendData':
        ''' A context manager that temporarily creates blender file data.

        :param filepath: The file path for the newly temporary data. When None, the path of the currently open file is used.
        :type filepath: str
        :rtype: 'BlendData'
        :return: Blend file data which is freed once the context exists.
        '''
        pass

    def user_map(self, subset: list, key_types: set, value_types: set) -> dict:
        ''' Returns a mapping of all ID data-blocks in current bpy.data to a set of all datablocks using them. For list of valid set members for key_types & value_types, see: bpy.types.KeyingSetPath.id_type .

        :param subset: When passed, only these data-blocks and their users will be included as keys/values in the map.
        :type subset: list
        :param key_types: Filter the keys mapped by ID types.
        :type key_types: set
        :param value_types: Filter the values in the set by ID types.
        :type value_types: set
        :rtype: dict
        :return: bpy.types.ID instances, with sets of ID's as their values.
        '''
        pass


class BlendDataActions(bpy_struct):
    ''' Collection of actions
    '''

    def new(self, name: str) -> 'Action':
        ''' Add a new action to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Action'
        :return: New action data-block
        '''
        pass

    def remove(self,
               action: 'Action',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove an action from the current blendfile

        :param action: Action to remove
        :type action: 'Action'
        :param do_unlink: Unlink all usages of this action before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this action
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this action
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataArmatures(bpy_struct):
    ''' Collection of armatures
    '''

    def new(self, name: str) -> 'Armature':
        ''' Add a new armature to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Armature'
        :return: New armature data-block
        '''
        pass

    def remove(self,
               armature: 'Armature',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove an armature from the current blendfile

        :param armature: Armature to remove
        :type armature: 'Armature'
        :param do_unlink: Unlink all usages of this armature before deleting it (WARNING: will also delete objects instancing that armature data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this armature data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this armature data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataBrushes(bpy_struct):
    ''' Collection of brushes
    '''

    def new(self, name: str,
            mode: typing.Union[int, str] = 'TEXTURE_PAINT') -> 'Brush':
        ''' Add a new brush to the main database

        :param name: New name for the data-block
        :type name: str
        :param mode: Paint Mode for the new brush * OBJECT Object Mode. * EDIT Edit Mode. * POSE Pose Mode. * SCULPT Sculpt Mode. * VERTEX_PAINT Vertex Paint. * WEIGHT_PAINT Weight Paint. * TEXTURE_PAINT Texture Paint. * PARTICLE_EDIT Particle Edit. * EDIT_GPENCIL Edit Mode -- Edit Grease Pencil Strokes. * SCULPT_GPENCIL Sculpt Mode -- Sculpt Grease Pencil Strokes. * PAINT_GPENCIL Draw Mode -- Paint Grease Pencil Strokes. * WEIGHT_GPENCIL Weight Paint -- Grease Pencil Weight Paint Strokes. * VERTEX_GPENCIL Vertex Paint -- Grease Pencil Vertex Paint Strokes.
        :type mode: typing.Union[int, str]
        :rtype: 'Brush'
        :return: New brush data-block
        '''
        pass

    def remove(self,
               brush: 'Brush',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a brush from the current blendfile

        :param brush: Brush to remove
        :type brush: 'Brush'
        :param do_unlink: Unlink all usages of this brush before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this brush
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this brush
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    def create_gpencil_data(self, brush: 'Brush'):
        ''' Add grease pencil brush settings

        :param brush: Brush
        :type brush: 'Brush'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataCacheFiles(bpy_struct):
    ''' Collection of cache files
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataCameras(bpy_struct):
    ''' Collection of cameras
    '''

    def new(self, name: str) -> 'Camera':
        ''' Add a new camera to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Camera'
        :return: New camera data-block
        '''
        pass

    def remove(self,
               camera: 'Camera',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a camera from the current blendfile

        :param camera: Camera to remove
        :type camera: 'Camera'
        :param do_unlink: Unlink all usages of this camera before deleting it (WARNING: will also delete objects instancing that camera data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this camera
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this camera
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataCollections(bpy_struct):
    ''' Collection of collections
    '''

    def new(self, name: str) -> 'Collection':
        ''' Add a new collection to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Collection'
        :return: New collection data-block
        '''
        pass

    def remove(self,
               collection: 'Collection',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a collection from the current blendfile

        :param collection: Collection to remove
        :type collection: 'Collection'
        :param do_unlink: Unlink all usages of this collection before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this collection
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this collection
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataCurves(bpy_struct):
    ''' Collection of curves
    '''

    def new(self, name: str, type: typing.Union[int, str]) -> 'Curve':
        ''' Add a new curve to the main database

        :param name: New name for the data-block
        :type name: str
        :param type: Type, The type of curve to add
        :type type: typing.Union[int, str]
        :rtype: 'Curve'
        :return: New curve data-block
        '''
        pass

    def remove(self,
               curve: 'Curve',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a curve from the current blendfile

        :param curve: Curve to remove
        :type curve: 'Curve'
        :param do_unlink: Unlink all usages of this curve before deleting it (WARNING: will also delete objects instancing that curve data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this curve data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this curve data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataFonts(bpy_struct):
    ''' Collection of fonts
    '''

    def load(self, filepath: str,
             check_existing: bool = False) -> 'VectorFont':
        ''' Load a new font into the main database

        :param filepath: path of the font to load
        :type filepath: str
        :param check_existing: Using existing data-block if this file is already loaded
        :type check_existing: bool
        :rtype: 'VectorFont'
        :return: New font data-block
        '''
        pass

    def remove(self,
               vfont: 'VectorFont',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a font from the current blendfile

        :param vfont: Font to remove
        :type vfont: 'VectorFont'
        :param do_unlink: Unlink all usages of this font before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this font
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this font
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataGreasePencils(bpy_struct):
    ''' Collection of grease pencils
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    def new(self, name: str) -> 'GreasePencil':
        ''' Add a new grease pencil datablock to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'GreasePencil'
        :return: New grease pencil data-block
        '''
        pass

    def remove(self,
               grease_pencil: 'GreasePencil',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a grease pencil instance from the current blendfile

        :param grease_pencil: Grease Pencil to remove
        :type grease_pencil: 'GreasePencil'
        :param do_unlink: Unlink all usages of this grease pencil before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this grease pencil
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this grease pencil
        :type do_ui_user: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataHairs(bpy_struct):
    ''' Collection of hairs
    '''

    def new(self, name: str) -> 'Hair':
        ''' Add a new hair to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Hair'
        :return: New hair data-block
        '''
        pass

    def remove(self,
               hair: 'Hair',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a hair from the current blendfile

        :param hair: Hair to remove
        :type hair: 'Hair'
        :param do_unlink: Unlink all usages of this hair before deleting it (WARNING: will also delete objects instancing that hair data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this hair data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this hair data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataImages(bpy_struct):
    ''' Collection of images
    '''

    def new(self,
            name: str,
            width: int,
            height: int,
            alpha: bool = False,
            float_buffer: bool = False,
            stereo3d: bool = False,
            is_data: bool = False,
            tiled: bool = False) -> 'Image':
        ''' Add a new image to the main database

        :param name: New name for the data-block
        :type name: str
        :param width: Width of the image
        :type width: int
        :param height: Height of the image
        :type height: int
        :param alpha: Alpha, Use alpha channel
        :type alpha: bool
        :param float_buffer: Float Buffer, Create an image with floating-point color
        :type float_buffer: bool
        :param stereo3d: Stereo 3D, Create left and right views
        :type stereo3d: bool
        :param is_data: Is Data, Create image with non-color data color space
        :type is_data: bool
        :param tiled: Tiled, Create a tiled image
        :type tiled: bool
        :rtype: 'Image'
        :return: New image data-block
        '''
        pass

    def load(self, filepath: str, check_existing: bool = False) -> 'Image':
        ''' Load a new image into the main database

        :param filepath: Path of the file to load
        :type filepath: str
        :param check_existing: Using existing data-block if this file is already loaded
        :type check_existing: bool
        :rtype: 'Image'
        :return: New image data-block
        '''
        pass

    def remove(self,
               image: 'Image',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove an image from the current blendfile

        :param image: Image to remove
        :type image: 'Image'
        :param do_unlink: Unlink all usages of this image before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this image
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this image
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataLattices(bpy_struct):
    ''' Collection of lattices
    '''

    def new(self, name: str) -> 'Lattice':
        ''' Add a new lattice to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Lattice'
        :return: New lattice data-block
        '''
        pass

    def remove(self,
               lattice: 'Lattice',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a lattice from the current blendfile

        :param lattice: Lattice to remove
        :type lattice: 'Lattice'
        :param do_unlink: Unlink all usages of this lattice before deleting it (WARNING: will also delete objects instancing that lattice data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this lattice data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this lattice data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataLibraries(bpy_struct):
    ''' Collection of libraries
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    def remove(self,
               library: 'Library',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a library from the current blendfile

        :param library: Library to remove
        :type library: 'Library'
        :param do_unlink: Unlink all usages of this library before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this library
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this library
        :type do_ui_user: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataLights(bpy_struct):
    ''' Collection of lights
    '''

    def new(self, name: str, type: typing.Union[int, str]) -> 'Light':
        ''' Add a new light to the main database

        :param name: New name for the data-block
        :type name: str
        :param type: Type, The type of light to add * POINT Point -- Omnidirectional point light source. * SUN Sun -- Constant direction parallel ray light source. * SPOT Spot -- Directional cone light source. * AREA Area -- Directional area light source.
        :type type: typing.Union[int, str]
        :rtype: 'Light'
        :return: New light data-block
        '''
        pass

    def remove(self,
               light: 'Light',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a light from the current blendfile

        :param light: Light to remove
        :type light: 'Light'
        :param do_unlink: Unlink all usages of this light before deleting it (WARNING: will also delete objects instancing that light data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this light data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this light data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataLineStyles(bpy_struct):
    ''' Collection of line styles
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    def new(self, name: str) -> 'FreestyleLineStyle':
        ''' Add a new line style instance to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'FreestyleLineStyle'
        :return: New line style data-block
        '''
        pass

    def remove(self,
               linestyle: 'FreestyleLineStyle',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a line style instance from the current blendfile

        :param linestyle: Line style to remove
        :type linestyle: 'FreestyleLineStyle'
        :param do_unlink: Unlink all usages of this line style before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this line style
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this line style
        :type do_ui_user: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataMasks(bpy_struct):
    ''' Collection of masks
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    def new(self, name: str) -> 'Mask':
        ''' Add a new mask with a given name to the main database

        :param name: Mask, Name of new mask data-block
        :type name: str
        :rtype: 'Mask'
        :return: New mask data-block
        '''
        pass

    def remove(self,
               mask: 'Mask',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a mask from the current blendfile

        :param mask: Mask to remove
        :type mask: 'Mask'
        :param do_unlink: Unlink all usages of this mask before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this mask
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this mask
        :type do_ui_user: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataMaterials(bpy_struct):
    ''' Collection of materials
    '''

    def new(self, name: str) -> 'Material':
        ''' Add a new material to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Material'
        :return: New material data-block
        '''
        pass

    def create_gpencil_data(self, material: 'Material'):
        ''' Add grease pencil material settings

        :param material: Material
        :type material: 'Material'
        '''
        pass

    def remove_gpencil_data(self, material: 'Material'):
        ''' Remove grease pencil material settings

        :param material: Material
        :type material: 'Material'
        '''
        pass

    def remove(self,
               material: 'Material',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a material from the current blendfile

        :param material: Material to remove
        :type material: 'Material'
        :param do_unlink: Unlink all usages of this material before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this material
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this material
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataMeshes(bpy_struct):
    ''' Collection of meshes
    '''

    def new(self, name: str) -> 'Mesh':
        ''' Add a new mesh to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Mesh'
        :return: New mesh data-block
        '''
        pass

    def new_from_object(self,
                        object: 'Object',
                        preserve_all_data_layers: bool = False,
                        depsgraph: 'Depsgraph' = None) -> 'Mesh':
        ''' Add a new mesh created from given object (undeformed geometry if object is original, and final evaluated geometry, with all modifiers etc., if object is evaluated)

        :param object: Object to create mesh from
        :type object: 'Object'
        :param preserve_all_data_layers: Preserve all data layers in the mesh, like UV maps and vertex groups. By default Blender only computes the subset of data layers needed for viewport display and rendering, for better performance
        :type preserve_all_data_layers: bool
        :param depsgraph: Dependency Graph, Evaluated dependency graph which is required when preserve_all_data_layers is true
        :type depsgraph: 'Depsgraph'
        :rtype: 'Mesh'
        :return: Mesh created from object, remove it if it is only used for export
        '''
        pass

    def remove(self,
               mesh: 'Mesh',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a mesh from the current blendfile

        :param mesh: Mesh to remove
        :type mesh: 'Mesh'
        :param do_unlink: Unlink all usages of this mesh before deleting it (WARNING: will also delete objects instancing that mesh data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this mesh data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this mesh data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataMetaBalls(bpy_struct):
    ''' Collection of metaballs
    '''

    def new(self, name: str) -> 'MetaBall':
        ''' Add a new metaball to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'MetaBall'
        :return: New metaball data-block
        '''
        pass

    def remove(self,
               metaball: 'MetaBall',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a metaball from the current blendfile

        :param metaball: Metaball to remove
        :type metaball: 'MetaBall'
        :param do_unlink: Unlink all usages of this metaball before deleting it (WARNING: will also delete objects instancing that metaball data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this metaball data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this metaball data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataMovieClips(bpy_struct):
    ''' Collection of movie clips
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    def remove(self,
               clip: 'MovieClip',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a movie clip from the current blendfile.

        :param clip: Movie clip to remove
        :type clip: 'MovieClip'
        :param do_unlink: Unlink all usages of this movie clip before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this movie clip
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this movie clip
        :type do_ui_user: bool
        '''
        pass

    def load(self, filepath: str, check_existing: bool = False) -> 'MovieClip':
        ''' Add a new movie clip to the main database from a file (while check_existing is disabled for consistency with other load functions, behavior with multiple movie-clips using the same file may incorrectly generate proxies)

        :param filepath: path for the data-block
        :type filepath: str
        :param check_existing: Using existing data-block if this file is already loaded
        :type check_existing: bool
        :rtype: 'MovieClip'
        :return: New movie clip data-block
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataNodeTrees(bpy_struct):
    ''' Collection of node trees
    '''

    def new(self, name: str, type: typing.Union[int, str]) -> 'NodeTree':
        ''' Add a new node tree to the main database

        :param name: New name for the data-block
        :type name: str
        :param type: Type, The type of node_group to add
        :type type: typing.Union[int, str]
        :rtype: 'NodeTree'
        :return: New node tree data-block
        '''
        pass

    def remove(self,
               tree: 'NodeTree',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a node tree from the current blendfile

        :param tree: Node tree to remove
        :type tree: 'NodeTree'
        :param do_unlink: Unlink all usages of this node tree before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this node tree
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this node tree
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataObjects(bpy_struct):
    ''' Collection of objects
    '''

    def new(self, name: str, object_data: 'ID') -> 'Object':
        ''' Add a new object to the main database

        :param name: New name for the data-block
        :type name: str
        :param object_data: Object data or None for an empty object
        :type object_data: 'ID'
        :rtype: 'Object'
        :return: New object data-block
        '''
        pass

    def remove(self,
               object: 'Object',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove an object from the current blendfile

        :param object: Object to remove
        :type object: 'Object'
        :param do_unlink: Unlink all usages of this object before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this object
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this object
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataPaintCurves(bpy_struct):
    ''' Collection of paint curves
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataPalettes(bpy_struct):
    ''' Collection of palettes
    '''

    def new(self, name: str) -> 'Palette':
        ''' Add a new palette to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Palette'
        :return: New palette data-block
        '''
        pass

    def remove(self,
               palette: 'Palette',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a palette from the current blendfile

        :param palette: Palette to remove
        :type palette: 'Palette'
        :param do_unlink: Unlink all usages of this palette before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this palette
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this palette
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataParticles(bpy_struct):
    ''' Collection of particle settings
    '''

    def new(self, name: str) -> 'ParticleSettings':
        ''' Add a new particle settings instance to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'ParticleSettings'
        :return: New particle settings data-block
        '''
        pass

    def remove(self,
               particle: 'ParticleSettings',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a particle settings instance from the current blendfile

        :param particle: Particle Settings to remove
        :type particle: 'ParticleSettings'
        :param do_unlink: Unlink all usages of those particle settings before deleting them
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this particle settings
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this particle settings
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataPointClouds(bpy_struct):
    ''' Collection of point clouds
    '''

    def new(self, name: str) -> 'PointCloud':
        ''' Add a new point cloud to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'PointCloud'
        :return: New point cloud data-block
        '''
        pass

    def remove(self,
               pointcloud: 'PointCloud',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a point cloud from the current blendfile

        :param pointcloud: Point cloud to remove
        :type pointcloud: 'PointCloud'
        :param do_unlink: Unlink all usages of this point cloud before deleting it (WARNING: will also delete objects instancing that point cloud data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this point cloud data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this point cloud data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataProbes(bpy_struct):
    ''' Collection of light probes
    '''

    def new(self, name: str, type: typing.Union[int, str]) -> 'LightProbe':
        ''' Add a new light probe to the main database

        :param name: New name for the data-block
        :type name: str
        :param type: Type, The type of light probe to add
        :type type: typing.Union[int, str]
        :rtype: 'LightProbe'
        :return: New light probe data-block
        '''
        pass

    def remove(self,
               lightprobe: 'LightProbe',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a light probe from the current blendfile

        :param lightprobe: Light probe to remove
        :type lightprobe: 'LightProbe'
        :param do_unlink: Unlink all usages of this light probe before deleting it (WARNING: will also delete objects instancing that light probe data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this light probe
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this light probe
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataScenes(bpy_struct):
    ''' Collection of scenes
    '''

    def new(self, name: str) -> 'Scene':
        ''' Add a new scene to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Scene'
        :return: New scene data-block
        '''
        pass

    def remove(self, scene: 'Scene', do_unlink: bool = True):
        ''' Remove a scene from the current blendfile

        :param scene: Scene to remove
        :type scene: 'Scene'
        :param do_unlink: Unlink all usages of this scene before deleting it
        :type do_unlink: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataScreens(bpy_struct):
    ''' Collection of screens
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataSimulations(bpy_struct):
    ''' Collection of simulations
    '''

    def new(self, name: str) -> 'Simulation':
        ''' Add a new simulation to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Simulation'
        :return: New simulation data-block
        '''
        pass

    def remove(self,
               simulation: 'Simulation',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a simulation from the current blendfile

        :param simulation: Simulation to remove
        :type simulation: 'Simulation'
        :param do_unlink: Unlink all usages of this simulation before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this simulation data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this simulation data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataSounds(bpy_struct):
    ''' Collection of sounds
    '''

    def load(self, filepath: str, check_existing: bool = False) -> 'Sound':
        ''' Add a new sound to the main database from a file

        :param filepath: path for the data-block
        :type filepath: str
        :param check_existing: Using existing data-block if this file is already loaded
        :type check_existing: bool
        :rtype: 'Sound'
        :return: New text data-block
        '''
        pass

    def remove(self,
               sound: 'Sound',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a sound from the current blendfile

        :param sound: Sound to remove
        :type sound: 'Sound'
        :param do_unlink: Unlink all usages of this sound before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this sound
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this sound
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataSpeakers(bpy_struct):
    ''' Collection of speakers
    '''

    def new(self, name: str) -> 'Speaker':
        ''' Add a new speaker to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Speaker'
        :return: New speaker data-block
        '''
        pass

    def remove(self,
               speaker: 'Speaker',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a speaker from the current blendfile

        :param speaker: Speaker to remove
        :type speaker: 'Speaker'
        :param do_unlink: Unlink all usages of this speaker before deleting it (WARNING: will also delete objects instancing that speaker data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this speaker data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this speaker data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataTexts(bpy_struct):
    ''' Collection of texts
    '''

    def new(self, name: str) -> 'Text':
        ''' Add a new text to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Text'
        :return: New text data-block
        '''
        pass

    def remove(self,
               text: 'Text',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a text from the current blendfile

        :param text: Text to remove
        :type text: 'Text'
        :param do_unlink: Unlink all usages of this text before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this text
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this text
        :type do_ui_user: bool
        '''
        pass

    def load(self, filepath: str, internal: bool = False) -> 'Text':
        ''' Add a new text to the main database from a file

        :param filepath: path for the data-block
        :type filepath: str
        :param internal: Make internal, Make text file internal after loading
        :type internal: bool
        :rtype: 'Text'
        :return: New text data-block
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataTextures(bpy_struct):
    ''' Collection of textures
    '''

    def new(self, name: str, type: typing.Union[int, str]) -> 'Texture':
        ''' Add a new texture to the main database

        :param name: New name for the data-block
        :type name: str
        :param type: Type, The type of texture to add * NONE None. * BLEND Blend -- Procedural - create a ramp texture. * CLOUDS Clouds -- Procedural - create a cloud-like fractal noise texture. * DISTORTED_NOISE Distorted Noise -- Procedural - noise texture distorted by two noise algorithms. * IMAGE Image or Movie -- Allow for images or movies to be used as textures. * MAGIC Magic -- Procedural - color texture based on trigonometric functions. * MARBLE Marble -- Procedural - marble-like noise texture with wave generated bands. * MUSGRAVE Musgrave -- Procedural - highly flexible fractal noise texture. * NOISE Noise -- Procedural - random noise, gives a different result every time, for every frame, for every pixel. * STUCCI Stucci -- Procedural - create a fractal noise texture. * VORONOI Voronoi -- Procedural - create cell-like patterns based on Worley noise. * WOOD Wood -- Procedural - wave generated bands or rings, with optional noise.
        :type type: typing.Union[int, str]
        :rtype: 'Texture'
        :return: New texture data-block
        '''
        pass

    def remove(self,
               texture: 'Texture',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a texture from the current blendfile

        :param texture: Texture to remove
        :type texture: 'Texture'
        :param do_unlink: Unlink all usages of this texture before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this texture
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this texture
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataVolumes(bpy_struct):
    ''' Collection of volumes
    '''

    def new(self, name: str) -> 'Volume':
        ''' Add a new volume to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'Volume'
        :return: New volume data-block
        '''
        pass

    def remove(self,
               volume: 'Volume',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a volume from the current blendfile

        :param volume: Volume to remove
        :type volume: 'Volume'
        :param do_unlink: Unlink all usages of this volume before deleting it (WARNING: will also delete objects instancing that volume data)
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this volume data
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this volume data
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataWindowManagers(bpy_struct):
    ''' Collection of window managers
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataWorkSpaces(bpy_struct):
    ''' Collection of workspaces
    '''

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendDataWorlds(bpy_struct):
    ''' Collection of worlds
    '''

    def new(self, name: str) -> 'World':
        ''' Add a new world to the main database

        :param name: New name for the data-block
        :type name: str
        :rtype: 'World'
        :return: New world data-block
        '''
        pass

    def remove(self,
               world: 'World',
               do_unlink: bool = True,
               do_id_user: bool = True,
               do_ui_user: bool = True):
        ''' Remove a world from the current blendfile

        :param world: World to remove
        :type world: 'World'
        :param do_unlink: Unlink all usages of this world before deleting it
        :type do_unlink: bool
        :param do_id_user: Decrement user counter of all datablocks used by this world
        :type do_id_user: bool
        :param do_ui_user: Make sure interface does not reference this world
        :type do_ui_user: bool
        '''
        pass

    def tag(self, value: bool):
        ''' tag

        :param value: Value
        :type value: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlenderRNA(bpy_struct):
    ''' Blender RNA structure definitions
    '''

    structs: typing.Union[typing.Dict[str, 'Struct'], typing.
                          List['Struct'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Struct'], typing.List['Struct'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidRule(bpy_struct):
    name: str = None
    ''' Boid rule name

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' * GOAL Goal -- Go to assigned object or loudest assigned signal source. * AVOID Avoid -- Get away from assigned object or loudest assigned signal source. * AVOID_COLLISION Avoid Collision -- Maneuver to avoid collisions with other boids and deflector objects in near future. * SEPARATE Separate -- Keep from going through other boids. * FLOCK Flock -- Move to center of neighbors and match their velocity. * FOLLOW_LEADER Follow Leader -- Follow a boid or assigned object. * AVERAGE_SPEED Average Speed -- Maintain speed, flight level or wander. * FIGHT Fight -- Go to closest enemy and attack when in range.

    :type: typing.Union[int, str]
    '''

    use_in_air: bool = None
    ''' Use rule when boid is flying

    :type: bool
    '''

    use_on_land: bool = None
    ''' Use rule when boid is on land

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidSettings(bpy_struct):
    ''' Settings for boid physics
    '''

    accuracy: float = None
    ''' Accuracy of attack

    :type: float
    '''

    active_boid_state: 'BoidRule' = None
    ''' 

    :type: 'BoidRule'
    '''

    active_boid_state_index: int = None
    ''' 

    :type: int
    '''

    aggression: float = None
    ''' Boid will fight this times stronger enemy

    :type: float
    '''

    air_acc_max: float = None
    ''' Maximum acceleration in air (relative to maximum speed)

    :type: float
    '''

    air_ave_max: float = None
    ''' Maximum angular velocity in air (relative to 180 degrees)

    :type: float
    '''

    air_personal_space: float = None
    ''' Radius of boids personal space in air (% of particle size)

    :type: float
    '''

    air_speed_max: float = None
    ''' Maximum speed in air

    :type: float
    '''

    air_speed_min: float = None
    ''' Minimum speed in air (relative to maximum speed)

    :type: float
    '''

    bank: float = None
    ''' Amount of rotation around velocity vector on turns

    :type: float
    '''

    health: float = None
    ''' Initial boid health when born

    :type: float
    '''

    height: float = None
    ''' Boid height relative to particle size

    :type: float
    '''

    land_acc_max: float = None
    ''' Maximum acceleration on land (relative to maximum speed)

    :type: float
    '''

    land_ave_max: float = None
    ''' Maximum angular velocity on land (relative to 180 degrees)

    :type: float
    '''

    land_jump_speed: float = None
    ''' Maximum speed for jumping

    :type: float
    '''

    land_personal_space: float = None
    ''' Radius of boids personal space on land (% of particle size)

    :type: float
    '''

    land_smooth: float = None
    ''' How smoothly the boids land

    :type: float
    '''

    land_speed_max: float = None
    ''' Maximum speed on land

    :type: float
    '''

    land_stick_force: float = None
    ''' How strong a force must be to start effecting a boid on land

    :type: float
    '''

    pitch: float = None
    ''' Amount of rotation around side vector

    :type: float
    '''

    range: float = None
    ''' Maximum distance from which a boid can attack

    :type: float
    '''

    states: typing.Union[typing.Dict[str, 'BoidState'], typing.
                         List['BoidState'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'BoidState'], typing.List['BoidState'], 'bpy_prop_collection']
    '''

    strength: float = None
    ''' Maximum caused damage on attack per second

    :type: float
    '''

    use_climb: bool = None
    ''' Allow boids to climb goal objects

    :type: bool
    '''

    use_flight: bool = None
    ''' Allow boids to move in air

    :type: bool
    '''

    use_land: bool = None
    ''' Allow boids to move on land

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidState(bpy_struct):
    ''' Boid state for boid physics
    '''

    active_boid_rule: 'BoidRule' = None
    ''' 

    :type: 'BoidRule'
    '''

    active_boid_rule_index: int = None
    ''' 

    :type: int
    '''

    falloff: float = None
    ''' 

    :type: float
    '''

    name: str = None
    ''' Boid state name

    :type: str
    '''

    rule_fuzzy: float = None
    ''' 

    :type: float
    '''

    rules: typing.Union[typing.Dict[str, 'BoidRule'], typing.
                        List['BoidRule'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'BoidRule'], typing.List['BoidRule'], 'bpy_prop_collection']
    '''

    ruleset_type: typing.Union[int, str] = None
    ''' How the rules in the list are evaluated * FUZZY Fuzzy -- Rules are gone through top to bottom (only the first rule which effect is above fuzziness threshold is evaluated). * RANDOM Random -- A random rule is selected for each boid. * AVERAGE Average -- All rules are averaged.

    :type: typing.Union[int, str]
    '''

    volume: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Bone(bpy_struct):
    ''' Bone in an Armature data-block
    '''

    bbone_curveinx: float = None
    ''' X-axis handle offset for start of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveinz: float = None
    ''' Z-axis handle offset for start of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveoutx: float = None
    ''' X-axis handle offset for end of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveoutz: float = None
    ''' Z-axis handle offset for end of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_custom_handle_end: 'Bone' = None
    ''' Bone that serves as the end handle for the B-Bone curve

    :type: 'Bone'
    '''

    bbone_custom_handle_start: 'Bone' = None
    ''' Bone that serves as the start handle for the B-Bone curve

    :type: 'Bone'
    '''

    bbone_easein: float = None
    ''' Length of first Bezier Handle (for B-Bones only)

    :type: float
    '''

    bbone_easeout: float = None
    ''' Length of second Bezier Handle (for B-Bones only)

    :type: float
    '''

    bbone_handle_type_end: typing.Union[int, str] = None
    ''' Selects how the end handle of the B-Bone is computed * AUTO Automatic -- Use connected parent and children to compute the handle. * ABSOLUTE Absolute -- Use the position of the specified bone to compute the handle. * RELATIVE Relative -- Use the offset of the specified bone from rest pose to compute the handle. * TANGENT Tangent -- Use the orientation of the specified bone to compute the handle, ignoring the location.

    :type: typing.Union[int, str]
    '''

    bbone_handle_type_start: typing.Union[int, str] = None
    ''' Selects how the start handle of the B-Bone is computed * AUTO Automatic -- Use connected parent and children to compute the handle. * ABSOLUTE Absolute -- Use the position of the specified bone to compute the handle. * RELATIVE Relative -- Use the offset of the specified bone from rest pose to compute the handle. * TANGENT Tangent -- Use the orientation of the specified bone to compute the handle, ignoring the location.

    :type: typing.Union[int, str]
    '''

    bbone_handle_use_ease_end: bool = None
    ''' Multiply the B-Bone Ease Out channel by the local Y scale value of the end handle. This is done after the Scale Easing option and isn't affected by it

    :type: bool
    '''

    bbone_handle_use_ease_start: bool = None
    ''' Multiply the B-Bone Ease In channel by the local Y scale value of the start handle. This is done after the Scale Easing option and isn't affected by it

    :type: bool
    '''

    bbone_handle_use_scale_end: typing.List[bool] = None
    ''' Multiply B-Bone Scale Out channels by the local scale values of the end handle. This is done after the Scale Easing option and isn't affected by it

    :type: typing.List[bool]
    '''

    bbone_handle_use_scale_start: typing.List[bool] = None
    ''' Multiply B-Bone Scale In channels by the local scale values of the start handle. This is done after the Scale Easing option and isn't affected by it

    :type: typing.List[bool]
    '''

    bbone_rollin: float = None
    ''' Roll offset for the start of the B-Bone, adjusts twist

    :type: float
    '''

    bbone_rollout: float = None
    ''' Roll offset for the end of the B-Bone, adjusts twist

    :type: float
    '''

    bbone_scalein: typing.List[float] = None
    ''' Scale factors for the start of the B-Bone, adjusts thickness (for tapering effects)

    :type: typing.List[float]
    '''

    bbone_scaleout: typing.List[float] = None
    ''' Scale factors for the end of the B-Bone, adjusts thickness (for tapering effects)

    :type: typing.List[float]
    '''

    bbone_segments: int = None
    ''' Number of subdivisions of bone (for B-Bones only)

    :type: int
    '''

    bbone_x: float = None
    ''' B-Bone X size

    :type: float
    '''

    bbone_z: float = None
    ''' B-Bone Z size

    :type: float
    '''

    children: typing.Union[typing.Dict[str, 'Bone'], typing.
                           List['Bone'], 'bpy_prop_collection'] = None
    ''' Bones which are children of this bone

    :type: typing.Union[typing.Dict[str, 'Bone'], typing.List['Bone'], 'bpy_prop_collection']
    '''

    envelope_distance: float = None
    ''' Bone deformation distance (for Envelope deform only)

    :type: float
    '''

    envelope_weight: float = None
    ''' Bone deformation weight (for Envelope deform only)

    :type: float
    '''

    head: typing.List[float] = None
    ''' Location of head end of the bone relative to its parent

    :type: typing.List[float]
    '''

    head_local: typing.List[float] = None
    ''' Location of head end of the bone relative to armature

    :type: typing.List[float]
    '''

    head_radius: float = None
    ''' Radius of head of bone (for Envelope deform only)

    :type: float
    '''

    hide: bool = None
    ''' Bone is not visible when it is not in Edit Mode (i.e. in Object or Pose Modes)

    :type: bool
    '''

    hide_select: bool = None
    ''' Bone is able to be selected

    :type: bool
    '''

    inherit_scale: typing.Union[int, str] = None
    ''' Specifies how the bone inherits scaling from the parent bone * FULL Full -- Inherit all effects of parent scaling. * FIX_SHEAR Fix Shear -- Inherit scaling, but remove shearing of the child in the rest orientation. * ALIGNED Aligned -- Rotate non-uniform parent scaling to align with the child, applying parent X scale to child X axis, and so forth. * AVERAGE Average -- Inherit uniform scaling representing the overall change in the volume of the parent. * NONE None -- Completely ignore parent scaling. * NONE_LEGACY None (Legacy) -- Ignore parent scaling without compensating for parent shear. Replicates the effect of disabling the original Inherit Scale checkbox.

    :type: typing.Union[int, str]
    '''

    layers: typing.List[bool] = None
    ''' Layers bone exists in

    :type: typing.List[bool]
    '''

    length: float = None
    ''' Length of the bone

    :type: float
    '''

    matrix: typing.List[float] = None
    ''' 3x3 bone matrix

    :type: typing.List[float]
    '''

    matrix_local: typing.List[float] = None
    ''' 4x4 bone matrix relative to armature

    :type: typing.List[float]
    '''

    name: str = None
    ''' 

    :type: str
    '''

    parent: 'Bone' = None
    ''' Parent bone (in same Armature)

    :type: 'Bone'
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    select_head: bool = None
    ''' 

    :type: bool
    '''

    select_tail: bool = None
    ''' 

    :type: bool
    '''

    show_wire: bool = None
    ''' Bone is always displayed in wireframe regardless of viewport shading mode (useful for non-obstructive custom bone shapes)

    :type: bool
    '''

    tail: typing.List[float] = None
    ''' Location of tail end of the bone relative to its parent

    :type: typing.List[float]
    '''

    tail_local: typing.List[float] = None
    ''' Location of tail end of the bone relative to armature

    :type: typing.List[float]
    '''

    tail_radius: float = None
    ''' Radius of tail of bone (for Envelope deform only)

    :type: float
    '''

    use_connect: bool = None
    ''' When bone has a parent, bone's head is stuck to the parent's tail

    :type: bool
    '''

    use_cyclic_offset: bool = None
    ''' When bone doesn't have a parent, it receives cyclic offset effects (Deprecated)

    :type: bool
    '''

    use_deform: bool = None
    ''' Enable Bone to deform geometry

    :type: bool
    '''

    use_endroll_as_inroll: bool = None
    ''' Add Roll Out of the Start Handle bone to the Roll In value

    :type: bool
    '''

    use_envelope_multiply: bool = None
    ''' When deforming bone, multiply effects of Vertex Group weights with Envelope influence

    :type: bool
    '''

    use_inherit_rotation: bool = None
    ''' Bone inherits rotation or scale from parent bone

    :type: bool
    '''

    use_inherit_scale: bool = None
    ''' DEPRECATED: Bone inherits scaling from parent bone

    :type: bool
    '''

    use_local_location: bool = None
    ''' Bone location is set in local space

    :type: bool
    '''

    use_relative_parent: bool = None
    ''' Object children will use relative transform, like deform

    :type: bool
    '''

    use_scale_easing: bool = None
    ''' Multiply the final easing values by the Scale In/Out Y factors

    :type: bool
    '''

    basename = None
    ''' The name of this bone before any '.' character (readonly)'''

    center = None
    ''' The midpoint between the head and the tail. (readonly)'''

    children_recursive = None
    ''' A list of all children from this bone. .. note:: Takes O(len(bones)**2) time. (readonly)'''

    children_recursive_basename = None
    ''' Returns a chain of children with the same base name as this bone. Only direct chains are supported, forks caused by multiple children with matching base names will terminate the function and not be returned. (readonly)'''

    parent_recursive = None
    ''' A list of parents, starting with the immediate parent (readonly)'''

    vector = None
    ''' The direction this bone is pointing. Utility function for (tail - head) (readonly)'''

    x_axis = None
    ''' Vector pointing down the x-axis of the bone. (readonly)'''

    y_axis = None
    ''' Vector pointing down the y-axis of the bone. (readonly)'''

    z_axis = None
    ''' Vector pointing down the z-axis of the bone. (readonly)'''

    def evaluate_envelope(self, point: typing.List[float]) -> float:
        ''' Calculate bone envelope at given point

        :param point: Point, Position in 3d space to evaluate
        :type point: typing.List[float]
        :rtype: float
        :return: Factor, Envelope factor
        '''
        pass

    def convert_local_to_pose(
            self,
            matrix: typing.List[float],
            matrix_local: typing.List[float],
            parent_matrix: typing.List[float] = ((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)),
            parent_matrix_local: typing.List[float] = ((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)),
            invert: bool = False) -> typing.List[float]:
        ''' Transform a matrix from Local to Pose space (or back), taking into account options like Inherit Scale and Local Location. Unlike Object.convert_space, this uses custom rest and pose matrices provided by the caller. If the parent matrices are omitted, the bone is assumed to have no parent. This method enables conversions between Local and Pose space for bones in the middle of updating the armature without having to update dependencies after each change, by manually carrying updated matrices in a recursive walk.

        :param matrix: The matrix to transform
        :type matrix: typing.List[float]
        :param matrix_local: The custom rest matrix of this bone (Bone.matrix_local)
        :type matrix_local: typing.List[float]
        :param parent_matrix: The custom pose matrix of the parent bone (PoseBone.matrix)
        :type parent_matrix: typing.List[float]
        :param parent_matrix_local: The custom rest matrix of the parent bone (Bone.matrix_local)
        :type parent_matrix_local: typing.List[float]
        :param invert: Convert from Pose to Local space
        :type invert: bool
        :rtype: typing.List[float]
        :return: The transformed matrix
        '''
        pass

    @classmethod
    def MatrixFromAxisRoll(cls, axis: typing.List[float],
                           roll: float) -> typing.List[float]:
        ''' Convert the axis + roll representation to a matrix

        :param axis: The main axis of the bone (tail - head)
        :type axis: typing.List[float]
        :param roll: The roll of the bone
        :type roll: float
        :rtype: typing.List[float]
        :return: The resulting orientation matrix
        '''
        pass

    @classmethod
    def AxisRollFromMatrix(cls,
                           matrix: typing.List[float],
                           axis: typing.List[float] = (0.0, 0.0, 0.0)):
        ''' Convert a rotational matrix to the axis + roll representation. Note that the resulting value of the roll may not be as expected if the matrix has shear or negative determinant.

        :param matrix: The orientation matrix of the bone
        :type matrix: typing.List[float]
        :param axis: The optional override for the axis (finds closest approximation for the matrix)
        :type axis: typing.List[float]
        '''
        pass

    def parent_index(self, parent_test):
        ''' The same as 'bone in other_bone.parent_recursive' but saved generating a list.

        '''
        pass

    def translate(self, vec):
        ''' Utility function to add *vec* to the head and tail of this bone

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoneGroup(bpy_struct):
    ''' Groups of Pose Channels (Bones)
    '''

    color_set: typing.Union[int, str] = None
    ''' Custom color set to use

    :type: typing.Union[int, str]
    '''

    colors: 'ThemeBoneColorSet' = None
    ''' Copy of the colors associated with the group's color set

    :type: 'ThemeBoneColorSet'
    '''

    is_custom_color_set: bool = None
    ''' Color set is user-defined instead of a fixed theme color set

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoneGroups(bpy_struct):
    ''' Collection of bone groups
    '''

    active: 'BoneGroup' = None
    ''' Active bone group for this pose

    :type: 'BoneGroup'
    '''

    active_index: int = None
    ''' Active index in bone groups array

    :type: int
    '''

    def new(self, name: str = "Group") -> 'BoneGroup':
        ''' Add a new bone group to the object

        :param name: Name of the new group
        :type name: str
        :rtype: 'BoneGroup'
        :return: New bone group
        '''
        pass

    def remove(self, group: 'BoneGroup'):
        ''' Remove a bone group from this object

        :param group: Removed bone group
        :type group: 'BoneGroup'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoolAttributeValue(bpy_struct):
    ''' Bool value in geometry attribute
    '''

    value: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrushCapabilities(bpy_struct):
    ''' Read-only indications of supported operations
    '''

    has_overlay: bool = None
    ''' 

    :type: bool
    '''

    has_random_texture_angle: bool = None
    ''' 

    :type: bool
    '''

    has_smooth_stroke: bool = None
    ''' 

    :type: bool
    '''

    has_spacing: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrushCapabilitiesImagePaint(bpy_struct):
    ''' Read-only indications of supported operations
    '''

    has_accumulate: bool = None
    ''' 

    :type: bool
    '''

    has_color: bool = None
    ''' 

    :type: bool
    '''

    has_radius: bool = None
    ''' 

    :type: bool
    '''

    has_space_attenuation: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrushCapabilitiesSculpt(bpy_struct):
    ''' Read-only indications of which brush operations are supported by the current sculpt tool
    '''

    has_accumulate: bool = None
    ''' 

    :type: bool
    '''

    has_auto_smooth: bool = None
    ''' 

    :type: bool
    '''

    has_color: bool = None
    ''' 

    :type: bool
    '''

    has_direction: bool = None
    ''' 

    :type: bool
    '''

    has_gravity: bool = None
    ''' 

    :type: bool
    '''

    has_height: bool = None
    ''' 

    :type: bool
    '''

    has_jitter: bool = None
    ''' 

    :type: bool
    '''

    has_normal_weight: bool = None
    ''' 

    :type: bool
    '''

    has_persistence: bool = None
    ''' 

    :type: bool
    '''

    has_pinch_factor: bool = None
    ''' 

    :type: bool
    '''

    has_plane_offset: bool = None
    ''' 

    :type: bool
    '''

    has_rake_factor: bool = None
    ''' 

    :type: bool
    '''

    has_random_texture_angle: bool = None
    ''' 

    :type: bool
    '''

    has_sculpt_plane: bool = None
    ''' 

    :type: bool
    '''

    has_secondary_color: bool = None
    ''' 

    :type: bool
    '''

    has_smooth_stroke: bool = None
    ''' 

    :type: bool
    '''

    has_space_attenuation: bool = None
    ''' 

    :type: bool
    '''

    has_strength_pressure: bool = None
    ''' 

    :type: bool
    '''

    has_tilt: bool = None
    ''' 

    :type: bool
    '''

    has_topology_rake: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrushCapabilitiesVertexPaint(bpy_struct):
    ''' Read-only indications of supported operations
    '''

    has_color: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrushCapabilitiesWeightPaint(bpy_struct):
    ''' Read-only indications of supported operations
    '''

    has_weight: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrushGpencilSettings(bpy_struct):
    ''' Settings for grease pencil brush
    '''

    active_smooth_factor: float = None
    ''' Amount of smoothing while drawing

    :type: float
    '''

    angle: float = None
    ''' Direction of the stroke at which brush gives maximal thickness (0° for horizontal)

    :type: float
    '''

    angle_factor: float = None
    ''' Reduce brush thickness by this factor when stroke is perpendicular to 'Angle' direction

    :type: float
    '''

    aspect: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    brush_draw_mode: typing.Union[int, str] = None
    ''' Preselected mode when using this brush * ACTIVE Active -- Use current mode. * MATERIAL Material -- Use always material mode. * VERTEXCOLOR Vertex Color -- Use always Vertex Color mode.

    :type: typing.Union[int, str]
    '''

    caps_type: typing.Union[int, str] = None
    ''' The shape of the start and end of the stroke

    :type: typing.Union[int, str]
    '''

    curve_jitter: 'CurveMapping' = None
    ''' Curve used for the jitter effect

    :type: 'CurveMapping'
    '''

    curve_random_hue: 'CurveMapping' = None
    ''' Curve used for modulating effect

    :type: 'CurveMapping'
    '''

    curve_random_pressure: 'CurveMapping' = None
    ''' Curve used for modulating effect

    :type: 'CurveMapping'
    '''

    curve_random_saturation: 'CurveMapping' = None
    ''' Curve used for modulating effect

    :type: 'CurveMapping'
    '''

    curve_random_strength: 'CurveMapping' = None
    ''' Curve used for modulating effect

    :type: 'CurveMapping'
    '''

    curve_random_uv: 'CurveMapping' = None
    ''' Curve used for modulating effect

    :type: 'CurveMapping'
    '''

    curve_random_value: 'CurveMapping' = None
    ''' Curve used for modulating effect

    :type: 'CurveMapping'
    '''

    curve_sensitivity: 'CurveMapping' = None
    ''' Curve used for the sensitivity

    :type: 'CurveMapping'
    '''

    curve_strength: 'CurveMapping' = None
    ''' Curve used for the strength

    :type: 'CurveMapping'
    '''

    dilate: int = None
    ''' Number of pixels to dilate fill area

    :type: int
    '''

    direction: typing.Union[int, str] = None
    ''' * ADD Add -- Add effect of brush. * SUBTRACT Subtract -- Subtract effect of brush.

    :type: typing.Union[int, str]
    '''

    eraser_mode: typing.Union[int, str] = None
    ''' Eraser Mode * SOFT Dissolve -- Erase strokes, fading their points strength and thickness. * HARD Point -- Erase stroke points. * STROKE Stroke -- Erase entire strokes.

    :type: typing.Union[int, str]
    '''

    eraser_strength_factor: float = None
    ''' Amount of erasing for strength

    :type: float
    '''

    eraser_thickness_factor: float = None
    ''' Amount of erasing for thickness

    :type: float
    '''

    extend_stroke_factor: float = None
    ''' Strokes end extension for closing gaps, use zero to disable

    :type: float
    '''

    fill_direction: typing.Union[int, str] = None
    ''' Direction of the fill * NORMAL Normal -- Fill internal area. * INVERT Inverted -- Fill inverted area.

    :type: typing.Union[int, str]
    '''

    fill_draw_mode: typing.Union[int, str] = None
    ''' Mode to draw boundary limits * BOTH All -- Use both visible strokes and edit lines as fill boundary limits. * STROKE Strokes -- Use visible strokes as fill boundary limits. * CONTROL Edit Lines -- Use edit lines as fill boundary limits.

    :type: typing.Union[int, str]
    '''

    fill_factor: float = None
    ''' Factor for fill boundary accuracy, higher values are more accurate but slower

    :type: float
    '''

    fill_layer_mode: typing.Union[int, str] = None
    ''' Layers used as boundaries * VISIBLE Visible -- Visible layers. * ACTIVE Active -- Only active layer. * ABOVE Layer Above -- Layer above active. * BELOW Layer Below -- Layer below active. * ALL_ABOVE All Above -- All layers above active. * ALL_BELOW All Below -- All layers below active.

    :type: typing.Union[int, str]
    '''

    fill_leak: int = None
    ''' Size in pixels to consider the leak closed

    :type: int
    '''

    fill_simplify_level: int = None
    ''' Number of simplify steps (large values reduce fill accuracy)

    :type: int
    '''

    fill_threshold: float = None
    ''' Threshold to consider color transparent for filling

    :type: float
    '''

    gpencil_paint_icon: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    gpencil_sculpt_icon: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    gpencil_vertex_icon: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    gpencil_weight_icon: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    hardness: float = None
    ''' Gradient from the center of Dot and Box strokes (set to 1 for a solid stroke)

    :type: float
    '''

    input_samples: int = None
    ''' Generate intermediate points for very fast mouse movements. Set to 0 to disable

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for strokes drawn using this brush

    :type: 'Material'
    '''

    pen_jitter: float = None
    ''' Jitter factor for new strokes

    :type: float
    '''

    pen_smooth_factor: float = None
    ''' Amount of smoothing to apply after finish newly created strokes, to reduce jitter/noise

    :type: float
    '''

    pen_smooth_steps: int = None
    ''' Number of times to smooth newly created strokes

    :type: int
    '''

    pen_strength: float = None
    ''' Color strength for new strokes (affect alpha factor of color)

    :type: float
    '''

    pen_subdivision_steps: int = None
    ''' Number of times to subdivide newly created strokes, for less jagged strokes

    :type: int
    '''

    pin_draw_mode: bool = None
    ''' Pin the mode to the brush

    :type: bool
    '''

    random_hue_factor: float = None
    ''' Random factor to modify original hue

    :type: float
    '''

    random_pressure: float = None
    ''' Randomness factor for pressure in new strokes

    :type: float
    '''

    random_saturation_factor: float = None
    ''' Random factor to modify original saturation

    :type: float
    '''

    random_strength: float = None
    ''' Randomness factor strength in new strokes

    :type: float
    '''

    random_value_factor: float = None
    ''' Random factor to modify original value

    :type: float
    '''

    show_fill: bool = None
    ''' Show transparent lines to use as boundary for filling

    :type: bool
    '''

    show_fill_boundary: bool = None
    ''' Show help lines for filling to see boundaries

    :type: bool
    '''

    show_fill_extend: bool = None
    ''' Show help lines for stroke extension

    :type: bool
    '''

    show_lasso: bool = None
    ''' Do not display fill color while drawing the stroke

    :type: bool
    '''

    simplify_factor: float = None
    ''' Factor of Simplify using adaptive algorithm

    :type: float
    '''

    use_default_eraser: bool = None
    ''' Use this brush when enable eraser with fast switch key

    :type: bool
    '''

    use_edit_position: bool = None
    ''' The brush affects the position of the point

    :type: bool
    '''

    use_edit_strength: bool = None
    ''' The brush affects the color strength of the point

    :type: bool
    '''

    use_edit_thickness: bool = None
    ''' The brush affects the thickness of the point

    :type: bool
    '''

    use_edit_uv: bool = None
    ''' The brush affects the UV rotation of the point

    :type: bool
    '''

    use_fill_limit: bool = None
    ''' Fill only visible areas in viewport

    :type: bool
    '''

    use_jitter_pressure: bool = None
    ''' Use tablet pressure for jitter

    :type: bool
    '''

    use_material_pin: bool = None
    ''' Keep material assigned to brush

    :type: bool
    '''

    use_occlude_eraser: bool = None
    ''' Erase only strokes visible and not occluded

    :type: bool
    '''

    use_pressure: bool = None
    ''' Use tablet pressure

    :type: bool
    '''

    use_random_press_hue: bool = None
    ''' Use pressure to modulate randomness

    :type: bool
    '''

    use_random_press_radius: bool = None
    ''' Use pressure to modulate randomness

    :type: bool
    '''

    use_random_press_sat: bool = None
    ''' Use pressure to modulate randomness

    :type: bool
    '''

    use_random_press_strength: bool = None
    ''' Use pressure to modulate randomness

    :type: bool
    '''

    use_random_press_uv: bool = None
    ''' Use pressure to modulate randomness

    :type: bool
    '''

    use_random_press_val: bool = None
    ''' Use pressure to modulate randomness

    :type: bool
    '''

    use_settings_postprocess: bool = None
    ''' Additional post processing options for new strokes

    :type: bool
    '''

    use_settings_random: bool = None
    ''' Random brush settings

    :type: bool
    '''

    use_settings_stabilizer: bool = None
    ''' Draw lines with a delay to allow smooth strokes. Press Shift key to override while drawing

    :type: bool
    '''

    use_strength_pressure: bool = None
    ''' Use tablet pressure for color strength

    :type: bool
    '''

    use_stroke_random_hue: bool = None
    ''' Use randomness at stroke level

    :type: bool
    '''

    use_stroke_random_radius: bool = None
    ''' Use randomness at stroke level

    :type: bool
    '''

    use_stroke_random_sat: bool = None
    ''' Use randomness at stroke level

    :type: bool
    '''

    use_stroke_random_strength: bool = None
    ''' Use randomness at stroke level

    :type: bool
    '''

    use_stroke_random_uv: bool = None
    ''' Use randomness at stroke level

    :type: bool
    '''

    use_stroke_random_val: bool = None
    ''' Use randomness at stroke level

    :type: bool
    '''

    use_trim: bool = None
    ''' Trim intersecting stroke ends

    :type: bool
    '''

    uv_random: float = None
    ''' Random factor for auto-generated UV rotation

    :type: float
    '''

    vertex_color_factor: float = None
    ''' Factor used to mix vertex color to get final color

    :type: float
    '''

    vertex_mode: typing.Union[int, str] = None
    ''' Defines how vertex color affect to the strokes * STROKE Stroke -- Vertex Color affects to Stroke only. * FILL Fill -- Vertex Color affects to Fill only. * BOTH Stroke & Fill -- Vertex Color affects to Stroke and Fill.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ByteColorAttributeValue(bpy_struct):
    ''' Color value in geometry attribute
    '''

    color: typing.List[float] = None
    ''' RGBA color in scene linear color space

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CacheObjectPath(bpy_struct):
    ''' Path of an object inside of an Alembic archive
    '''

    path: str = None
    ''' Object path

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CacheObjectPaths(bpy_struct):
    ''' Collection of object paths
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CameraBackgroundImage(bpy_struct):
    ''' Image and settings for display in the 3D View background
    '''

    alpha: float = None
    ''' Image opacity to blend the image against the background color

    :type: float
    '''

    clip: 'MovieClip' = None
    ''' Movie clip displayed and edited in this space

    :type: 'MovieClip'
    '''

    clip_user: 'MovieClipUser' = None
    ''' Parameters defining which frame of the movie clip is displayed

    :type: 'MovieClipUser'
    '''

    display_depth: typing.Union[int, str] = None
    ''' Display under or over everything

    :type: typing.Union[int, str]
    '''

    frame_method: typing.Union[int, str] = None
    ''' How the image fits in the camera frame

    :type: typing.Union[int, str]
    '''

    image: 'Image' = None
    ''' Image displayed and edited in this space

    :type: 'Image'
    '''

    image_user: 'ImageUser' = None
    ''' Parameters defining which layer, pass and frame of the image is displayed

    :type: 'ImageUser'
    '''

    offset: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    rotation: float = None
    ''' Rotation for the background image (ortho view only)

    :type: float
    '''

    scale: float = None
    ''' Scale the background image

    :type: float
    '''

    show_background_image: bool = None
    ''' Show this image as background

    :type: bool
    '''

    show_expanded: bool = None
    ''' Show the expanded in the user interface

    :type: bool
    '''

    show_on_foreground: bool = None
    ''' Show this image in front of objects in viewport

    :type: bool
    '''

    source: typing.Union[int, str] = None
    ''' Data source used for background

    :type: typing.Union[int, str]
    '''

    use_camera_clip: bool = None
    ''' Use movie clip from active scene camera

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip the background image horizontally

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip the background image vertically

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CameraBackgroundImages(bpy_struct):
    ''' Collection of background images
    '''

    def new(self) -> 'CameraBackgroundImage':
        ''' Add new background image

        :rtype: 'CameraBackgroundImage'
        :return: Image displayed as viewport background
        '''
        pass

    def remove(self, image: 'CameraBackgroundImage'):
        ''' Remove background image

        :param image: Image displayed as viewport background
        :type image: 'CameraBackgroundImage'
        '''
        pass

    def clear(self):
        ''' Remove all background images

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CameraDOFSettings(bpy_struct):
    ''' Depth of Field settings
    '''

    aperture_blades: int = None
    ''' Number of blades in aperture for polygonal bokeh (at least 3)

    :type: int
    '''

    aperture_fstop: float = None
    ''' F-Stop ratio (lower numbers give more defocus, higher numbers give a sharper image)

    :type: float
    '''

    aperture_ratio: float = None
    ''' Distortion to simulate anamorphic lens bokeh

    :type: float
    '''

    aperture_rotation: float = None
    ''' Rotation of blades in aperture

    :type: float
    '''

    focus_distance: float = None
    ''' Distance to the focus point for depth of field

    :type: float
    '''

    focus_object: 'Object' = None
    ''' Use this object to define the depth of field focal point

    :type: 'Object'
    '''

    use_dof: bool = None
    ''' Use Depth of Field

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CameraStereoData(bpy_struct):
    ''' Stereoscopy settings for a Camera data-block
    '''

    convergence_distance: float = None
    ''' The converge point for the stereo cameras (often the distance between a projector and the projection screen)

    :type: float
    '''

    convergence_mode: typing.Union[int, str] = None
    ''' * OFFAXIS Off-Axis -- Off-axis frustums converging in a plane. * PARALLEL Parallel -- Parallel cameras with no convergence. * TOE Toe-in -- Rotated cameras, looking at the convergence distance.

    :type: typing.Union[int, str]
    '''

    interocular_distance: float = None
    ''' Set the distance between the eyes - the stereo plane distance / 30 should be fine

    :type: float
    '''

    pivot: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    pole_merge_angle_from: float = None
    ''' Angle at which interocular distance starts to fade to 0

    :type: float
    '''

    pole_merge_angle_to: float = None
    ''' Angle at which interocular distance is 0

    :type: float
    '''

    use_pole_merge: bool = None
    ''' Fade interocular distance to 0 after the given cutoff angle

    :type: bool
    '''

    use_spherical_stereo: bool = None
    ''' Render every pixel rotating the camera around the middle of the interocular distance

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ChannelDriverVariables(bpy_struct):
    ''' Collection of channel driver Variables
    '''

    def new(self) -> 'DriverVariable':
        ''' Add a new variable for the driver

        :rtype: 'DriverVariable'
        :return: Newly created Driver Variable
        '''
        pass

    def remove(self, variable: 'DriverVariable'):
        ''' Remove an existing variable from the driver

        :param variable: Variable to remove from the driver
        :type variable: 'DriverVariable'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ChildParticle(bpy_struct):
    ''' Child particle interpolated from simulated or edited particles
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ClothCollisionSettings(bpy_struct):
    ''' Cloth simulation settings for self collision and collision with other objects
    '''

    collection: 'Collection' = None
    ''' Limit colliders to this Collection

    :type: 'Collection'
    '''

    collision_quality: int = None
    ''' How many collision iterations should be done. (higher is better quality but slower)

    :type: int
    '''

    damping: float = None
    ''' Amount of velocity lost on collision

    :type: float
    '''

    distance_min: float = None
    ''' Minimum distance between collision objects before collision response takes effect

    :type: float
    '''

    friction: float = None
    ''' Friction force if a collision happened (higher = less movement)

    :type: float
    '''

    impulse_clamp: float = None
    ''' Clamp collision impulses to avoid instability (0.0 to disable clamping)

    :type: float
    '''

    self_distance_min: float = None
    ''' Minimum distance between cloth faces before collision response takes effect

    :type: float
    '''

    self_friction: float = None
    ''' Friction with self contact

    :type: float
    '''

    self_impulse_clamp: float = None
    ''' Clamp collision impulses to avoid instability (0.0 to disable clamping)

    :type: float
    '''

    use_collision: bool = None
    ''' Enable collisions with other objects

    :type: bool
    '''

    use_self_collision: bool = None
    ''' Enable self collisions

    :type: bool
    '''

    vertex_group_object_collisions: str = None
    ''' Triangles with all vertices in this group are not used during object collisions

    :type: str
    '''

    vertex_group_self_collisions: str = None
    ''' Triangles with all vertices in this group are not used during self collisions

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ClothSettings(bpy_struct):
    ''' Cloth simulation settings for an object
    '''

    air_damping: float = None
    ''' Air has normally some thickness which slows falling things down

    :type: float
    '''

    bending_damping: float = None
    ''' Amount of damping in bending behavior

    :type: float
    '''

    bending_model: typing.Union[int, str] = None
    ''' Physical model for simulating bending forces * ANGULAR Angular -- Cloth model with angular bending springs. * LINEAR Linear -- Cloth model with linear bending springs (legacy).

    :type: typing.Union[int, str]
    '''

    bending_stiffness: float = None
    ''' How much the material resists bending

    :type: float
    '''

    bending_stiffness_max: float = None
    ''' Maximum bending stiffness value

    :type: float
    '''

    collider_friction: float = None
    ''' 

    :type: float
    '''

    compression_damping: float = None
    ''' Amount of damping in compression behavior

    :type: float
    '''

    compression_stiffness: float = None
    ''' How much the material resists compression

    :type: float
    '''

    compression_stiffness_max: float = None
    ''' Maximum compression stiffness value

    :type: float
    '''

    density_strength: float = None
    ''' Influence of target density on the simulation

    :type: float
    '''

    density_target: float = None
    ''' Maximum density of hair

    :type: float
    '''

    effector_weights: 'EffectorWeights' = None
    ''' 

    :type: 'EffectorWeights'
    '''

    fluid_density: float = None
    ''' Density (kg/l) of the fluid contained inside the object, used to create a hydrostatic pressure gradient simulating the weight of the internal fluid, or buoyancy from the surrounding fluid if negative

    :type: float
    '''

    goal_default: float = None
    ''' Default Goal (vertex target position) value, when no Vertex Group used

    :type: float
    '''

    goal_friction: float = None
    ''' Goal (vertex target position) friction

    :type: float
    '''

    goal_max: float = None
    ''' Goal maximum, vertex group weights are scaled to match this range

    :type: float
    '''

    goal_min: float = None
    ''' Goal minimum, vertex group weights are scaled to match this range

    :type: float
    '''

    goal_spring: float = None
    ''' Goal (vertex target position) spring stiffness

    :type: float
    '''

    gravity: typing.List[float] = None
    ''' Gravity or external force vector

    :type: typing.List[float]
    '''

    internal_compression_stiffness: float = None
    ''' How much the material resists compression

    :type: float
    '''

    internal_compression_stiffness_max: float = None
    ''' Maximum compression stiffness value

    :type: float
    '''

    internal_friction: float = None
    ''' 

    :type: float
    '''

    internal_spring_max_diversion: float = None
    ''' How much the rays used to connect the internal points can diverge from the vertex normal

    :type: float
    '''

    internal_spring_max_length: float = None
    ''' The maximum length an internal spring can have during creation. If the distance between internal points is greater than this, no internal spring will be created between these points. A length of zero means that there is no length limit

    :type: float
    '''

    internal_spring_normal_check: bool = None
    ''' Require the points the internal springs connect to have opposite normal directions

    :type: bool
    '''

    internal_tension_stiffness: float = None
    ''' How much the material resists stretching

    :type: float
    '''

    internal_tension_stiffness_max: float = None
    ''' Maximum tension stiffness value

    :type: float
    '''

    mass: float = None
    ''' The mass of each vertex on the cloth material

    :type: float
    '''

    pin_stiffness: float = None
    ''' Pin (vertex target position) spring stiffness

    :type: float
    '''

    pressure_factor: float = None
    ''' Ambient pressure (kPa) that balances out between the inside and outside of the object when it has the target volume

    :type: float
    '''

    quality: int = None
    ''' Quality of the simulation in steps per frame (higher is better quality but slower)

    :type: int
    '''

    rest_shape_key: 'ShapeKey' = None
    ''' Shape key to use the rest spring lengths from

    :type: 'ShapeKey'
    '''

    sewing_force_max: float = None
    ''' Maximum sewing force

    :type: float
    '''

    shear_damping: float = None
    ''' Amount of damping in shearing behavior

    :type: float
    '''

    shear_stiffness: float = None
    ''' How much the material resists shearing

    :type: float
    '''

    shear_stiffness_max: float = None
    ''' Maximum shear scaling value

    :type: float
    '''

    shrink_max: float = None
    ''' Max amount to shrink cloth by

    :type: float
    '''

    shrink_min: float = None
    ''' Factor by which to shrink cloth

    :type: float
    '''

    target_volume: float = None
    ''' The mesh volume where the inner/outer pressure will be the same. If set to zero the change in volume will not affect pressure

    :type: float
    '''

    tension_damping: float = None
    ''' Amount of damping in stretching behavior

    :type: float
    '''

    tension_stiffness: float = None
    ''' How much the material resists stretching

    :type: float
    '''

    tension_stiffness_max: float = None
    ''' Maximum tension stiffness value

    :type: float
    '''

    time_scale: float = None
    ''' Cloth speed is multiplied by this value

    :type: float
    '''

    uniform_pressure_force: float = None
    ''' The uniform pressure that is constantly applied to the mesh, in units of Pressure Scale. Can be negative

    :type: float
    '''

    use_dynamic_mesh: bool = None
    ''' Make simulation respect deformations in the base mesh

    :type: bool
    '''

    use_internal_springs: bool = None
    ''' Simulate an internal volume structure by creating springs connecting the opposite sides of the mesh

    :type: bool
    '''

    use_pressure: bool = None
    ''' Simulate pressure inside a closed cloth mesh

    :type: bool
    '''

    use_pressure_volume: bool = None
    ''' Use the Target Volume parameter as the initial volume, instead of calculating it from the mesh itself

    :type: bool
    '''

    use_sewing_springs: bool = None
    ''' Pulls loose edges together

    :type: bool
    '''

    vertex_group_bending: str = None
    ''' Vertex group for fine control over bending stiffness

    :type: str
    '''

    vertex_group_intern: str = None
    ''' Vertex group for fine control over the internal spring stiffness

    :type: str
    '''

    vertex_group_mass: str = None
    ''' Vertex Group for pinning of vertices

    :type: str
    '''

    vertex_group_pressure: str = None
    ''' Vertex Group for where to apply pressure. Zero weight means no pressure while a weight of one means full pressure. Faces with a vertex that has zero weight will be excluded from the volume calculation

    :type: str
    '''

    vertex_group_shear_stiffness: str = None
    ''' Vertex group for fine control over shear stiffness

    :type: str
    '''

    vertex_group_shrink: str = None
    ''' Vertex Group for shrinking cloth

    :type: str
    '''

    vertex_group_structural_stiffness: str = None
    ''' Vertex group for fine control over structural stiffness

    :type: str
    '''

    voxel_cell_size: float = None
    ''' Size of the voxel grid cells for interaction effects

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ClothSolverResult(bpy_struct):
    ''' Result of cloth solver iteration
    '''

    avg_error: float = None
    ''' Average error during substeps

    :type: float
    '''

    avg_iterations: float = None
    ''' Average iterations during substeps

    :type: float
    '''

    max_error: float = None
    ''' Maximum error during substeps

    :type: float
    '''

    max_iterations: int = None
    ''' Maximum iterations during substeps

    :type: int
    '''

    min_error: float = None
    ''' Minimum error during substeps

    :type: float
    '''

    min_iterations: int = None
    ''' Minimum iterations during substeps

    :type: int
    '''

    status: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Status of the solver iteration * SUCCESS Success -- Computation was successful. * NUMERICAL_ISSUE Numerical Issue -- The provided data did not satisfy the prerequisites. * NO_CONVERGENCE No Convergence -- Iterative procedure did not converge. * INVALID_INPUT Invalid Input -- The inputs are invalid, or the algorithm has been improperly called.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CollectionChildren(bpy_struct):
    ''' Collection of child collections
    '''

    def link(self, child: 'Collection'):
        ''' Add this collection as child of this collection

        :param child: Collection to add
        :type child: 'Collection'
        '''
        pass

    def unlink(self, child: 'Collection'):
        ''' Remove this child collection from a collection

        :param child: Collection to remove
        :type child: 'Collection'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CollectionObjects(bpy_struct):
    ''' Collection of collection objects
    '''

    def link(self, object: 'Object'):
        ''' Add this object to a collection

        :param object: Object to add
        :type object: 'Object'
        '''
        pass

    def unlink(self, object: 'Object'):
        ''' Remove this object from a collection

        :param object: Object to remove
        :type object: 'Object'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CollisionSettings(bpy_struct):
    ''' Collision settings for object in physics simulation
    '''

    absorption: float = None
    ''' How much of effector force gets lost during collision with this object (in percent)

    :type: float
    '''

    cloth_friction: float = None
    ''' Friction for cloth collisions

    :type: float
    '''

    damping: float = None
    ''' Amount of damping during collision

    :type: float
    '''

    damping_factor: float = None
    ''' Amount of damping during particle collision

    :type: float
    '''

    damping_random: float = None
    ''' Random variation of damping

    :type: float
    '''

    friction_factor: float = None
    ''' Amount of friction during particle collision

    :type: float
    '''

    friction_random: float = None
    ''' Random variation of friction

    :type: float
    '''

    permeability: float = None
    ''' Chance that the particle will pass through the mesh

    :type: float
    '''

    stickiness: float = None
    ''' Amount of stickiness to surface collision

    :type: float
    '''

    thickness_inner: float = None
    ''' Inner face thickness (only used by softbodies)

    :type: float
    '''

    thickness_outer: float = None
    ''' Outer face thickness

    :type: float
    '''

    use: bool = None
    ''' Enable this objects as a collider for physics systems

    :type: bool
    '''

    use_culling: bool = None
    ''' Cloth collision acts with respect to the collider normals (improves penetration recovery)

    :type: bool
    '''

    use_normal: bool = None
    ''' Cloth collision impulses act in the direction of the collider normals (more reliable in some cases)

    :type: bool
    '''

    use_particle_kill: bool = None
    ''' Kill collided particles

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorManagedDisplaySettings(bpy_struct):
    ''' Color management specific to display device
    '''

    display_device: typing.Union[int, str] = None
    ''' Display device name

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorManagedInputColorspaceSettings(bpy_struct):
    ''' Input color space settings
    '''

    is_data: bool = None
    ''' Treat image as non-color data without color management, like normal or displacement maps

    :type: bool
    '''

    name: typing.Union[int, str] = None
    ''' Color space in the image file, to convert to and from when saving and loading the image * Filmic Log Filmic Log -- Log based filmic shaper with 16.5 stops of latitude, and 25 stops of dynamic range. * Linear Linear -- Rec. 709 (Full Range), Blender native linear space. * Linear ACES Linear ACES -- ACES linear space. * Non-Color Non-Color -- Color space used for images which contains non-color data (i,e, normal maps). * Raw Raw. * sRGB sRGB -- Standard RGB Display Space. * XYZ XYZ.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorManagedSequencerColorspaceSettings(bpy_struct):
    ''' Input color space settings
    '''

    name: typing.Union[int, str] = None
    ''' Color space that the sequencer operates in * Filmic Log Filmic Log -- Log based filmic shaper with 16.5 stops of latitude, and 25 stops of dynamic range. * Linear Linear -- Rec. 709 (Full Range), Blender native linear space. * Linear ACES Linear ACES -- ACES linear space. * Non-Color Non-Color -- Color space used for images which contains non-color data (i,e, normal maps). * Raw Raw. * sRGB sRGB -- Standard RGB Display Space. * XYZ XYZ.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorManagedViewSettings(bpy_struct):
    ''' Color management settings used for displaying images on the display
    '''

    curve_mapping: 'CurveMapping' = None
    ''' Color curve mapping applied before display transform

    :type: 'CurveMapping'
    '''

    exposure: float = None
    ''' Exposure (stops) applied before display transform

    :type: float
    '''

    gamma: float = None
    ''' Amount of gamma modification applied after display transform

    :type: float
    '''

    look: typing.Union[int, str] = None
    ''' Additional transform applied before view transform for artistic needs * NONE None -- Do not modify image in an artistic manner.

    :type: typing.Union[int, str]
    '''

    use_curve_mapping: bool = None
    ''' Use RGB curved for pre-display transformation

    :type: bool
    '''

    view_transform: typing.Union[int, str] = None
    ''' View used when converting image to a display space * NONE None -- Do not perform any color transform on display, use old non-color managed technique for display.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorMapping(bpy_struct):
    ''' Color mapping settings
    '''

    blend_color: typing.List[float] = None
    ''' Blend color to mix with texture output color

    :type: typing.List[float]
    '''

    blend_factor: float = None
    ''' 

    :type: float
    '''

    blend_type: typing.Union[int, str] = None
    ''' Mode used to mix with texture output color

    :type: typing.Union[int, str]
    '''

    brightness: float = None
    ''' Adjust the brightness of the texture

    :type: float
    '''

    color_ramp: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    contrast: float = None
    ''' Adjust the contrast of the texture

    :type: float
    '''

    saturation: float = None
    ''' Adjust the saturation of colors in the texture

    :type: float
    '''

    use_color_ramp: bool = None
    ''' Toggle color ramp operations

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorRamp(bpy_struct):
    ''' Color ramp mapping a scalar value to a color
    '''

    color_mode: typing.Union[int, str] = None
    ''' Set color mode to use for interpolation

    :type: typing.Union[int, str]
    '''

    elements: typing.Union[typing.Dict[str, 'ColorRampElement'], typing.
                           List['ColorRampElement'], 'bpy_prop_collection',
                           'ColorRampElements'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ColorRampElement'], typing.List['ColorRampElement'], 'bpy_prop_collection', 'ColorRampElements']
    '''

    hue_interpolation: typing.Union[int, str] = None
    ''' Set color interpolation

    :type: typing.Union[int, str]
    '''

    interpolation: typing.Union[int, str] = None
    ''' Set interpolation between color stops

    :type: typing.Union[int, str]
    '''

    def evaluate(self, position: float) -> typing.List[float]:
        ''' Evaluate ColorRamp

        :param position: Position, Evaluate ColorRamp at position
        :type position: float
        :rtype: typing.List[float]
        :return: Color, Color at given position
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorRampElement(bpy_struct):
    ''' Element defining a color at a position in the color ramp
    '''

    alpha: float = None
    ''' Set alpha of selected color stop

    :type: float
    '''

    color: typing.List[float] = None
    ''' Set color of selected color stop

    :type: typing.List[float]
    '''

    position: float = None
    ''' Set position of selected color stop

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorRampElements(bpy_struct):
    ''' Collection of Color Ramp Elements
    '''

    def new(self, position: float) -> 'ColorRampElement':
        ''' Add element to ColorRamp

        :param position: Position, Position to add element
        :type position: float
        :rtype: 'ColorRampElement'
        :return: New element
        '''
        pass

    def remove(self, element: 'ColorRampElement'):
        ''' Delete element from ColorRamp

        :param element: Element to remove
        :type element: 'ColorRampElement'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeOutputFileFileSlots(bpy_struct):
    ''' Collection of File Output node slots
    '''

    def new(self, name: str) -> 'NodeSocket':
        ''' Add a file slot to this node

        :param name: Name
        :type name: str
        :rtype: 'NodeSocket'
        :return: New socket
        '''
        pass

    def remove(self, socket: 'NodeSocket'):
        ''' Remove a file slot from this node

        :param socket: The socket to remove
        :type socket: 'NodeSocket'
        '''
        pass

    def clear(self):
        ''' Remove all file slots from this node

        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a file slot to another position

        :param from_index: From Index, Index of the socket to move
        :type from_index: int
        :param to_index: To Index, Target index for the socket
        :type to_index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeOutputFileLayerSlots(bpy_struct):
    ''' Collection of File Output node slots
    '''

    def new(self, name: str) -> 'NodeSocket':
        ''' Add a file slot to this node

        :param name: Name
        :type name: str
        :rtype: 'NodeSocket'
        :return: New socket
        '''
        pass

    def remove(self, socket: 'NodeSocket'):
        ''' Remove a file slot from this node

        :param socket: The socket to remove
        :type socket: 'NodeSocket'
        '''
        pass

    def clear(self):
        ''' Remove all file slots from this node

        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a file slot to another position

        :param from_index: From Index, Index of the socket to move
        :type from_index: int
        :param to_index: To Index, Target index for the socket
        :type to_index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ConsoleLine(bpy_struct):
    ''' Input line for the interactive console
    '''

    body: str = None
    ''' Text in the line

    :type: str
    '''

    current_character: int = None
    ''' 

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Console line type when used in scrollback

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Constraint(bpy_struct):
    ''' Constraint modifying the transformation of objects and bones
    '''

    active: bool = None
    ''' Constraint is the one being edited

    :type: bool
    '''

    enabled: bool = None
    ''' Use the results of this constraint

    :type: bool
    '''

    error_location: float = None
    ''' Amount of residual error in Blender space unit for constraints that work on position

    :type: float
    '''

    error_rotation: float = None
    ''' Amount of residual error in radians for constraints that work on orientation

    :type: float
    '''

    influence: float = None
    ''' Amount of influence constraint will have on the final solution

    :type: float
    '''

    is_override_data: bool = None
    ''' In a local override object, whether this constraint comes from the linked reference object, or is local to the override

    :type: bool
    '''

    is_proxy_local: bool = None
    ''' Constraint was added in this proxy instance (i.e. did not belong to source Armature)

    :type: bool
    '''

    is_valid: bool = None
    ''' Constraint has valid settings and can be evaluated

    :type: bool
    '''

    mute: bool = None
    ''' Enable/Disable Constraint

    :type: bool
    '''

    name: str = None
    ''' Constraint name

    :type: str
    '''

    owner_space: typing.Union[int, str] = None
    ''' Space that owner is evaluated in * WORLD World Space -- The constraint is applied relative to the world coordinate system. * CUSTOM Custom Space -- The constraint is applied in local space of a custom object/bone/vertex group. * POSE Pose Space -- The constraint is applied in Pose Space, the object transformation is ignored. * LOCAL_WITH_PARENT Local With Parent -- The constraint is applied relative to the rest pose local coordinate system of the bone, thus including the parent-induced transformation. * LOCAL Local Space -- The constraint is applied relative to the local coordinate system of the object.

    :type: typing.Union[int, str]
    '''

    show_expanded: bool = None
    ''' Constraint's panel is expanded in UI

    :type: bool
    '''

    space_object: 'Object' = None
    ''' Object for Custom Space

    :type: 'Object'
    '''

    space_subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target_space: typing.Union[int, str] = None
    ''' Space that target is evaluated in * WORLD World Space -- The transformation of the target is evaluated relative to the world coordinate system. * CUSTOM Custom Space -- The transformation of the target is evaluated relative to a custom object/bone/vertex group. * POSE Pose Space -- The transformation of the target is only evaluated in the Pose Space, the target armature object transformation is ignored. * LOCAL_WITH_PARENT Local With Parent -- The transformation of the target bone is evaluated relative to its rest pose local coordinate system, thus including the parent-induced transformation. * LOCAL Local Space -- The transformation of the target is evaluated relative to its local coordinate system. * LOCAL_OWNER_ORIENT Local Space (Owner Orientation) -- The transformation of the target bone is evaluated relative to its local coordinate system, followed by a correction for the difference in target and owner rest pose orientations. When applied as local transform to the owner produces the same global motion as the target if the parents are still in rest pose.

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' * CAMERA_SOLVER Camera Solver. * FOLLOW_TRACK Follow Track. * OBJECT_SOLVER Object Solver. * COPY_LOCATION Copy Location -- Copy the location of a target (with an optional offset), so that they move together. * COPY_ROTATION Copy Rotation -- Copy the rotation of a target (with an optional offset), so that they rotate together. * COPY_SCALE Copy Scale -- Copy the scale factors of a target (with an optional offset), so that they are scaled by the same amount. * COPY_TRANSFORMS Copy Transforms -- Copy all the transformations of a target, so that they move together. * LIMIT_DISTANCE Limit Distance -- Restrict movements to within a certain distance of a target (at the time of constraint evaluation only). * LIMIT_LOCATION Limit Location -- Restrict movement along each axis within given ranges. * LIMIT_ROTATION Limit Rotation -- Restrict rotation along each axis within given ranges. * LIMIT_SCALE Limit Scale -- Restrict scaling along each axis with given ranges. * MAINTAIN_VOLUME Maintain Volume -- Compensate for scaling one axis by applying suitable scaling to the other two axes. * TRANSFORM Transformation -- Use one transform property from target to control another (or same) property on owner. * TRANSFORM_CACHE Transform Cache -- Look up the transformation matrix from an external file. * CLAMP_TO Clamp To -- Restrict movements to lie along a curve by remapping location along curve's longest axis. * DAMPED_TRACK Damped Track -- Point towards a target by performing the smallest rotation necessary. * IK Inverse Kinematics -- Control a chain of bones by specifying the endpoint target (Bones only). * LOCKED_TRACK Locked Track -- Rotate around the specified ('locked') axis to point towards a target. * SPLINE_IK Spline IK -- Align chain of bones along a curve (Bones only). * STRETCH_TO Stretch To -- Stretch along Y-Axis to point towards a target. * TRACK_TO Track To -- Legacy tracking constraint prone to twisting artifacts. * ACTION Action -- Use transform property of target to look up pose for owner from an Action. * ARMATURE Armature -- Apply weight-blended transformation from multiple bones like the Armature modifier. * CHILD_OF Child Of -- Make target the 'detachable' parent of owner. * FLOOR Floor -- Use position (and optionally rotation) of target to define a 'wall' or 'floor' that the owner can not cross. * FOLLOW_PATH Follow Path -- Use to animate an object/bone following a path. * PIVOT Pivot -- Change pivot point for transforms (buggy). * SHRINKWRAP Shrinkwrap -- Restrict movements to surface of target mesh.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ConstraintTarget(bpy_struct):
    ''' Target object for multi-target constraints
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ConstraintTargetBone(bpy_struct):
    ''' Target bone for multi-target constraints
    '''

    subtarget: str = None
    ''' Target armature bone

    :type: str
    '''

    target: 'Object' = None
    ''' Target armature

    :type: 'Object'
    '''

    weight: float = None
    ''' Blending weight of this bone

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Context(bpy_struct):
    ''' Current windowmanager and data context
    '''

    area: 'Area' = None
    ''' 

    :type: 'Area'
    '''

    asset_file_handle: 'FileSelectEntry' = None
    ''' The file of an active asset. Avoid using this, it will be replaced by a proper AssetHandle design

    :type: 'FileSelectEntry'
    '''

    blend_data: 'BlendData' = None
    ''' 

    :type: 'BlendData'
    '''

    collection: 'Collection' = None
    ''' 

    :type: 'Collection'
    '''

    engine: str = None
    ''' 

    :type: str
    '''

    gizmo_group: 'GizmoGroup' = None
    ''' 

    :type: 'GizmoGroup'
    '''

    layer_collection: 'LayerCollection' = None
    ''' 

    :type: 'LayerCollection'
    '''

    mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    preferences: 'Preferences' = None
    ''' 

    :type: 'Preferences'
    '''

    region: 'Region' = None
    ''' 

    :type: 'Region'
    '''

    region_data: 'RegionView3D' = None
    ''' 

    :type: 'RegionView3D'
    '''

    scene: 'Scene' = None
    ''' 

    :type: 'Scene'
    '''

    screen: 'Screen' = None
    ''' 

    :type: 'Screen'
    '''

    space_data: 'Space' = None
    ''' 

    :type: 'Space'
    '''

    tool_settings: 'ToolSettings' = None
    ''' 

    :type: 'ToolSettings'
    '''

    view_layer: 'ViewLayer' = None
    ''' 

    :type: 'ViewLayer'
    '''

    window: 'Window' = None
    ''' 

    :type: 'Window'
    '''

    window_manager: 'WindowManager' = None
    ''' 

    :type: 'WindowManager'
    '''

    workspace: 'WorkSpace' = None
    ''' 

    :type: 'WorkSpace'
    '''

    def evaluated_depsgraph_get(self) -> 'Depsgraph':
        ''' Get the dependency graph for the current scene and view layer, to access to data-blocks with animation and modifiers applied. If any data-blocks have been edited, the dependency graph will be updated. This invalidates all references to evaluated data-blocks from the dependency graph.

        :rtype: 'Depsgraph'
        :return: Evaluated dependency graph
        '''
        pass

    def copy(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CryptomatteEntry(bpy_struct):
    encoded_hash: float = None
    ''' 

    :type: float
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveMap(bpy_struct):
    ''' Curve in a curve mapping
    '''

    points: typing.Union[typing.Dict[str, 'CurveMapPoint'], typing.
                         List['CurveMapPoint'], 'bpy_prop_collection',
                         'CurveMapPoints'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'CurveMapPoint'], typing.List['CurveMapPoint'], 'bpy_prop_collection', 'CurveMapPoints']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveMapPoint(bpy_struct):
    ''' Point of a curve used for a curve mapping
    '''

    handle_type: typing.Union[int, str] = None
    ''' Curve interpolation at this point: Bezier or vector

    :type: typing.Union[int, str]
    '''

    location: typing.List[float] = None
    ''' X/Y coordinates of the curve point

    :type: typing.List[float]
    '''

    select: bool = None
    ''' Selection state of the curve point

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveMapPoints(bpy_struct):
    ''' Collection of Curve Map Points
    '''

    def new(self, position: float, value: float) -> 'CurveMapPoint':
        ''' Add point to CurveMap

        :param position: Position, Position to add point
        :type position: float
        :param value: Value, Value of point
        :type value: float
        :rtype: 'CurveMapPoint'
        :return: New point
        '''
        pass

    def remove(self, point: 'CurveMapPoint'):
        ''' Delete point from CurveMap

        :param point: PointElement to remove
        :type point: 'CurveMapPoint'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveMapping(bpy_struct):
    ''' Curve mapping to map color, vector and scalar values to other values using a user defined curve
    '''

    black_level: typing.List[float] = None
    ''' For RGB curves, the color that black is mapped to

    :type: typing.List[float]
    '''

    clip_max_x: float = None
    ''' 

    :type: float
    '''

    clip_max_y: float = None
    ''' 

    :type: float
    '''

    clip_min_x: float = None
    ''' 

    :type: float
    '''

    clip_min_y: float = None
    ''' 

    :type: float
    '''

    curves: typing.Union[typing.Dict[str, 'CurveMap'], typing.
                         List['CurveMap'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'CurveMap'], typing.List['CurveMap'], 'bpy_prop_collection']
    '''

    extend: typing.Union[int, str] = None
    ''' Extrapolate the curve or extend it horizontally

    :type: typing.Union[int, str]
    '''

    tone: typing.Union[int, str] = None
    ''' Tone of the curve

    :type: typing.Union[int, str]
    '''

    use_clip: bool = None
    ''' Force the curve view to fit a defined boundary

    :type: bool
    '''

    white_level: typing.List[float] = None
    ''' For RGB curves, the color that white is mapped to

    :type: typing.List[float]
    '''

    def update(self):
        ''' Update curve mapping after making changes

        '''
        pass

    def reset_view(self):
        ''' Reset the curve mapping grid to its clipping size

        '''
        pass

    def initialize(self):
        ''' Initialize curve

        '''
        pass

    def evaluate(self, curve: 'CurveMap', position: float) -> float:
        ''' Evaluate curve at given location

        :param curve: curve, Curve to evaluate
        :type curve: 'CurveMap'
        :param position: Position, Position to evaluate curve at
        :type position: float
        :rtype: float
        :return: Value, Value of curve at given location
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurvePaintSettings(bpy_struct):
    corner_angle: float = None
    ''' Angles above this are considered corners

    :type: float
    '''

    curve_type: typing.Union[int, str] = None
    ''' Type of curve to use for new strokes

    :type: typing.Union[int, str]
    '''

    depth_mode: typing.Union[int, str] = None
    ''' Method of projecting depth

    :type: typing.Union[int, str]
    '''

    error_threshold: int = None
    ''' Allow deviation for a smoother, less precise line

    :type: int
    '''

    fit_method: typing.Union[int, str] = None
    ''' Curve fitting method * REFIT Refit -- Incrementally refit the curve (high quality). * SPLIT Split -- Split the curve until the tolerance is met (fast).

    :type: typing.Union[int, str]
    '''

    radius_max: float = None
    ''' Radius to use when the maximum pressure is applied (or when a tablet isn't used)

    :type: float
    '''

    radius_min: float = None
    ''' Minimum radius when the minimum pressure is applied (also the minimum when tapering)

    :type: float
    '''

    radius_taper_end: float = None
    ''' Taper factor for the radius of each point along the curve

    :type: float
    '''

    radius_taper_start: float = None
    ''' Taper factor for the radius of each point along the curve

    :type: float
    '''

    surface_offset: float = None
    ''' Offset the stroke from the surface

    :type: float
    '''

    surface_plane: typing.Union[int, str] = None
    ''' Plane for projected stroke * NORMAL_VIEW Normal/View -- Display perpendicular to the surface. * NORMAL_SURFACE Normal/Surface -- Display aligned to the surface. * VIEW View -- Display aligned to the viewport.

    :type: typing.Union[int, str]
    '''

    use_corners_detect: bool = None
    ''' Detect corners and use non-aligned handles

    :type: bool
    '''

    use_offset_absolute: bool = None
    ''' Apply a fixed offset (don't scale by the radius)

    :type: bool
    '''

    use_pressure_radius: bool = None
    ''' Map tablet pressure to curve radius

    :type: bool
    '''

    use_stroke_endpoints: bool = None
    ''' Use the start of the stroke for the depth

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveProfile(bpy_struct):
    ''' Profile Path editor used to build a profile path
    '''

    points: typing.Union[typing.Dict[str, 'CurveProfilePoint'], typing.
                         List['CurveProfilePoint'], 'bpy_prop_collection',
                         'CurveProfilePoints'] = None
    ''' Profile control points

    :type: typing.Union[typing.Dict[str, 'CurveProfilePoint'], typing.List['CurveProfilePoint'], 'bpy_prop_collection', 'CurveProfilePoints']
    '''

    preset: typing.Union[int, str] = None
    ''' * LINE Line -- Default. * SUPPORTS Support Loops -- Loops on each side of the profile. * CORNICE Cornice Molding. * CROWN Crown Molding. * STEPS Steps -- A number of steps defined by the segments.

    :type: typing.Union[int, str]
    '''

    segments: typing.Union[typing.Dict[str, 'CurveProfilePoint'], typing.
                           List['CurveProfilePoint'],
                           'bpy_prop_collection'] = None
    ''' Segments sampled from control points

    :type: typing.Union[typing.Dict[str, 'CurveProfilePoint'], typing.List['CurveProfilePoint'], 'bpy_prop_collection']
    '''

    use_clip: bool = None
    ''' Force the path view to fit a defined boundary

    :type: bool
    '''

    use_sample_even_lengths: bool = None
    ''' Sample edges with even lengths

    :type: bool
    '''

    use_sample_straight_edges: bool = None
    ''' Sample edges with vector handles

    :type: bool
    '''

    def update(self):
        ''' Refresh internal data, remove doubles and clip points

        '''
        pass

    def reset_view(self):
        ''' Reset the curve profile grid to its clipping size

        '''
        pass

    def initialize(self, totsegments: int):
        ''' Set the number of display segments and fill tables

        :param totsegments: The number of segment values to initialize the segments table with
        :type totsegments: int
        '''
        pass

    def evaluate(self, length_portion: float) -> typing.List[float]:
        ''' Evaluate the at the given portion of the path length

        :param length_portion: Length Portion, Portion of the path length to travel before evaluation
        :type length_portion: float
        :rtype: typing.List[float]
        :return: Location, The location at the given portion of the profile
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveProfilePoint(bpy_struct):
    ''' Point of a path used to define a profile
    '''

    handle_type_1: typing.Union[int, str] = None
    ''' Path interpolation at this point

    :type: typing.Union[int, str]
    '''

    handle_type_2: typing.Union[int, str] = None
    ''' Path interpolation at this point

    :type: typing.Union[int, str]
    '''

    location: typing.List[float] = None
    ''' X/Y coordinates of the path point

    :type: typing.List[float]
    '''

    select: bool = None
    ''' Selection state of the path point

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveProfilePoints(bpy_struct):
    ''' Collection of Profile Points
    '''

    def add(self, x: float, y: float) -> 'CurveProfilePoint':
        ''' Add point to the profile

        :param x: X Position, X Position for new point
        :type x: float
        :param y: Y Position, Y Position for new point
        :type y: float
        :rtype: 'CurveProfilePoint'
        :return: New point
        '''
        pass

    def remove(self, point: 'CurveProfilePoint'):
        ''' Delete point from the profile

        :param point: Point to remove
        :type point: 'CurveProfilePoint'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveSplines(bpy_struct):
    ''' Collection of curve splines
    '''

    active: 'Spline' = None
    ''' Active curve spline

    :type: 'Spline'
    '''

    def new(self, type: typing.Union[int, str]) -> 'Spline':
        ''' Add a new spline to the curve

        :param type: type for the new spline
        :type type: typing.Union[int, str]
        :rtype: 'Spline'
        :return: The newly created spline
        '''
        pass

    def remove(self, spline: 'Spline'):
        ''' Remove a spline from a curve

        :param spline: The spline to remove
        :type spline: 'Spline'
        '''
        pass

    def clear(self):
        ''' Remove all splines from a curve

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DashGpencilModifierSegment(bpy_struct):
    ''' Configuration for a single dash segment
    '''

    dash: int = None
    ''' The number of consecutive points from the original stroke to include in this segment

    :type: int
    '''

    gap: int = None
    ''' The number of points skipped after this segment

    :type: int
    '''

    material_index: int = None
    ''' Use this index on generated segment. -1 means using the existing material

    :type: int
    '''

    name: str = None
    ''' Name of the dash segment

    :type: str
    '''

    opacity: float = None
    ''' The factor to apply to the original point's opacity for the new points

    :type: float
    '''

    radius: float = None
    ''' The factor to apply to the original point's radius for the new points

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Depsgraph(bpy_struct):
    ids: typing.Union[typing.Dict[str, 'ID'], typing.
                      List['ID'], 'bpy_prop_collection'] = None
    ''' All evaluated data-blocks

    :type: typing.Union[typing.Dict[str, 'ID'], typing.List['ID'], 'bpy_prop_collection']
    '''

    mode: typing.Union[int, str] = None
    ''' Evaluation mode * VIEWPORT Viewport -- Viewport non-rendered mode. * RENDER Render -- Render.

    :type: typing.Union[int, str]
    '''

    object_instances: typing.Union[
        typing.Dict[str, 'DepsgraphObjectInstance'], typing.
        List['DepsgraphObjectInstance'], 'bpy_prop_collection'] = None
    ''' All object instances to display or render (Warning: Only use this as an iterator, never as a sequence, and do not keep any references to its items)

    :type: typing.Union[typing.Dict[str, 'DepsgraphObjectInstance'], typing.List['DepsgraphObjectInstance'], 'bpy_prop_collection']
    '''

    objects: typing.Union[typing.Dict[str, 'Object'], typing.
                          List['Object'], 'bpy_prop_collection'] = None
    ''' Evaluated objects in the dependency graph

    :type: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'], 'bpy_prop_collection']
    '''

    scene: 'Scene' = None
    ''' Original scene dependency graph is built for

    :type: 'Scene'
    '''

    scene_eval: 'Scene' = None
    ''' Original scene dependency graph is built for

    :type: 'Scene'
    '''

    updates: typing.Union[typing.Dict[str, 'DepsgraphUpdate'], typing.
                          List['DepsgraphUpdate'],
                          'bpy_prop_collection'] = None
    ''' Updates to data-blocks

    :type: typing.Union[typing.Dict[str, 'DepsgraphUpdate'], typing.List['DepsgraphUpdate'], 'bpy_prop_collection']
    '''

    view_layer: 'ViewLayer' = None
    ''' Original view layer dependency graph is built for

    :type: 'ViewLayer'
    '''

    view_layer_eval: 'ViewLayer' = None
    ''' Original view layer dependency graph is built for

    :type: 'ViewLayer'
    '''

    def debug_relations_graphviz(self, filename: str):
        ''' debug_relations_graphviz

        :param filename: File Name, Output path for the graphviz debug file
        :type filename: str
        '''
        pass

    def debug_stats_gnuplot(self, filename: str, output_filename: str):
        ''' debug_stats_gnuplot

        :param filename: File Name, Output path for the gnuplot debug file
        :type filename: str
        :param output_filename: Output File Name, File name where gnuplot script will save the result
        :type output_filename: str
        '''
        pass

    def debug_tag_update(self):
        ''' debug_tag_update

        '''
        pass

    def debug_stats(self) -> str:
        ''' Report the number of elements in the Dependency Graph

        :rtype: str
        :return: result
        '''
        pass

    def update(self):
        ''' Re-evaluate any modified data-blocks, for example for animation or modifiers. This invalidates all references to evaluated data-blocks from this dependency graph.

        '''
        pass

    def id_eval_get(self, id: 'ID') -> 'ID':
        ''' id_eval_get

        :param id: Original ID to get evaluated complementary part for
        :type id: 'ID'
        :rtype: 'ID'
        :return: Evaluated ID for the given original one
        '''
        pass

    def id_type_updated(self, id_type: typing.Union[int, str]) -> bool:
        ''' id_type_updated

        :param id_type: ID Type
        :type id_type: typing.Union[int, str]
        :rtype: bool
        :return: Updated, True if any datablock with this type was added, updated or removed
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DepsgraphObjectInstance(bpy_struct):
    ''' Extended information about dependency graph object iterator (Warning: All data here is 'evaluated' one, not original .blend IDs)
    '''

    instance_object: 'Object' = None
    ''' Evaluated object which is being instanced by this iterator

    :type: 'Object'
    '''

    is_instance: bool = None
    ''' Denotes if the object is generated by another object

    :type: bool
    '''

    matrix_world: typing.List[float] = None
    ''' Generated transform matrix in world space

    :type: typing.List[float]
    '''

    object: 'Object' = None
    ''' Evaluated object the iterator points to

    :type: 'Object'
    '''

    orco: typing.List[float] = None
    ''' Generated coordinates in parent object space

    :type: typing.List[float]
    '''

    parent: 'Object' = None
    ''' If the object is an instance, the parent object that generated it

    :type: 'Object'
    '''

    particle_system: 'ParticleSystem' = None
    ''' Evaluated particle system that this object was instanced from

    :type: 'ParticleSystem'
    '''

    persistent_id: typing.List[int] = None
    ''' Persistent identifier for inter-frame matching of objects with motion blur

    :type: typing.List[int]
    '''

    random_id: int = None
    ''' Random id for this instance, typically for randomized shading

    :type: int
    '''

    show_particles: bool = None
    ''' Particles part of the object should be visible in the render

    :type: bool
    '''

    show_self: bool = None
    ''' The object geometry itself should be visible in the render

    :type: bool
    '''

    uv: typing.List[float] = None
    ''' UV coordinates in parent object space

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DepsgraphUpdate(bpy_struct):
    ''' Information about ID that was updated
    '''

    id: 'ID' = None
    ''' Updated data-block

    :type: 'ID'
    '''

    is_updated_geometry: bool = None
    ''' Object geometry is updated

    :type: bool
    '''

    is_updated_shading: bool = None
    ''' Object shading is updated

    :type: bool
    '''

    is_updated_transform: bool = None
    ''' Object transformation is updated

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DisplaySafeAreas(bpy_struct):
    ''' Safe areas used in 3D view and the sequencer
    '''

    action: typing.List[float] = None
    ''' Safe area for general elements

    :type: typing.List[float]
    '''

    action_center: typing.List[float] = None
    ''' Safe area for general elements in a different aspect ratio

    :type: typing.List[float]
    '''

    title: typing.List[float] = None
    ''' Safe area for text and graphics

    :type: typing.List[float]
    '''

    title_center: typing.List[float] = None
    ''' Safe area for text and graphics in a different aspect ratio

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DopeSheet(bpy_struct):
    ''' Settings for filtering the channels shown in animation editors
    '''

    filter_collection: 'Collection' = None
    ''' Collection that included object should be a member of

    :type: 'Collection'
    '''

    filter_fcurve_name: str = None
    ''' F-Curve live filtering string

    :type: str
    '''

    filter_text: str = None
    ''' Live filtering string

    :type: str
    '''

    show_armatures: bool = None
    ''' Include visualization of armature related animation data

    :type: bool
    '''

    show_cache_files: bool = None
    ''' Include visualization of cache file related animation data

    :type: bool
    '''

    show_cameras: bool = None
    ''' Include visualization of camera related animation data

    :type: bool
    '''

    show_curves: bool = None
    ''' Include visualization of curve related animation data

    :type: bool
    '''

    show_datablock_filters: bool = None
    ''' Show options for whether channels related to certain types of data are included

    :type: bool
    '''

    show_expanded_summary: bool = None
    ''' Collapse summary when shown, so all other channels get hidden (Dope Sheet editors only)

    :type: bool
    '''

    show_gpencil: bool = None
    ''' Include visualization of Grease Pencil related animation data and frames

    :type: bool
    '''

    show_hairs: bool = None
    ''' Include visualization of hair related animation data

    :type: bool
    '''

    show_hidden: bool = None
    ''' Include channels from objects/bone that are not visible

    :type: bool
    '''

    show_lattices: bool = None
    ''' Include visualization of lattice related animation data

    :type: bool
    '''

    show_lights: bool = None
    ''' Include visualization of light related animation data

    :type: bool
    '''

    show_linestyles: bool = None
    ''' Include visualization of Line Style related Animation data

    :type: bool
    '''

    show_materials: bool = None
    ''' Include visualization of material related animation data

    :type: bool
    '''

    show_meshes: bool = None
    ''' Include visualization of mesh related animation data

    :type: bool
    '''

    show_metaballs: bool = None
    ''' Include visualization of metaball related animation data

    :type: bool
    '''

    show_missing_nla: bool = None
    ''' Include animation data-blocks with no NLA data (NLA editor only)

    :type: bool
    '''

    show_modifiers: bool = None
    ''' Include visualization of animation data related to data-blocks linked to modifiers

    :type: bool
    '''

    show_movieclips: bool = None
    ''' Include visualization of movie clip related animation data

    :type: bool
    '''

    show_nodes: bool = None
    ''' Include visualization of node related animation data

    :type: bool
    '''

    show_only_errors: bool = None
    ''' Only include F-Curves and drivers that are disabled or have errors

    :type: bool
    '''

    show_only_selected: bool = None
    ''' Only include channels relating to selected objects and data

    :type: bool
    '''

    show_particles: bool = None
    ''' Include visualization of particle related animation data

    :type: bool
    '''

    show_pointclouds: bool = None
    ''' Include visualization of point cloud related animation data

    :type: bool
    '''

    show_scenes: bool = None
    ''' Include visualization of scene related animation data

    :type: bool
    '''

    show_shapekeys: bool = None
    ''' Include visualization of shape key related animation data

    :type: bool
    '''

    show_speakers: bool = None
    ''' Include visualization of speaker related animation data

    :type: bool
    '''

    show_summary: bool = None
    ''' Display an additional 'summary' line (Dope Sheet editors only)

    :type: bool
    '''

    show_textures: bool = None
    ''' Include visualization of texture related animation data

    :type: bool
    '''

    show_transforms: bool = None
    ''' Include visualization of object-level animation data (mostly transforms)

    :type: bool
    '''

    show_volumes: bool = None
    ''' Include visualization of volume related animation data

    :type: bool
    '''

    show_worlds: bool = None
    ''' Include visualization of world related animation data

    :type: bool
    '''

    source: 'ID' = None
    ''' ID-Block representing source data, usually ID_SCE (i.e. Scene)

    :type: 'ID'
    '''

    use_datablock_sort: bool = None
    ''' Alphabetically sorts data-blocks - mainly objects in the scene (disable to increase viewport speed)

    :type: bool
    '''

    use_filter_invert: bool = None
    ''' Invert filter search

    :type: bool
    '''

    use_multi_word_filter: bool = None
    ''' Perform fuzzy/multi-word matching. Warning: May be slow

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Driver(bpy_struct):
    ''' Driver for the value of a setting based on an external value
    '''

    expression: str = None
    ''' Expression to use for Scripted Expression

    :type: str
    '''

    is_simple_expression: bool = None
    ''' The scripted expression can be evaluated without using the full python interpreter

    :type: bool
    '''

    is_valid: bool = None
    ''' Driver could not be evaluated in past, so should be skipped

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Driver type

    :type: typing.Union[int, str]
    '''

    use_self: bool = None
    ''' Include a 'self' variable in the name-space, so drivers can easily reference the data being modified (object, bone, etc...)

    :type: bool
    '''

    variables: typing.Union[typing.Dict[str, 'DriverVariable'], typing.
                            List['DriverVariable'], 'bpy_prop_collection',
                            'ChannelDriverVariables'] = None
    ''' Properties acting as inputs for this driver

    :type: typing.Union[typing.Dict[str, 'DriverVariable'], typing.List['DriverVariable'], 'bpy_prop_collection', 'ChannelDriverVariables']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DriverTarget(bpy_struct):
    ''' Source of input values for driver variables
    '''

    bone_target: str = None
    ''' Name of PoseBone to use as target

    :type: str
    '''

    data_path: str = None
    ''' RNA Path (from ID-block) to property used

    :type: str
    '''

    id: 'ID' = None
    ''' ID-block that the specific property used can be found from (id_type property must be set first)

    :type: 'ID'
    '''

    id_type: typing.Union[int, str] = None
    ''' Type of ID-block that can be used

    :type: typing.Union[int, str]
    '''

    rotation_mode: typing.Union[int, str] = None
    ''' Mode for calculating rotation channel values * AUTO Auto Euler -- Euler using the rotation order of the target. * XYZ XYZ Euler -- Euler using the XYZ rotation order. * XZY XZY Euler -- Euler using the XZY rotation order. * YXZ YXZ Euler -- Euler using the YXZ rotation order. * YZX YZX Euler -- Euler using the YZX rotation order. * ZXY ZXY Euler -- Euler using the ZXY rotation order. * ZYX ZYX Euler -- Euler using the ZYX rotation order. * QUATERNION Quaternion -- Quaternion rotation. * SWING_TWIST_X Swing and X Twist -- Decompose into a swing rotation to aim the X axis, followed by twist around it. * SWING_TWIST_Y Swing and Y Twist -- Decompose into a swing rotation to aim the Y axis, followed by twist around it. * SWING_TWIST_Z Swing and Z Twist -- Decompose into a swing rotation to aim the Z axis, followed by twist around it.

    :type: typing.Union[int, str]
    '''

    transform_space: typing.Union[int, str] = None
    ''' Space in which transforms are used * WORLD_SPACE World Space -- Transforms include effects of parenting/restpose and constraints. * TRANSFORM_SPACE Transform Space -- Transforms don't include parenting/restpose or constraints. * LOCAL_SPACE Local Space -- Transforms include effects of constraints but not parenting/restpose.

    :type: typing.Union[int, str]
    '''

    transform_type: typing.Union[int, str] = None
    ''' Driver variable type

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DriverVariable(bpy_struct):
    ''' Variable from some source/target for driver relationship
    '''

    is_name_valid: bool = None
    ''' Is this a valid name for a driver variable

    :type: bool
    '''

    name: str = None
    ''' Name to use in scripted expressions/functions (no spaces or dots are allowed, and must start with a letter)

    :type: str
    '''

    targets: typing.Union[typing.Dict[str, 'DriverTarget'], typing.
                          List['DriverTarget'], 'bpy_prop_collection'] = None
    ''' Sources of input data for evaluating this variable

    :type: typing.Union[typing.Dict[str, 'DriverTarget'], typing.List['DriverTarget'], 'bpy_prop_collection']
    '''

    type: typing.Union[int, str] = None
    ''' Driver variable type * SINGLE_PROP Single Property -- Use the value from some RNA property (Default). * TRANSFORMS Transform Channel -- Final transformation value of object or bone. * ROTATION_DIFF Rotational Difference -- Use the angle between two bones. * LOC_DIFF Distance -- Distance between two bones or objects.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DynamicPaintBrushSettings(bpy_struct):
    ''' Brush settings
    '''

    invert_proximity: bool = None
    ''' Proximity falloff is applied inside the volume

    :type: bool
    '''

    paint_alpha: float = None
    ''' Paint alpha

    :type: float
    '''

    paint_color: typing.List[float] = None
    ''' Color of the paint

    :type: typing.List[float]
    '''

    paint_distance: float = None
    ''' Maximum distance from brush to mesh surface to affect paint

    :type: float
    '''

    paint_ramp: 'ColorRamp' = None
    ''' Color ramp used to define proximity falloff

    :type: 'ColorRamp'
    '''

    paint_source: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    paint_wetness: float = None
    ''' Paint wetness, visible in wetmap (some effects only affect wet paint)

    :type: float
    '''

    particle_system: 'ParticleSystem' = None
    ''' The particle system to paint with

    :type: 'ParticleSystem'
    '''

    proximity_falloff: typing.Union[int, str] = None
    ''' Proximity falloff type

    :type: typing.Union[int, str]
    '''

    ray_direction: typing.Union[int, str] = None
    ''' Ray direction to use for projection (if brush object is located in that direction it's painted)

    :type: typing.Union[int, str]
    '''

    smooth_radius: float = None
    ''' Smooth falloff added after solid radius

    :type: float
    '''

    smudge_strength: float = None
    ''' Smudge effect strength

    :type: float
    '''

    solid_radius: float = None
    ''' Radius that will be painted solid

    :type: float
    '''

    use_absolute_alpha: bool = None
    ''' Only increase alpha value if paint alpha is higher than existing

    :type: bool
    '''

    use_negative_volume: bool = None
    ''' Negate influence inside the volume

    :type: bool
    '''

    use_paint_erase: bool = None
    ''' Erase / remove paint instead of adding it

    :type: bool
    '''

    use_particle_radius: bool = None
    ''' Use radius from particle settings

    :type: bool
    '''

    use_proximity_project: bool = None
    ''' Brush is projected to canvas from defined direction within brush proximity

    :type: bool
    '''

    use_proximity_ramp_alpha: bool = None
    ''' Only read color ramp alpha

    :type: bool
    '''

    use_smudge: bool = None
    ''' Make this brush to smudge existing paint as it moves

    :type: bool
    '''

    use_velocity_alpha: bool = None
    ''' Multiply brush influence by velocity color ramp alpha

    :type: bool
    '''

    use_velocity_color: bool = None
    ''' Replace brush color by velocity color ramp

    :type: bool
    '''

    use_velocity_depth: bool = None
    ''' Multiply brush intersection depth (displace, waves) by velocity ramp alpha

    :type: bool
    '''

    velocity_max: float = None
    ''' Velocity considered as maximum influence (Blender units per frame)

    :type: float
    '''

    velocity_ramp: 'ColorRamp' = None
    ''' Color ramp used to define brush velocity effect

    :type: 'ColorRamp'
    '''

    wave_clamp: float = None
    ''' Maximum level of surface intersection used to influence waves (use 0.0 to disable)

    :type: float
    '''

    wave_factor: float = None
    ''' Multiplier for wave influence of this brush

    :type: float
    '''

    wave_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DynamicPaintCanvasSettings(bpy_struct):
    ''' Dynamic Paint canvas settings
    '''

    canvas_surfaces: typing.Union[
        typing.Dict[str, 'DynamicPaintSurface'], typing.
        List['DynamicPaintSurface'], 'bpy_prop_collection',
        'DynamicPaintSurfaces'] = None
    ''' Paint surface list

    :type: typing.Union[typing.Dict[str, 'DynamicPaintSurface'], typing.List['DynamicPaintSurface'], 'bpy_prop_collection', 'DynamicPaintSurfaces']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DynamicPaintSurface(bpy_struct):
    ''' A canvas surface layer
    '''

    brush_collection: 'Collection' = None
    ''' Only use brush objects from this collection

    :type: 'Collection'
    '''

    brush_influence_scale: float = None
    ''' Adjust influence brush objects have on this surface

    :type: float
    '''

    brush_radius_scale: float = None
    ''' Adjust radius of proximity brushes or particles for this surface

    :type: float
    '''

    color_dry_threshold: float = None
    ''' The wetness level when colors start to shift to the background

    :type: float
    '''

    color_spread_speed: float = None
    ''' How fast colors get mixed within wet paint

    :type: float
    '''

    depth_clamp: float = None
    ''' Maximum level of depth intersection in object space (use 0.0 to disable)

    :type: float
    '''

    displace_factor: float = None
    ''' Strength of displace when applied to the mesh

    :type: float
    '''

    displace_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    dissolve_speed: int = None
    ''' Approximately in how many frames should dissolve happen

    :type: int
    '''

    drip_acceleration: float = None
    ''' How much surface acceleration affects dripping

    :type: float
    '''

    drip_velocity: float = None
    ''' How much surface velocity affects dripping

    :type: float
    '''

    dry_speed: int = None
    ''' Approximately in how many frames should drying happen

    :type: int
    '''

    effect_ui: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    effector_weights: 'EffectorWeights' = None
    ''' 

    :type: 'EffectorWeights'
    '''

    frame_end: int = None
    ''' Simulation end frame

    :type: int
    '''

    frame_start: int = None
    ''' Simulation start frame

    :type: int
    '''

    frame_substeps: int = None
    ''' Do extra frames between scene frames to ensure smooth motion

    :type: int
    '''

    image_fileformat: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    image_output_path: str = None
    ''' Directory to save the textures

    :type: str
    '''

    image_resolution: int = None
    ''' Output image resolution

    :type: int
    '''

    init_color: typing.List[float] = None
    ''' Initial color of the surface

    :type: typing.List[float]
    '''

    init_color_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    init_layername: str = None
    ''' 

    :type: str
    '''

    init_texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    is_active: bool = None
    ''' Toggle whether surface is processed or ignored

    :type: bool
    '''

    is_cache_user: bool = None
    ''' 

    :type: bool
    '''

    name: str = None
    ''' Surface name

    :type: str
    '''

    output_name_a: str = None
    ''' Name used to save output from this surface

    :type: str
    '''

    output_name_b: str = None
    ''' Name used to save output from this surface

    :type: str
    '''

    point_cache: 'PointCache' = None
    ''' 

    :type: 'PointCache'
    '''

    shrink_speed: float = None
    ''' How fast shrink effect moves on the canvas surface

    :type: float
    '''

    spread_speed: float = None
    ''' How fast spread effect moves on the canvas surface

    :type: float
    '''

    surface_format: typing.Union[int, str] = None
    ''' Surface Format

    :type: typing.Union[int, str]
    '''

    surface_type: typing.Union[int, str] = None
    ''' Surface Type

    :type: typing.Union[int, str]
    '''

    use_antialiasing: bool = None
    ''' Use 5x multisampling to smooth paint edges

    :type: bool
    '''

    use_dissolve: bool = None
    ''' Enable to make surface changes disappear over time

    :type: bool
    '''

    use_dissolve_log: bool = None
    ''' Use logarithmic dissolve (makes high values to fade faster than low values)

    :type: bool
    '''

    use_drip: bool = None
    ''' Process drip effect (drip wet paint to gravity direction)

    :type: bool
    '''

    use_dry_log: bool = None
    ''' Use logarithmic drying (makes high values to dry faster than low values)

    :type: bool
    '''

    use_drying: bool = None
    ''' Enable to make surface wetness dry over time

    :type: bool
    '''

    use_incremental_displace: bool = None
    ''' New displace is added cumulatively on top of existing

    :type: bool
    '''

    use_output_a: bool = None
    ''' Save this output layer

    :type: bool
    '''

    use_output_b: bool = None
    ''' Save this output layer

    :type: bool
    '''

    use_premultiply: bool = None
    ''' Multiply color by alpha (recommended for Blender input)

    :type: bool
    '''

    use_shrink: bool = None
    ''' Process shrink effect (shrink paint areas)

    :type: bool
    '''

    use_spread: bool = None
    ''' Process spread effect (spread wet paint around surface)

    :type: bool
    '''

    use_wave_open_border: bool = None
    ''' Pass waves through mesh edges

    :type: bool
    '''

    uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    wave_damping: float = None
    ''' Wave damping factor

    :type: float
    '''

    wave_smoothness: float = None
    ''' Limit maximum steepness of wave slope between simulation points (use higher values for smoother waves at expense of reduced detail)

    :type: float
    '''

    wave_speed: float = None
    ''' Wave propagation speed

    :type: float
    '''

    wave_spring: float = None
    ''' Spring force that pulls water level back to zero

    :type: float
    '''

    wave_timescale: float = None
    ''' Wave time scaling factor

    :type: float
    '''

    def output_exists(self, object: 'Object', index: int):
        ''' Checks if surface output layer of given name exists

        :param object: 
        :type object: 'Object'
        :param index: Index
        :type index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DynamicPaintSurfaces(bpy_struct):
    ''' Collection of Dynamic Paint Canvas surfaces
    '''

    active: 'DynamicPaintSurface' = None
    ''' Active Dynamic Paint surface being displayed

    :type: 'DynamicPaintSurface'
    '''

    active_index: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class EditBone(bpy_struct):
    ''' Edit mode bone in an armature data-block
    '''

    bbone_curveinx: float = None
    ''' X-axis handle offset for start of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveinz: float = None
    ''' Z-axis handle offset for start of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveoutx: float = None
    ''' X-axis handle offset for end of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveoutz: float = None
    ''' Z-axis handle offset for end of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_custom_handle_end: 'EditBone' = None
    ''' Bone that serves as the end handle for the B-Bone curve

    :type: 'EditBone'
    '''

    bbone_custom_handle_start: 'EditBone' = None
    ''' Bone that serves as the start handle for the B-Bone curve

    :type: 'EditBone'
    '''

    bbone_easein: float = None
    ''' Length of first Bezier Handle (for B-Bones only)

    :type: float
    '''

    bbone_easeout: float = None
    ''' Length of second Bezier Handle (for B-Bones only)

    :type: float
    '''

    bbone_handle_type_end: typing.Union[int, str] = None
    ''' Selects how the end handle of the B-Bone is computed * AUTO Automatic -- Use connected parent and children to compute the handle. * ABSOLUTE Absolute -- Use the position of the specified bone to compute the handle. * RELATIVE Relative -- Use the offset of the specified bone from rest pose to compute the handle. * TANGENT Tangent -- Use the orientation of the specified bone to compute the handle, ignoring the location.

    :type: typing.Union[int, str]
    '''

    bbone_handle_type_start: typing.Union[int, str] = None
    ''' Selects how the start handle of the B-Bone is computed * AUTO Automatic -- Use connected parent and children to compute the handle. * ABSOLUTE Absolute -- Use the position of the specified bone to compute the handle. * RELATIVE Relative -- Use the offset of the specified bone from rest pose to compute the handle. * TANGENT Tangent -- Use the orientation of the specified bone to compute the handle, ignoring the location.

    :type: typing.Union[int, str]
    '''

    bbone_handle_use_ease_end: bool = None
    ''' Multiply the B-Bone Ease Out channel by the local Y scale value of the end handle. This is done after the Scale Easing option and isn't affected by it

    :type: bool
    '''

    bbone_handle_use_ease_start: bool = None
    ''' Multiply the B-Bone Ease In channel by the local Y scale value of the start handle. This is done after the Scale Easing option and isn't affected by it

    :type: bool
    '''

    bbone_handle_use_scale_end: typing.List[bool] = None
    ''' Multiply B-Bone Scale Out channels by the local scale values of the end handle. This is done after the Scale Easing option and isn't affected by it

    :type: typing.List[bool]
    '''

    bbone_handle_use_scale_start: typing.List[bool] = None
    ''' Multiply B-Bone Scale In channels by the local scale values of the start handle. This is done after the Scale Easing option and isn't affected by it

    :type: typing.List[bool]
    '''

    bbone_rollin: float = None
    ''' Roll offset for the start of the B-Bone, adjusts twist

    :type: float
    '''

    bbone_rollout: float = None
    ''' Roll offset for the end of the B-Bone, adjusts twist

    :type: float
    '''

    bbone_scalein: typing.List[float] = None
    ''' Scale factors for the start of the B-Bone, adjusts thickness (for tapering effects)

    :type: typing.List[float]
    '''

    bbone_scaleout: typing.List[float] = None
    ''' Scale factors for the end of the B-Bone, adjusts thickness (for tapering effects)

    :type: typing.List[float]
    '''

    bbone_segments: int = None
    ''' Number of subdivisions of bone (for B-Bones only)

    :type: int
    '''

    bbone_x: float = None
    ''' B-Bone X size

    :type: float
    '''

    bbone_z: float = None
    ''' B-Bone Z size

    :type: float
    '''

    envelope_distance: float = None
    ''' Bone deformation distance (for Envelope deform only)

    :type: float
    '''

    envelope_weight: float = None
    ''' Bone deformation weight (for Envelope deform only)

    :type: float
    '''

    head: typing.List[float] = None
    ''' Location of head end of the bone

    :type: typing.List[float]
    '''

    head_radius: float = None
    ''' Radius of head of bone (for Envelope deform only)

    :type: float
    '''

    hide: bool = None
    ''' Bone is not visible when in Edit Mode

    :type: bool
    '''

    hide_select: bool = None
    ''' Bone is able to be selected

    :type: bool
    '''

    inherit_scale: typing.Union[int, str] = None
    ''' Specifies how the bone inherits scaling from the parent bone * FULL Full -- Inherit all effects of parent scaling. * FIX_SHEAR Fix Shear -- Inherit scaling, but remove shearing of the child in the rest orientation. * ALIGNED Aligned -- Rotate non-uniform parent scaling to align with the child, applying parent X scale to child X axis, and so forth. * AVERAGE Average -- Inherit uniform scaling representing the overall change in the volume of the parent. * NONE None -- Completely ignore parent scaling. * NONE_LEGACY None (Legacy) -- Ignore parent scaling without compensating for parent shear. Replicates the effect of disabling the original Inherit Scale checkbox.

    :type: typing.Union[int, str]
    '''

    layers: typing.List[bool] = None
    ''' Layers bone exists in

    :type: typing.List[bool]
    '''

    length: float = None
    ''' Length of the bone. Changing moves the tail end

    :type: float
    '''

    lock: bool = None
    ''' Bone is not able to be transformed when in Edit Mode

    :type: bool
    '''

    matrix: typing.List[float] = None
    ''' Matrix combining location and rotation of the bone (head position, direction and roll), in armature space (does not include/support bone's length/size)

    :type: typing.List[float]
    '''

    name: str = None
    ''' 

    :type: str
    '''

    parent: 'EditBone' = None
    ''' Parent edit bone (in same Armature)

    :type: 'EditBone'
    '''

    roll: float = None
    ''' Bone rotation around head-tail axis

    :type: float
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    select_head: bool = None
    ''' 

    :type: bool
    '''

    select_tail: bool = None
    ''' 

    :type: bool
    '''

    show_wire: bool = None
    ''' Bone is always displayed in wireframe regardless of viewport shading mode (useful for non-obstructive custom bone shapes)

    :type: bool
    '''

    tail: typing.List[float] = None
    ''' Location of tail end of the bone

    :type: typing.List[float]
    '''

    tail_radius: float = None
    ''' Radius of tail of bone (for Envelope deform only)

    :type: float
    '''

    use_connect: bool = None
    ''' When bone has a parent, bone's head is stuck to the parent's tail

    :type: bool
    '''

    use_cyclic_offset: bool = None
    ''' When bone doesn't have a parent, it receives cyclic offset effects (Deprecated)

    :type: bool
    '''

    use_deform: bool = None
    ''' Enable Bone to deform geometry

    :type: bool
    '''

    use_endroll_as_inroll: bool = None
    ''' Add Roll Out of the Start Handle bone to the Roll In value

    :type: bool
    '''

    use_envelope_multiply: bool = None
    ''' When deforming bone, multiply effects of Vertex Group weights with Envelope influence

    :type: bool
    '''

    use_inherit_rotation: bool = None
    ''' Bone inherits rotation or scale from parent bone

    :type: bool
    '''

    use_inherit_scale: bool = None
    ''' DEPRECATED: Bone inherits scaling from parent bone

    :type: bool
    '''

    use_local_location: bool = None
    ''' Bone location is set in local space

    :type: bool
    '''

    use_relative_parent: bool = None
    ''' Object children will use relative transform, like deform

    :type: bool
    '''

    use_scale_easing: bool = None
    ''' Multiply the final easing values by the Scale In/Out Y factors

    :type: bool
    '''

    basename = None
    ''' The name of this bone before any '.' character (readonly)'''

    center = None
    ''' The midpoint between the head and the tail. (readonly)'''

    children = None
    ''' A list of all the bones children. .. note:: Takes O(len(bones)) time. (readonly)'''

    children_recursive = None
    ''' A list of all children from this bone. .. note:: Takes O(len(bones)**2) time. (readonly)'''

    children_recursive_basename = None
    ''' Returns a chain of children with the same base name as this bone. Only direct chains are supported, forks caused by multiple children with matching base names will terminate the function and not be returned. (readonly)'''

    parent_recursive = None
    ''' A list of parents, starting with the immediate parent (readonly)'''

    vector = None
    ''' The direction this bone is pointing. Utility function for (tail - head) (readonly)'''

    x_axis = None
    ''' Vector pointing down the x-axis of the bone. (readonly)'''

    y_axis = None
    ''' Vector pointing down the y-axis of the bone. (readonly)'''

    z_axis = None
    ''' Vector pointing down the z-axis of the bone. (readonly)'''

    def align_roll(self, vector: typing.List[float]):
        ''' Align the bone to a localspace roll so the Z axis points in the direction of the vector given

        :param vector: Vector
        :type vector: typing.List[float]
        '''
        pass

    def align_orientation(self, other):
        ''' Align this bone to another by moving its tail and settings its roll the length of the other bone is not used.

        '''
        pass

    def parent_index(self, parent_test):
        ''' The same as 'bone in other_bone.parent_recursive' but saved generating a list.

        '''
        pass

    def transform(self,
                  matrix: 'mathutils.Matrix',
                  *,
                  scale: bool = True,
                  roll: bool = True):
        ''' Transform the the bones head, tail, roll and envelope (when the matrix has a scale component).

        :param matrix: 3x3 or 4x4 transformation matrix.
        :type matrix: 'mathutils.Matrix'
        :param scale: Scale the bone envelope by the matrix.
        :type scale: bool
        :param roll: Correct the roll to point in the same relative direction to the head and tail.
        :type roll: bool
        '''
        pass

    def translate(self, vec):
        ''' Utility function to add *vec* to the head and tail of this bone

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class EffectorWeights(bpy_struct):
    ''' Effector weights for physics simulation
    '''

    all: float = None
    ''' All effector's weight

    :type: float
    '''

    apply_to_hair_growing: bool = None
    ''' Use force fields when growing hair

    :type: bool
    '''

    boid: float = None
    ''' Boid effector weight

    :type: float
    '''

    charge: float = None
    ''' Charge effector weight

    :type: float
    '''

    collection: 'Collection' = None
    ''' Limit effectors to this collection

    :type: 'Collection'
    '''

    curve_guide: float = None
    ''' Curve guide effector weight

    :type: float
    '''

    drag: float = None
    ''' Drag effector weight

    :type: float
    '''

    force: float = None
    ''' Force effector weight

    :type: float
    '''

    gravity: float = None
    ''' Global gravity weight

    :type: float
    '''

    harmonic: float = None
    ''' Harmonic effector weight

    :type: float
    '''

    lennardjones: float = None
    ''' Lennard-Jones effector weight

    :type: float
    '''

    magnetic: float = None
    ''' Magnetic effector weight

    :type: float
    '''

    smokeflow: float = None
    ''' Fluid Flow effector weight

    :type: float
    '''

    texture: float = None
    ''' Texture effector weight

    :type: float
    '''

    turbulence: float = None
    ''' Turbulence effector weight

    :type: float
    '''

    vortex: float = None
    ''' Vortex effector weight

    :type: float
    '''

    wind: float = None
    ''' Wind effector weight

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class EnumPropertyItem(bpy_struct):
    ''' Definition of a choice in an RNA enum property
    '''

    description: str = None
    ''' Description of the item's purpose

    :type: str
    '''

    icon: typing.Union[int, str] = None
    ''' Icon of the item

    :type: typing.Union[int, str]
    '''

    identifier: str = None
    ''' Unique name used in the code and scripting

    :type: str
    '''

    name: str = None
    ''' Human readable name

    :type: str
    '''

    value: int = None
    ''' Value of the item

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Event(bpy_struct):
    ''' Window Manager Event
    '''

    alt: bool = None
    ''' True when the Alt/Option key is held

    :type: bool
    '''

    ascii: str = None
    ''' Single ASCII character for this event

    :type: str
    '''

    ctrl: bool = None
    ''' True when the Ctrl key is held

    :type: bool
    '''

    is_mouse_absolute: bool = None
    ''' The last motion event was an absolute input

    :type: bool
    '''

    is_repeat: bool = None
    ''' The event is generated by holding a key down

    :type: bool
    '''

    is_tablet: bool = None
    ''' The event has tablet data

    :type: bool
    '''

    mouse_prev_x: int = None
    ''' The window relative horizontal location of the mouse

    :type: int
    '''

    mouse_prev_y: int = None
    ''' The window relative vertical location of the mouse

    :type: int
    '''

    mouse_region_x: int = None
    ''' The region relative horizontal location of the mouse

    :type: int
    '''

    mouse_region_y: int = None
    ''' The region relative vertical location of the mouse

    :type: int
    '''

    mouse_x: int = None
    ''' The window relative horizontal location of the mouse

    :type: int
    '''

    mouse_y: int = None
    ''' The window relative vertical location of the mouse

    :type: int
    '''

    oskey: bool = None
    ''' True when the Cmd key is held

    :type: bool
    '''

    pressure: float = None
    ''' The pressure of the tablet or 1.0 if no tablet present

    :type: float
    '''

    shift: bool = None
    ''' True when the Shift key is held

    :type: bool
    '''

    tilt: typing.List[float] = None
    ''' The pressure of the tablet or zeroes if no tablet present

    :type: typing.List[float]
    '''

    type: typing.Union[int, str] = None
    ''' * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.

    :type: typing.Union[int, str]
    '''

    unicode: str = None
    ''' Single unicode character for this event

    :type: str
    '''

    value: typing.Union[int, str] = None
    ''' The type of event, only applies to some

    :type: typing.Union[int, str]
    '''

    xr: 'XrEventData' = None
    ''' XR event data

    :type: 'XrEventData'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FCurve(bpy_struct):
    ''' F-Curve defining values of a period of time
    '''

    array_index: int = None
    ''' Index to the specific property affected by F-Curve if applicable

    :type: int
    '''

    auto_smoothing: typing.Union[int, str] = None
    ''' Algorithm used to compute automatic handles * NONE None -- Automatic handles only take immediately adjacent keys into account. * CONT_ACCEL Continuous Acceleration -- Automatic handles are adjusted to avoid jumps in acceleration, resulting in smoother curves. However, key changes may affect interpolation over a larger stretch of the curve.

    :type: typing.Union[int, str]
    '''

    color: typing.List[float] = None
    ''' Color of the F-Curve in the Graph Editor

    :type: typing.List[float]
    '''

    color_mode: typing.Union[int, str] = None
    ''' Method used to determine color of F-Curve in Graph Editor * AUTO_RAINBOW Auto Rainbow -- Cycle through the rainbow, trying to give each curve a unique color. * AUTO_RGB Auto XYZ to RGB -- Use axis colors for transform and color properties, and auto-rainbow for the rest. * AUTO_YRGB Auto WXYZ to YRGB -- Use axis colors for XYZ parts of transform, and yellow for the 'W' channel. * CUSTOM User Defined -- Use custom hand-picked color for F-Curve.

    :type: typing.Union[int, str]
    '''

    data_path: str = None
    ''' RNA Path to property affected by F-Curve

    :type: str
    '''

    driver: 'Driver' = None
    ''' Channel Driver (only set for Driver F-Curves)

    :type: 'Driver'
    '''

    extrapolation: typing.Union[int, str] = None
    ''' Method used for evaluating value of F-Curve outside first and last keyframes * CONSTANT Constant -- Hold values of endpoint keyframes. * LINEAR Linear -- Use slope of curve leading in/out of endpoint keyframes.

    :type: typing.Union[int, str]
    '''

    group: 'ActionGroup' = None
    ''' Action Group that this F-Curve belongs to

    :type: 'ActionGroup'
    '''

    hide: bool = None
    ''' F-Curve and its keyframes are hidden in the Graph Editor graphs

    :type: bool
    '''

    is_empty: bool = None
    ''' True if the curve contributes no animation due to lack of keyframes or useful modifiers, and should be deleted

    :type: bool
    '''

    is_valid: bool = None
    ''' False when F-Curve could not be evaluated in past, so should be skipped when evaluating

    :type: bool
    '''

    keyframe_points: typing.Union[typing.Dict[str, 'Keyframe'], typing.
                                  List['Keyframe'], 'bpy_prop_collection',
                                  'FCurveKeyframePoints'] = None
    ''' User-editable keyframes

    :type: typing.Union[typing.Dict[str, 'Keyframe'], typing.List['Keyframe'], 'bpy_prop_collection', 'FCurveKeyframePoints']
    '''

    lock: bool = None
    ''' F-Curve's settings cannot be edited

    :type: bool
    '''

    modifiers: typing.Union[typing.Dict[str, 'FModifier'], typing.
                            List['FModifier'], 'bpy_prop_collection',
                            'FCurveModifiers'] = None
    ''' Modifiers affecting the shape of the F-Curve

    :type: typing.Union[typing.Dict[str, 'FModifier'], typing.List['FModifier'], 'bpy_prop_collection', 'FCurveModifiers']
    '''

    mute: bool = None
    ''' Disable F-Curve evaluation

    :type: bool
    '''

    sampled_points: typing.Union[typing.Dict[str, 'FCurveSample'], typing.
                                 List['FCurveSample'],
                                 'bpy_prop_collection'] = None
    ''' Sampled animation data

    :type: typing.Union[typing.Dict[str, 'FCurveSample'], typing.List['FCurveSample'], 'bpy_prop_collection']
    '''

    select: bool = None
    ''' F-Curve is selected for editing

    :type: bool
    '''

    def evaluate(self, frame: float) -> float:
        ''' Evaluate F-Curve

        :param frame: Frame, Evaluate F-Curve at given frame
        :type frame: float
        :rtype: float
        :return: Value, Value of F-Curve specific frame
        '''
        pass

    def update(self):
        ''' Ensure keyframes are sorted in chronological order and handles are set correctly

        '''
        pass

    def range(self) -> typing.List[float]:
        ''' Get the time extents for F-Curve

        :rtype: typing.List[float]
        :return: Range, Min/Max values
        '''
        pass

    def update_autoflags(self, data: 'AnyType'):
        ''' Update FCurve flags set automatically from affected property (currently, integer/discrete flags set when the property is not a float)

        :param data: Data, Data containing the property controlled by given FCurve
        :type data: 'AnyType'
        '''
        pass

    def convert_to_samples(self, start: int, end: int):
        ''' Convert current FCurve from keyframes to sample points, if necessary

        :param start: Start Frame
        :type start: int
        :param end: End Frame
        :type end: int
        '''
        pass

    def convert_to_keyframes(self, start: int, end: int):
        ''' Convert current FCurve from sample points to keyframes (linear interpolation), if necessary

        :param start: Start Frame
        :type start: int
        :param end: End Frame
        :type end: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FCurveKeyframePoints(bpy_struct):
    ''' Collection of keyframe points
    '''

    def insert(
            self,
            frame: float,
            value: float,
            options: typing.Union[typing.Set[int], typing.Set[str]] = {},
            keyframe_type: typing.Union[int, str] = 'KEYFRAME') -> 'Keyframe':
        ''' Add a keyframe point to a F-Curve

        :param frame: X Value of this keyframe point
        :type frame: float
        :param value: Y Value of this keyframe point
        :type value: float
        :param options: Keyframe options * REPLACE Replace -- Don't add any new keyframes, but just replace existing ones. * NEEDED Needed -- Only adds keyframes that are needed. * FAST Fast -- Fast keyframe insertion to avoid recalculating the curve each time.
        :type options: typing.Union[typing.Set[int], typing.Set[str]]
        :param keyframe_type: Type of keyframe to insert * KEYFRAME Keyframe -- Normal keyframe, e.g. for key poses. * BREAKDOWN Breakdown -- A breakdown pose, e.g. for transitions between key poses. * MOVING_HOLD Moving Hold -- A keyframe that is part of a moving hold. * EXTREME Extreme -- An "extreme" pose, or some other purpose as needed. * JITTER Jitter -- A filler or baked keyframe for keying on ones, or some other purpose as needed.
        :type keyframe_type: typing.Union[int, str]
        :rtype: 'Keyframe'
        :return: Newly created keyframe
        '''
        pass

    def add(self, count: int):
        ''' Add a keyframe point to a F-Curve

        :param count: Number, Number of points to add to the spline
        :type count: int
        '''
        pass

    def remove(self, keyframe: 'Keyframe', fast: bool = False):
        ''' Remove keyframe from an F-Curve

        :param keyframe: Keyframe to remove
        :type keyframe: 'Keyframe'
        :param fast: Fast, Fast keyframe removal to avoid recalculating the curve each time
        :type fast: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FCurveModifiers(bpy_struct):
    ''' Collection of F-Curve Modifiers
    '''

    active: 'FModifier' = None
    ''' Active F-Curve Modifier

    :type: 'FModifier'
    '''

    def new(self, type: typing.Union[int, str]) -> 'FModifier':
        ''' Add a constraint to this object

        :param type: Constraint type to add * NULL Invalid. * GENERATOR Generator -- Generate a curve using a factorized or expanded polynomial. * FNGENERATOR Built-In Function -- Generate a curve using standard math functions such as sin and cos. * ENVELOPE Envelope -- Reshape F-Curve values, e.g. change amplitude of movements. * CYCLES Cycles -- Cyclic extend/repeat keyframe sequence. * NOISE Noise -- Add pseudo-random noise on top of F-Curves. * LIMITS Limits -- Restrict maximum and minimum values of F-Curve. * STEPPED Stepped Interpolation -- Snap values to nearest grid step, e.g. for a stop-motion look.
        :type type: typing.Union[int, str]
        :rtype: 'FModifier'
        :return: New fmodifier
        '''
        pass

    def remove(self, modifier: 'FModifier'):
        ''' Remove a modifier from this F-Curve

        :param modifier: Removed modifier
        :type modifier: 'FModifier'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FCurveSample(bpy_struct):
    ''' Sample point for F-Curve
    '''

    co: typing.List[float] = None
    ''' Point coordinates

    :type: typing.List[float]
    '''

    select: bool = None
    ''' Selection status

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FFmpegSettings(bpy_struct):
    ''' FFmpeg related settings for the scene
    '''

    audio_bitrate: int = None
    ''' Audio bitrate (kb/s)

    :type: int
    '''

    audio_channels: typing.Union[int, str] = None
    ''' Audio channel count * MONO Mono -- Set audio channels to mono. * STEREO Stereo -- Set audio channels to stereo. * SURROUND4 4 Channels -- Set audio channels to 4 channels. * SURROUND51 5.1 Surround -- Set audio channels to 5.1 surround sound. * SURROUND71 7.1 Surround -- Set audio channels to 7.1 surround sound.

    :type: typing.Union[int, str]
    '''

    audio_codec: typing.Union[int, str] = None
    ''' FFmpeg audio codec to use * NONE No Audio -- Disables audio output, for video-only renders. * AAC AAC. * AC3 AC3. * FLAC FLAC. * MP2 MP2. * MP3 MP3. * OPUS Opus. * PCM PCM. * VORBIS Vorbis.

    :type: typing.Union[int, str]
    '''

    audio_mixrate: int = None
    ''' Audio samplerate(samples/s)

    :type: int
    '''

    audio_volume: float = None
    ''' Audio volume

    :type: float
    '''

    buffersize: int = None
    ''' Rate control: buffer size (kb)

    :type: int
    '''

    codec: typing.Union[int, str] = None
    ''' FFmpeg codec to use for video output * NONE No Video -- Disables video output, for audio-only renders. * DNXHD DNxHD. * DV DV. * FFV1 FFmpeg video codec #1. * FLASH Flash Video. * H264 H.264. * HUFFYUV HuffYUV. * MPEG1 MPEG-1. * MPEG2 MPEG-2. * MPEG4 MPEG-4 (divx). * PNG PNG. * QTRLE QT rle / QT Animation. * THEORA Theora. * WEBM WEBM / VP9.

    :type: typing.Union[int, str]
    '''

    constant_rate_factor: typing.Union[int, str] = None
    ''' Constant Rate Factor (CRF); tradeoff between video quality and file size * NONE Constant Bitrate -- Configure constant bit rate, rather than constant output quality. * LOSSLESS Lossless. * PERC_LOSSLESS Perceptually Lossless. * HIGH High Quality. * MEDIUM Medium Quality. * LOW Low Quality. * VERYLOW Very Low Quality. * LOWEST Lowest Quality.

    :type: typing.Union[int, str]
    '''

    ffmpeg_preset: typing.Union[int, str] = None
    ''' Tradeoff between encoding speed and compression ratio * BEST Slowest -- Recommended if you have lots of time and want the best compression efficiency. * GOOD Good -- The default and recommended for most applications. * REALTIME Realtime -- Recommended for fast encoding.

    :type: typing.Union[int, str]
    '''

    format: typing.Union[int, str] = None
    ''' Output file container

    :type: typing.Union[int, str]
    '''

    gopsize: int = None
    ''' Distance between key frames, also known as GOP size; influences file size and seekability

    :type: int
    '''

    max_b_frames: int = None
    ''' Maximum number of B-frames between non-B-frames; influences file size and seekability

    :type: int
    '''

    maxrate: int = None
    ''' Rate control: max rate (kbit/s)

    :type: int
    '''

    minrate: int = None
    ''' Rate control: min rate (kbit/s)

    :type: int
    '''

    muxrate: int = None
    ''' Mux rate (bits/second)

    :type: int
    '''

    packetsize: int = None
    ''' Mux packet size (byte)

    :type: int
    '''

    use_autosplit: bool = None
    ''' Autosplit output at 2GB boundary

    :type: bool
    '''

    use_lossless_output: bool = None
    ''' Use lossless output for video streams

    :type: bool
    '''

    use_max_b_frames: bool = None
    ''' Set a maximum number of B-frames

    :type: bool
    '''

    video_bitrate: int = None
    ''' Video bitrate (kbit/s)

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifier(bpy_struct):
    ''' Modifier for values of F-Curve
    '''

    active: bool = None
    ''' F-Curve modifier will show settings in the editor

    :type: bool
    '''

    blend_in: float = None
    ''' Number of frames from start frame for influence to take effect

    :type: float
    '''

    blend_out: float = None
    ''' Number of frames from end frame for influence to fade out

    :type: float
    '''

    frame_end: float = None
    ''' Frame that modifier's influence ends (if Restrict Frame Range is in use)

    :type: float
    '''

    frame_start: float = None
    ''' Frame that modifier's influence starts (if Restrict Frame Range is in use)

    :type: float
    '''

    influence: float = None
    ''' Amount of influence F-Curve Modifier will have when not fading in/out

    :type: float
    '''

    is_valid: bool = None
    ''' F-Curve Modifier has invalid settings and will not be evaluated

    :type: bool
    '''

    mute: bool = None
    ''' Enable F-Curve modifier evaluation

    :type: bool
    '''

    show_expanded: bool = None
    ''' F-Curve Modifier's panel is expanded in UI

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' F-Curve Modifier Type * NULL Invalid. * GENERATOR Generator -- Generate a curve using a factorized or expanded polynomial. * FNGENERATOR Built-In Function -- Generate a curve using standard math functions such as sin and cos. * ENVELOPE Envelope -- Reshape F-Curve values, e.g. change amplitude of movements. * CYCLES Cycles -- Cyclic extend/repeat keyframe sequence. * NOISE Noise -- Add pseudo-random noise on top of F-Curves. * LIMITS Limits -- Restrict maximum and minimum values of F-Curve. * STEPPED Stepped Interpolation -- Snap values to nearest grid step, e.g. for a stop-motion look.

    :type: typing.Union[int, str]
    '''

    use_influence: bool = None
    ''' F-Curve Modifier's effects will be tempered by a default factor

    :type: bool
    '''

    use_restricted_range: bool = None
    ''' F-Curve Modifier is only applied for the specified frame range to help mask off effects in order to chain them

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierEnvelopeControlPoint(bpy_struct):
    ''' Control point for envelope F-Modifier
    '''

    frame: float = None
    ''' Frame this control-point occurs on

    :type: float
    '''

    max: float = None
    ''' Upper bound of envelope at this control-point

    :type: float
    '''

    min: float = None
    ''' Lower bound of envelope at this control-point

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierEnvelopeControlPoints(bpy_struct):
    ''' Control points defining the shape of the envelope
    '''

    def add(self, frame: float) -> 'FModifierEnvelopeControlPoint':
        ''' Add a control point to a FModifierEnvelope

        :param frame: Frame to add this control-point
        :type frame: float
        :rtype: 'FModifierEnvelopeControlPoint'
        :return: Newly created control-point
        '''
        pass

    def remove(self, point: 'FModifierEnvelopeControlPoint'):
        ''' Remove a control-point from an FModifierEnvelope

        :param point: Control-point to remove
        :type point: 'FModifierEnvelopeControlPoint'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FaceMap(bpy_struct):
    ''' Group of faces, each face can only be part of one map
    '''

    index: int = None
    ''' Index number of the face map

    :type: int
    '''

    name: str = None
    ''' Face map name

    :type: str
    '''

    select: bool = None
    ''' Face map selection state (for tools to use)

    :type: bool
    '''

    def add(self, index: typing.List[int]):
        ''' Add faces to the face-map

        :param index: List of indices
        :type index: typing.List[int]
        '''
        pass

    def remove(self, index: typing.List[int]):
        ''' Remove faces from the face-map

        :param index: List of indices
        :type index: typing.List[int]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FaceMaps(bpy_struct):
    ''' Collection of face maps
    '''

    active: 'FaceMap' = None
    ''' Face maps of the object

    :type: 'FaceMap'
    '''

    active_index: int = None
    ''' Active index in face map array

    :type: int
    '''

    def new(self, name: str = "Map") -> 'FaceMap':
        ''' Add face map to object

        :param name: face map name
        :type name: str
        :rtype: 'FaceMap'
        :return: New face map
        '''
        pass

    def remove(self, group: 'FaceMap'):
        ''' Delete vertex group from object

        :param group: Face map to remove
        :type group: 'FaceMap'
        '''
        pass

    def clear(self):
        ''' Delete all vertex groups from object

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FieldSettings(bpy_struct):
    ''' Field settings for an object in physics simulation
    '''

    apply_to_location: bool = None
    ''' Affect particle's location

    :type: bool
    '''

    apply_to_rotation: bool = None
    ''' Affect particle's dynamic rotation

    :type: bool
    '''

    distance_max: float = None
    ''' Maximum distance for the field to work

    :type: float
    '''

    distance_min: float = None
    ''' Minimum distance for the field's fall-off

    :type: float
    '''

    falloff_power: float = None
    ''' How quickly strength falls off with distance from the force field

    :type: float
    '''

    falloff_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    flow: float = None
    ''' Convert effector force into air flow velocity

    :type: float
    '''

    guide_clump_amount: float = None
    ''' Amount of clumping

    :type: float
    '''

    guide_clump_shape: float = None
    ''' Shape of clumping

    :type: float
    '''

    guide_free: float = None
    ''' Guide-free time from particle life's end

    :type: float
    '''

    guide_kink_amplitude: float = None
    ''' The amplitude of the offset

    :type: float
    '''

    guide_kink_axis: typing.Union[int, str] = None
    ''' Which axis to use for offset

    :type: typing.Union[int, str]
    '''

    guide_kink_frequency: float = None
    ''' The frequency of the offset (1/total length)

    :type: float
    '''

    guide_kink_shape: float = None
    ''' Adjust the offset to the beginning/end

    :type: float
    '''

    guide_kink_type: typing.Union[int, str] = None
    ''' Type of periodic offset on the curve

    :type: typing.Union[int, str]
    '''

    guide_minimum: float = None
    ''' The distance from which particles are affected fully

    :type: float
    '''

    harmonic_damping: float = None
    ''' Damping of the harmonic force

    :type: float
    '''

    inflow: float = None
    ''' Inwards component of the vortex force

    :type: float
    '''

    linear_drag: float = None
    ''' Drag component proportional to velocity

    :type: float
    '''

    noise: float = None
    ''' Amount of noise for the force strength

    :type: float
    '''

    quadratic_drag: float = None
    ''' Drag component proportional to the square of velocity

    :type: float
    '''

    radial_falloff: float = None
    ''' Radial falloff power (real gravitational falloff = 2)

    :type: float
    '''

    radial_max: float = None
    ''' Maximum radial distance for the field to work

    :type: float
    '''

    radial_min: float = None
    ''' Minimum radial distance for the field's fall-off

    :type: float
    '''

    rest_length: float = None
    ''' Rest length of the harmonic force

    :type: float
    '''

    seed: int = None
    ''' Seed of the noise

    :type: int
    '''

    shape: typing.Union[int, str] = None
    ''' Which direction is used to calculate the effector force * POINT Point -- Field originates from the object center. * LINE Line -- Field originates from the local Z axis of the object. * PLANE Plane -- Field originates from the local XY plane of the object. * SURFACE Surface -- Field originates from the surface of the object. * POINTS Every Point -- Field originates from all of the vertices of the object.

    :type: typing.Union[int, str]
    '''

    size: float = None
    ''' Size of the turbulence

    :type: float
    '''

    source_object: 'Object' = None
    ''' Select domain object of the smoke simulation

    :type: 'Object'
    '''

    strength: float = None
    ''' Strength of force field

    :type: float
    '''

    texture: 'Texture' = None
    ''' Texture to use as force

    :type: 'Texture'
    '''

    texture_mode: typing.Union[int, str] = None
    ''' How the texture effect is calculated (RGB and Curl need a RGB texture, else Gradient will be used instead)

    :type: typing.Union[int, str]
    '''

    texture_nabla: float = None
    ''' Defines size of derivative offset used for calculating gradient and curl

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of field * NONE None. * FORCE Force -- Radial field toward the center of object. * WIND Wind -- Constant force along the force object's local Z axis. * VORTEX Vortex -- Spiraling force that twists the force object's local Z axis. * MAGNET Magnetic -- Forcefield depends on the speed of the particles. * HARMONIC Harmonic -- The source of this force field is the zero point of a harmonic oscillator. * CHARGE Charge -- Spherical forcefield based on the charge of particles, only influences other charge force fields. * LENNARDJ Lennard-Jones -- Forcefield based on the Lennard-Jones potential. * TEXTURE Texture -- Force field based on a texture. * GUIDE Curve Guide -- Create a force along a curve object. * BOID Boid -- Create a force that acts as a boid's predators or target. * TURBULENCE Turbulence -- Create turbulence with a noise field. * DRAG Drag -- Create a force that dampens motion. * FLUID_FLOW Fluid Flow -- Create a force based on fluid simulation velocities.

    :type: typing.Union[int, str]
    '''

    use_2d_force: bool = None
    ''' Apply force only in 2D

    :type: bool
    '''

    use_absorption: bool = None
    ''' Force gets absorbed by collision objects

    :type: bool
    '''

    use_global_coords: bool = None
    ''' Use effector/global coordinates for turbulence

    :type: bool
    '''

    use_gravity_falloff: bool = None
    ''' Multiply force by 1/distance²

    :type: bool
    '''

    use_guide_path_add: bool = None
    ''' Based on distance/falloff it adds a portion of the entire path

    :type: bool
    '''

    use_guide_path_weight: bool = None
    ''' Use curve weights to influence the particle influence along the curve

    :type: bool
    '''

    use_max_distance: bool = None
    ''' Use a maximum distance for the field to work

    :type: bool
    '''

    use_min_distance: bool = None
    ''' Use a minimum distance for the field's fall-off

    :type: bool
    '''

    use_multiple_springs: bool = None
    ''' Every point is effected by multiple springs

    :type: bool
    '''

    use_object_coords: bool = None
    ''' Use object/global coordinates for texture

    :type: bool
    '''

    use_radial_max: bool = None
    ''' Use a maximum radial distance for the field to work

    :type: bool
    '''

    use_radial_min: bool = None
    ''' Use a minimum radial distance for the field's fall-off

    :type: bool
    '''

    use_root_coords: bool = None
    ''' Texture coordinates from root particle locations

    :type: bool
    '''

    use_smoke_density: bool = None
    ''' Adjust force strength based on smoke density

    :type: bool
    '''

    wind_factor: float = None
    ''' How much the force is reduced when acting parallel to a surface, e.g. cloth

    :type: float
    '''

    z_direction: typing.Union[int, str] = None
    ''' Effect in full or only positive/negative Z direction

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FileAssetSelectIDFilter(bpy_struct):
    ''' Which asset types to show/hide, when browsing an asset library
    '''

    experimental_filter_armature: bool = None
    ''' Show Armature data-blocks

    :type: bool
    '''

    experimental_filter_brush: bool = None
    ''' Show Brushes data-blocks

    :type: bool
    '''

    experimental_filter_cachefile: bool = None
    ''' Show Cache File data-blocks

    :type: bool
    '''

    experimental_filter_camera: bool = None
    ''' Show Camera data-blocks

    :type: bool
    '''

    experimental_filter_curve: bool = None
    ''' Show Curve data-blocks

    :type: bool
    '''

    experimental_filter_font: bool = None
    ''' Show Font data-blocks

    :type: bool
    '''

    experimental_filter_grease_pencil: bool = None
    ''' Show Grease pencil data-blocks

    :type: bool
    '''

    experimental_filter_group: bool = None
    ''' Show Collection data-blocks

    :type: bool
    '''

    experimental_filter_hair: bool = None
    ''' Show/hide Hair data-blocks

    :type: bool
    '''

    experimental_filter_image: bool = None
    ''' Show Image data-blocks

    :type: bool
    '''

    experimental_filter_lattice: bool = None
    ''' Show Lattice data-blocks

    :type: bool
    '''

    experimental_filter_light: bool = None
    ''' Show Light data-blocks

    :type: bool
    '''

    experimental_filter_light_probe: bool = None
    ''' Show Light Probe data-blocks

    :type: bool
    '''

    experimental_filter_linestyle: bool = None
    ''' Show Freestyle's Line Style data-blocks

    :type: bool
    '''

    experimental_filter_mask: bool = None
    ''' Show Mask data-blocks

    :type: bool
    '''

    experimental_filter_mesh: bool = None
    ''' Show Mesh data-blocks

    :type: bool
    '''

    experimental_filter_metaball: bool = None
    ''' Show Metaball data-blocks

    :type: bool
    '''

    experimental_filter_movie_clip: bool = None
    ''' Show Movie Clip data-blocks

    :type: bool
    '''

    experimental_filter_node_tree: bool = None
    ''' Show Node Tree data-blocks

    :type: bool
    '''

    experimental_filter_paint_curve: bool = None
    ''' Show Paint Curve data-blocks

    :type: bool
    '''

    experimental_filter_palette: bool = None
    ''' Show Palette data-blocks

    :type: bool
    '''

    experimental_filter_particle_settings: bool = None
    ''' Show Particle Settings data-blocks

    :type: bool
    '''

    experimental_filter_pointcloud: bool = None
    ''' Show/hide Point Cloud data-blocks

    :type: bool
    '''

    experimental_filter_scene: bool = None
    ''' Show Scene data-blocks

    :type: bool
    '''

    experimental_filter_simulation: bool = None
    ''' Show Simulation data-blocks

    :type: bool
    '''

    experimental_filter_sound: bool = None
    ''' Show Sound data-blocks

    :type: bool
    '''

    experimental_filter_speaker: bool = None
    ''' Show Speaker data-blocks

    :type: bool
    '''

    experimental_filter_text: bool = None
    ''' Show Text data-blocks

    :type: bool
    '''

    experimental_filter_texture: bool = None
    ''' Show Texture data-blocks

    :type: bool
    '''

    experimental_filter_volume: bool = None
    ''' Show/hide Volume data-blocks

    :type: bool
    '''

    experimental_filter_work_space: bool = None
    ''' Show workspace data-blocks

    :type: bool
    '''

    filter_action: bool = None
    ''' Show Action data-blocks

    :type: bool
    '''

    filter_material: bool = None
    ''' Show Material data-blocks

    :type: bool
    '''

    filter_object: bool = None
    ''' Show Object data-blocks

    :type: bool
    '''

    filter_world: bool = None
    ''' Show World data-blocks

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FileBrowserFSMenuEntry(bpy_struct):
    ''' File Select Parameters
    '''

    icon: int = None
    ''' 

    :type: int
    '''

    is_valid: bool = None
    ''' Whether this path is currently reachable

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    path: str = None
    ''' 

    :type: str
    '''

    use_save: bool = None
    ''' Whether this path is saved in bookmarks, or generated from OS

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FileSelectEntry(bpy_struct):
    ''' A file viewable in the File Browser
    '''

    asset_data: 'AssetMetaData' = None
    ''' Asset data, valid if the file represents an asset

    :type: 'AssetMetaData'
    '''

    id_type: typing.Union[int, str] = None
    ''' The type of the data-block, if the file represents one ('NONE' otherwise)

    :type: typing.Union[int, str]
    '''

    local_id: 'ID' = None
    ''' The local data-block this file represents; only valid if that is a data-block in this file

    :type: 'ID'
    '''

    name: str = None
    ''' 

    :type: str
    '''

    preview_icon_id: int = None
    ''' Unique integer identifying the preview of this file as an icon (zero means invalid)

    :type: int
    '''

    relative_path: str = None
    ''' Path relative to the directory currently displayed in the File Browser (includes the file name)

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FileSelectIDFilter(bpy_struct):
    ''' Which ID types to show/hide, when browsing a library
    '''

    category_animation: bool = None
    ''' Show animation data

    :type: bool
    '''

    category_environment: bool = None
    ''' Show worlds, lights, cameras and speakers

    :type: bool
    '''

    category_geometry: bool = None
    ''' Show meshes, curves, lattice, armatures and metaballs data

    :type: bool
    '''

    category_image: bool = None
    ''' Show images, movie clips, sounds and masks

    :type: bool
    '''

    category_misc: bool = None
    ''' Show other data types

    :type: bool
    '''

    category_object: bool = None
    ''' Show objects and collections

    :type: bool
    '''

    category_scene: bool = None
    ''' Show scenes

    :type: bool
    '''

    category_shading: bool = None
    ''' Show materials, nodetrees, textures and Freestyle's linestyles

    :type: bool
    '''

    filter_action: bool = None
    ''' Show Action data-blocks

    :type: bool
    '''

    filter_armature: bool = None
    ''' Show Armature data-blocks

    :type: bool
    '''

    filter_brush: bool = None
    ''' Show Brushes data-blocks

    :type: bool
    '''

    filter_cachefile: bool = None
    ''' Show Cache File data-blocks

    :type: bool
    '''

    filter_camera: bool = None
    ''' Show Camera data-blocks

    :type: bool
    '''

    filter_curve: bool = None
    ''' Show Curve data-blocks

    :type: bool
    '''

    filter_font: bool = None
    ''' Show Font data-blocks

    :type: bool
    '''

    filter_grease_pencil: bool = None
    ''' Show Grease pencil data-blocks

    :type: bool
    '''

    filter_group: bool = None
    ''' Show Collection data-blocks

    :type: bool
    '''

    filter_hair: bool = None
    ''' Show/hide Hair data-blocks

    :type: bool
    '''

    filter_image: bool = None
    ''' Show Image data-blocks

    :type: bool
    '''

    filter_lattice: bool = None
    ''' Show Lattice data-blocks

    :type: bool
    '''

    filter_light: bool = None
    ''' Show Light data-blocks

    :type: bool
    '''

    filter_light_probe: bool = None
    ''' Show Light Probe data-blocks

    :type: bool
    '''

    filter_linestyle: bool = None
    ''' Show Freestyle's Line Style data-blocks

    :type: bool
    '''

    filter_mask: bool = None
    ''' Show Mask data-blocks

    :type: bool
    '''

    filter_material: bool = None
    ''' Show Material data-blocks

    :type: bool
    '''

    filter_mesh: bool = None
    ''' Show Mesh data-blocks

    :type: bool
    '''

    filter_metaball: bool = None
    ''' Show Metaball data-blocks

    :type: bool
    '''

    filter_movie_clip: bool = None
    ''' Show Movie Clip data-blocks

    :type: bool
    '''

    filter_node_tree: bool = None
    ''' Show Node Tree data-blocks

    :type: bool
    '''

    filter_object: bool = None
    ''' Show Object data-blocks

    :type: bool
    '''

    filter_paint_curve: bool = None
    ''' Show Paint Curve data-blocks

    :type: bool
    '''

    filter_palette: bool = None
    ''' Show Palette data-blocks

    :type: bool
    '''

    filter_particle_settings: bool = None
    ''' Show Particle Settings data-blocks

    :type: bool
    '''

    filter_pointcloud: bool = None
    ''' Show/hide Point Cloud data-blocks

    :type: bool
    '''

    filter_scene: bool = None
    ''' Show Scene data-blocks

    :type: bool
    '''

    filter_simulation: bool = None
    ''' Show Simulation data-blocks

    :type: bool
    '''

    filter_sound: bool = None
    ''' Show Sound data-blocks

    :type: bool
    '''

    filter_speaker: bool = None
    ''' Show Speaker data-blocks

    :type: bool
    '''

    filter_text: bool = None
    ''' Show Text data-blocks

    :type: bool
    '''

    filter_texture: bool = None
    ''' Show Texture data-blocks

    :type: bool
    '''

    filter_volume: bool = None
    ''' Show/hide Volume data-blocks

    :type: bool
    '''

    filter_work_space: bool = None
    ''' Show workspace data-blocks

    :type: bool
    '''

    filter_world: bool = None
    ''' Show World data-blocks

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FileSelectParams(bpy_struct):
    ''' File Select Parameters
    '''

    directory: str = None
    ''' Directory displayed in the file browser

    :type: str
    '''

    display_size: typing.Union[int, str] = None
    ''' Change the size of the display (width of columns or thumbnails size)

    :type: typing.Union[int, str]
    '''

    display_type: typing.Union[int, str] = None
    ''' Display mode for the file list * LIST_VERTICAL Vertical List -- Display files as a vertical list. * LIST_HORIZONTAL Horizontal List -- Display files as a horizontal list. * THUMBNAIL Thumbnails -- Display files as thumbnails.

    :type: typing.Union[int, str]
    '''

    filename: str = None
    ''' Active file in the file browser

    :type: str
    '''

    filter_glob: str = None
    ''' UNIX shell-like filename patterns matching, supports wildcards ('*') and list of patterns separated by ';'

    :type: str
    '''

    filter_id: 'FileSelectIDFilter' = None
    ''' Which ID types to show/hide, when browsing a library

    :type: 'FileSelectIDFilter'
    '''

    filter_search: str = None
    ''' Filter by name, supports '*' wildcard

    :type: str
    '''

    recursion_level: typing.Union[int, str] = None
    ''' Numbers of dirtree levels to show simultaneously * NONE None -- Only list current directory's content, with no recursion. * BLEND Blend File -- List .blend files' content. * ALL_1 One Level -- List all sub-directories' content, one level of recursion. * ALL_2 Two Levels -- List all sub-directories' content, two levels of recursion. * ALL_3 Three Levels -- List all sub-directories' content, three levels of recursion.

    :type: typing.Union[int, str]
    '''

    show_details_datetime: bool = None
    ''' Show a column listing the date and time of modification for each file

    :type: bool
    '''

    show_details_size: bool = None
    ''' Show a column listing the size of each file

    :type: bool
    '''

    show_hidden: bool = None
    ''' Show hidden dot files

    :type: bool
    '''

    sort_method: typing.Union[int, str] = None
    ''' * FILE_SORT_ALPHA Name -- Sort the file list alphabetically. * FILE_SORT_EXTENSION Extension -- Sort the file list by extension/type. * FILE_SORT_TIME Modified Date -- Sort files by modification time. * FILE_SORT_SIZE Size -- Sort files by size.

    :type: typing.Union[int, str]
    '''

    title: str = None
    ''' Title for the file browser

    :type: str
    '''

    use_filter: bool = None
    ''' Enable filtering of files

    :type: bool
    '''

    use_filter_asset_only: bool = None
    ''' Hide .blend files items that are not data-blocks with asset metadata

    :type: bool
    '''

    use_filter_backup: bool = None
    ''' Show .blend1, .blend2, etc. files

    :type: bool
    '''

    use_filter_blender: bool = None
    ''' Show .blend files

    :type: bool
    '''

    use_filter_blendid: bool = None
    ''' Show .blend files items (objects, materials, etc.)

    :type: bool
    '''

    use_filter_folder: bool = None
    ''' Show folders

    :type: bool
    '''

    use_filter_font: bool = None
    ''' Show font files

    :type: bool
    '''

    use_filter_image: bool = None
    ''' Show image files

    :type: bool
    '''

    use_filter_movie: bool = None
    ''' Show movie files

    :type: bool
    '''

    use_filter_script: bool = None
    ''' Show script files

    :type: bool
    '''

    use_filter_sound: bool = None
    ''' Show sound files

    :type: bool
    '''

    use_filter_text: bool = None
    ''' Show text files

    :type: bool
    '''

    use_filter_volume: bool = None
    ''' Show 3D volume files

    :type: bool
    '''

    use_library_browsing: bool = None
    ''' Whether we may browse blender files' content or not

    :type: bool
    '''

    use_sort_invert: bool = None
    ''' Sort items descending, from highest value to lowest

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Float2AttributeValue(bpy_struct):
    ''' 2D Vector value in geometry attribute
    '''

    vector: typing.List[float] = None
    ''' 2D vector

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloatAttributeValue(bpy_struct):
    ''' Floating-point value in geometry attribute
    '''

    value: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloatColorAttributeValue(bpy_struct):
    ''' Color value in geometry attribute
    '''

    color: typing.List[float] = None
    ''' RGBA color in scene linear color space

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloatVectorAttributeValue(bpy_struct):
    ''' Vector value in geometry attribute
    '''

    vector: typing.List[float] = None
    ''' 3D vector

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FluidDomainSettings(bpy_struct):
    ''' Fluid domain settings
    '''

    adapt_margin: int = None
    ''' Margin added around fluid to minimize boundary interference

    :type: int
    '''

    adapt_threshold: float = None
    ''' Minimum amount of fluid a cell can contain before it is considered empty

    :type: float
    '''

    additional_res: int = None
    ''' Maximum number of additional cells

    :type: int
    '''

    alpha: float = None
    ''' Buoyant force based on smoke density (higher value results in faster rising smoke)

    :type: float
    '''

    beta: float = None
    ''' Buoyant force based on smoke heat (higher value results in faster rising smoke)

    :type: float
    '''

    burning_rate: float = None
    ''' Speed of the burning reaction (higher value results in smaller flames)

    :type: float
    '''

    cache_data_format: typing.Union[int, str] = None
    ''' Select the file format to be used for caching volumetric data

    :type: typing.Union[int, str]
    '''

    cache_directory: str = None
    ''' Directory that contains fluid cache files

    :type: str
    '''

    cache_frame_end: int = None
    ''' Frame on which the simulation stops. This is the last frame that will be baked

    :type: int
    '''

    cache_frame_offset: int = None
    ''' Frame offset that is used when loading the simulation from the cache. It is not considered when baking the simulation, only when loading it

    :type: int
    '''

    cache_frame_pause_data: int = None
    ''' 

    :type: int
    '''

    cache_frame_pause_guide: int = None
    ''' 

    :type: int
    '''

    cache_frame_pause_mesh: int = None
    ''' 

    :type: int
    '''

    cache_frame_pause_noise: int = None
    ''' 

    :type: int
    '''

    cache_frame_pause_particles: int = None
    ''' 

    :type: int
    '''

    cache_frame_start: int = None
    ''' Frame on which the simulation starts. This is the first frame that will be baked

    :type: int
    '''

    cache_mesh_format: typing.Union[int, str] = None
    ''' Select the file format to be used for caching surface data

    :type: typing.Union[int, str]
    '''

    cache_noise_format: typing.Union[int, str] = None
    ''' Select the file format to be used for caching noise data

    :type: typing.Union[int, str]
    '''

    cache_particle_format: typing.Union[int, str] = None
    ''' Select the file format to be used for caching particle data

    :type: typing.Union[int, str]
    '''

    cache_resumable: bool = None
    ''' Additional data will be saved so that the bake jobs can be resumed after pausing. Because more data will be written to disk it is recommended to avoid enabling this option when baking at high resolutions

    :type: bool
    '''

    cache_type: typing.Union[int, str] = None
    ''' Change the cache type of the simulation * REPLAY Replay -- Use the timeline to bake the scene. * MODULAR Modular -- Bake every stage of the simulation separately. * ALL All -- Bake all simulation settings at once.

    :type: typing.Union[int, str]
    '''

    cell_size: typing.List[float] = None
    ''' Cell Size

    :type: typing.List[float]
    '''

    cfl_condition: float = None
    ''' Maximal velocity per cell (higher value results in greater timesteps)

    :type: float
    '''

    clipping: float = None
    ''' Value under which voxels are considered empty space to optimize rendering

    :type: float
    '''

    color_grid: typing.List[float] = None
    ''' Smoke color grid

    :type: typing.List[float]
    '''

    color_ramp: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    color_ramp_field: typing.Union[int, str] = None
    ''' Simulation field to color map

    :type: typing.Union[int, str]
    '''

    color_ramp_field_scale: float = None
    ''' Multiplier for scaling the selected field to color map

    :type: float
    '''

    delete_in_obstacle: bool = None
    ''' Delete fluid inside obstacles

    :type: bool
    '''

    density_grid: typing.List[float] = None
    ''' Smoke density grid

    :type: typing.List[float]
    '''

    display_interpolation: typing.Union[int, str] = None
    ''' Interpolation method to use for smoke/fire volumes in solid mode * LINEAR Linear -- Good smoothness and speed. * CUBIC Cubic -- Smoothed high quality interpolation, but slower. * CLOSEST Closest -- No interpolation.

    :type: typing.Union[int, str]
    '''

    display_thickness: float = None
    ''' Thickness of smoke display in the viewport

    :type: float
    '''

    dissolve_speed: int = None
    ''' Determine how quickly the smoke dissolves (lower value makes smoke disappear faster)

    :type: int
    '''

    domain_resolution: typing.List[int] = None
    ''' Smoke Grid Resolution

    :type: typing.List[int]
    '''

    domain_type: typing.Union[int, str] = None
    ''' Change domain type of the simulation * GAS Gas -- Create domain for gases. * LIQUID Liquid -- Create domain for liquids.

    :type: typing.Union[int, str]
    '''

    effector_group: 'Collection' = None
    ''' Limit effectors to this collection

    :type: 'Collection'
    '''

    effector_weights: 'EffectorWeights' = None
    ''' 

    :type: 'EffectorWeights'
    '''

    export_manta_script: bool = None
    ''' Generate and export Mantaflow script from current domain settings during bake. This is only needed if you plan to analyze the cache (e.g. view grids, velocity vectors, particles) in Mantaflow directly (outside of Blender) after baking the simulation

    :type: bool
    '''

    flame_grid: typing.List[float] = None
    ''' Smoke flame grid

    :type: typing.List[float]
    '''

    flame_ignition: float = None
    ''' Minimum temperature of the flames (higher value results in faster rising flames)

    :type: float
    '''

    flame_max_temp: float = None
    ''' Maximum temperature of the flames (higher value results in faster rising flames)

    :type: float
    '''

    flame_smoke: float = None
    ''' Amount of smoke created by burning fuel

    :type: float
    '''

    flame_smoke_color: typing.List[float] = None
    ''' Color of smoke emitted from burning fuel

    :type: typing.List[float]
    '''

    flame_vorticity: float = None
    ''' Additional vorticity for the flames

    :type: float
    '''

    flip_ratio: float = None
    ''' PIC/FLIP Ratio. A value of 1.0 will result in a completely FLIP based simulation. Use a lower value for simulations which should produce smaller splashes

    :type: float
    '''

    fluid_group: 'Collection' = None
    ''' Limit fluid objects to this collection

    :type: 'Collection'
    '''

    force_collection: 'Collection' = None
    ''' Limit forces to this collection

    :type: 'Collection'
    '''

    fractions_distance: float = None
    ''' Determines how far apart fluid and obstacle are (higher values will result in fluid being further away from obstacles, smaller values will let fluid move towards the inside of obstacles)

    :type: float
    '''

    fractions_threshold: float = None
    ''' Determines how much fluid is allowed in an obstacle cell (higher values will tag a boundary cell as an obstacle easier and reduce the boundary smoothening effect)

    :type: float
    '''

    gravity: typing.List[float] = None
    ''' Gravity in X, Y and Z direction

    :type: typing.List[float]
    '''

    gridlines_cell_filter: typing.Union[int, str] = None
    ''' Cell type to be highlighted * NONE None -- Highlight the cells regardless of their type. * FLUID Fluid -- Highlight only the cells of type Fluid. * OBSTACLE Obstacle -- Highlight only the cells of type Obstacle. * EMPTY Empty -- Highlight only the cells of type Empty. * INFLOW Inflow -- Highlight only the cells of type Inflow. * OUTFLOW Outflow -- Highlight only the cells of type Outflow.

    :type: typing.Union[int, str]
    '''

    gridlines_color_field: typing.Union[int, str] = None
    ''' Simulation field to color map onto gridlines * NONE None -- None. * FLAGS Flags -- Flag grid of the fluid domain. * RANGE Highlight Range -- Highlight the voxels with values of the color mapped field within the range.

    :type: typing.Union[int, str]
    '''

    gridlines_lower_bound: float = None
    ''' Lower bound of the highlighting range

    :type: float
    '''

    gridlines_range_color: typing.List[float] = None
    ''' Color used to highlight the range

    :type: typing.List[float]
    '''

    gridlines_upper_bound: float = None
    ''' Upper bound of the highlighting range

    :type: float
    '''

    guide_alpha: float = None
    ''' Guiding weight (higher value results in greater lag)

    :type: float
    '''

    guide_beta: int = None
    ''' Guiding size (higher value results in larger vortices)

    :type: int
    '''

    guide_parent: 'Object' = None
    ''' Use velocities from this object for the guiding effect (object needs to have fluid modifier and be of type domain))

    :type: 'Object'
    '''

    guide_source: typing.Union[int, str] = None
    ''' Choose where to get guiding velocities from * DOMAIN Domain -- Use a fluid domain for guiding (domain needs to be baked already so that velocities can be extracted). Guiding domain can be of any type (i.e. gas or liquid). * EFFECTOR Effector -- Use guiding (effector) objects to create fluid guiding (guiding objects should be animated and baked once set up completely).

    :type: typing.Union[int, str]
    '''

    guide_vel_factor: float = None
    ''' Guiding velocity factor (higher value results in greater guiding velocities)

    :type: float
    '''

    has_cache_baked_any: bool = None
    ''' 

    :type: bool
    '''

    has_cache_baked_data: bool = None
    ''' 

    :type: bool
    '''

    has_cache_baked_guide: bool = None
    ''' 

    :type: bool
    '''

    has_cache_baked_mesh: bool = None
    ''' 

    :type: bool
    '''

    has_cache_baked_noise: bool = None
    ''' 

    :type: bool
    '''

    has_cache_baked_particles: bool = None
    ''' 

    :type: bool
    '''

    heat_grid: typing.List[float] = None
    ''' Smoke heat grid

    :type: typing.List[float]
    '''

    highres_sampling: typing.Union[int, str] = None
    ''' Method for sampling the high resolution flow

    :type: typing.Union[int, str]
    '''

    is_cache_baking_any: bool = None
    ''' 

    :type: bool
    '''

    is_cache_baking_data: bool = None
    ''' 

    :type: bool
    '''

    is_cache_baking_guide: bool = None
    ''' 

    :type: bool
    '''

    is_cache_baking_mesh: bool = None
    ''' 

    :type: bool
    '''

    is_cache_baking_noise: bool = None
    ''' 

    :type: bool
    '''

    is_cache_baking_particles: bool = None
    ''' 

    :type: bool
    '''

    mesh_concave_lower: float = None
    ''' Lower mesh concavity bound (high values tend to smoothen and fill out concave regions)

    :type: float
    '''

    mesh_concave_upper: float = None
    ''' Upper mesh concavity bound (high values tend to smoothen and fill out concave regions)

    :type: float
    '''

    mesh_generator: typing.Union[int, str] = None
    ''' Which particle level set generator to use * IMPROVED Final -- Use improved particle level set (slower but more precise and with mesh smoothening options). * UNION Preview -- Use union particle level set (faster but lower quality).

    :type: typing.Union[int, str]
    '''

    mesh_particle_radius: float = None
    ''' Particle radius factor (higher value results in larger (meshed) particles). Needs to be adjusted after changing the mesh scale

    :type: float
    '''

    mesh_scale: int = None
    ''' The mesh simulation is scaled up by this factor (compared to the base resolution of the domain). For best meshing, it is recommended to adjust the mesh particle radius alongside this value

    :type: int
    '''

    mesh_smoothen_neg: int = None
    ''' Negative mesh smoothening

    :type: int
    '''

    mesh_smoothen_pos: int = None
    ''' Positive mesh smoothening

    :type: int
    '''

    noise_pos_scale: float = None
    ''' Scale of noise (higher value results in larger vortices)

    :type: float
    '''

    noise_scale: int = None
    ''' The noise simulation is scaled up by this factor (compared to the base resolution of the domain)

    :type: int
    '''

    noise_strength: float = None
    ''' Strength of noise

    :type: float
    '''

    noise_time_anim: float = None
    ''' Animation time of noise

    :type: float
    '''

    openvdb_cache_compress_type: typing.Union[int, str] = None
    ''' Compression method to be used * ZIP Zip -- Effective but slow compression. * BLOSC Blosc -- Multithreaded compression, similar in size and quality as 'Zip'. * NONE None -- Do not use any compression.

    :type: typing.Union[int, str]
    '''

    openvdb_data_depth: typing.Union[int, str] = None
    ''' Bit depth for fluid particles and grids (lower bit values reduce file size)

    :type: typing.Union[int, str]
    '''

    particle_band_width: float = None
    ''' Particle (narrow) band width (higher value results in thicker band and more particles)

    :type: float
    '''

    particle_max: int = None
    ''' Maximum number of particles per cell (ensures that each cell has at most this amount of particles)

    :type: int
    '''

    particle_min: int = None
    ''' Minimum number of particles per cell (ensures that each cell has at least this amount of particles)

    :type: int
    '''

    particle_number: int = None
    ''' Particle number factor (higher value results in more particles)

    :type: int
    '''

    particle_radius: float = None
    ''' Particle radius factor. Increase this value if the simulation appears to leak volume, decrease it if the simulation seems to gain volume

    :type: float
    '''

    particle_randomness: float = None
    ''' Randomness factor for particle sampling

    :type: float
    '''

    particle_scale: int = None
    ''' The particle simulation is scaled up by this factor (compared to the base resolution of the domain)

    :type: int
    '''

    resolution_max: int = None
    ''' Resolution used for the fluid domain. Value corresponds to the longest domain side (resolution for other domain sides is calculated automatically)

    :type: int
    '''

    show_gridlines: bool = None
    ''' Show gridlines

    :type: bool
    '''

    show_velocity: bool = None
    ''' Visualize vector fields

    :type: bool
    '''

    simulation_method: typing.Union[int, str] = None
    ''' Change the underlying simulation method * FLIP FLIP -- Use FLIP as the simulation method (more splashy behavior). * APIC APIC -- Use APIC as the simulation method (more energetic and stable behavior).

    :type: typing.Union[int, str]
    '''

    slice_axis: typing.Union[int, str] = None
    ''' * AUTO Auto -- Adjust slice direction according to the view direction. * X X -- Slice along the X axis. * Y Y -- Slice along the Y axis. * Z Z -- Slice along the Z axis.

    :type: typing.Union[int, str]
    '''

    slice_depth: float = None
    ''' Position of the slice

    :type: float
    '''

    slice_per_voxel: float = None
    ''' How many slices per voxel should be generated

    :type: float
    '''

    sndparticle_boundary: typing.Union[int, str] = None
    ''' How particles that left the domain are treated * DELETE Delete -- Delete secondary particles that are inside obstacles or left the domain. * PUSHOUT Push Out -- Push secondary particles that left the domain back into the domain.

    :type: typing.Union[int, str]
    '''

    sndparticle_bubble_buoyancy: float = None
    ''' Amount of buoyancy force that rises bubbles (high value results in bubble movement mainly upwards)

    :type: float
    '''

    sndparticle_bubble_drag: float = None
    ''' Amount of drag force that moves bubbles along with the fluid (high value results in bubble movement mainly along with the fluid)

    :type: float
    '''

    sndparticle_combined_export: typing.Union[int, str] = None
    ''' Determines which particle systems are created from secondary particles * OFF Off -- Create a separate particle system for every secondary particle type. * SPRAY_FOAM Spray + Foam -- Spray and foam particles are saved in the same particle system. * SPRAY_BUBBLES Spray + Bubbles -- Spray and bubble particles are saved in the same particle system. * FOAM_BUBBLES Foam + Bubbles -- Foam and bubbles particles are saved in the same particle system. * SPRAY_FOAM_BUBBLES Spray + Foam + Bubbles -- Create one particle system that contains all three secondary particle types.

    :type: typing.Union[int, str]
    '''

    sndparticle_life_max: float = None
    ''' Highest possible particle lifetime

    :type: float
    '''

    sndparticle_life_min: float = None
    ''' Lowest possible particle lifetime

    :type: float
    '''

    sndparticle_potential_max_energy: float = None
    ''' Upper clamping threshold that indicates the fluid speed where cells no longer emit more particles (higher value results in generally less particles)

    :type: float
    '''

    sndparticle_potential_max_trappedair: float = None
    ''' Upper clamping threshold for marking fluid cells where air is trapped (higher value results in less marked cells)

    :type: float
    '''

    sndparticle_potential_max_wavecrest: float = None
    ''' Upper clamping threshold for marking fluid cells as wave crests (higher value results in less marked cells)

    :type: float
    '''

    sndparticle_potential_min_energy: float = None
    ''' Lower clamping threshold that indicates the fluid speed where cells start to emit particles (lower values result in generally more particles)

    :type: float
    '''

    sndparticle_potential_min_trappedair: float = None
    ''' Lower clamping threshold for marking fluid cells where air is trapped (lower value results in more marked cells)

    :type: float
    '''

    sndparticle_potential_min_wavecrest: float = None
    ''' Lower clamping threshold for marking fluid cells as wave crests (lower value results in more marked cells)

    :type: float
    '''

    sndparticle_potential_radius: int = None
    ''' Radius to compute potential for each cell (higher values are slower but create smoother potential grids)

    :type: int
    '''

    sndparticle_sampling_trappedair: int = None
    ''' Maximum number of particles generated per trapped air cell per frame

    :type: int
    '''

    sndparticle_sampling_wavecrest: int = None
    ''' Maximum number of particles generated per wave crest cell per frame

    :type: int
    '''

    sndparticle_update_radius: int = None
    ''' Radius to compute position update for each particle (higher values are slower but particles move less chaotic)

    :type: int
    '''

    start_point: typing.List[float] = None
    ''' Start point

    :type: typing.List[float]
    '''

    surface_tension: float = None
    ''' Surface tension of liquid (higher value results in greater hydrophobic behavior)

    :type: float
    '''

    sys_particle_maximum: int = None
    ''' Maximum number of fluid particles that are allowed in this simulation

    :type: int
    '''

    temperature_grid: typing.List[float] = None
    ''' Smoke temperature grid, range 0 to 1 represents 0 to 1000K

    :type: typing.List[float]
    '''

    time_scale: float = None
    ''' Adjust simulation speed

    :type: float
    '''

    timesteps_max: int = None
    ''' Maximum number of simulation steps to perform for one frame

    :type: int
    '''

    timesteps_min: int = None
    ''' Minimum number of simulation steps to perform for one frame

    :type: int
    '''

    use_adaptive_domain: bool = None
    ''' Adapt simulation resolution and size to fluid

    :type: bool
    '''

    use_adaptive_timesteps: bool = None
    ''' 

    :type: bool
    '''

    use_bubble_particles: bool = None
    ''' Create bubble particle system

    :type: bool
    '''

    use_collision_border_back: bool = None
    ''' Enable collisions with back domain border

    :type: bool
    '''

    use_collision_border_bottom: bool = None
    ''' Enable collisions with bottom domain border

    :type: bool
    '''

    use_collision_border_front: bool = None
    ''' Enable collisions with front domain border

    :type: bool
    '''

    use_collision_border_left: bool = None
    ''' Enable collisions with left domain border

    :type: bool
    '''

    use_collision_border_right: bool = None
    ''' Enable collisions with right domain border

    :type: bool
    '''

    use_collision_border_top: bool = None
    ''' Enable collisions with top domain border

    :type: bool
    '''

    use_color_ramp: bool = None
    ''' Render a simulation field while mapping its voxels values to the colors of a ramp or using a predefined color code

    :type: bool
    '''

    use_diffusion: bool = None
    ''' Enable fluid diffusion settings (e.g. viscosity, surface tension)

    :type: bool
    '''

    use_dissolve_smoke: bool = None
    ''' Let smoke disappear over time

    :type: bool
    '''

    use_dissolve_smoke_log: bool = None
    ''' Dissolve smoke in a logarithmic fashion. Dissolves quickly at first, but lingers longer

    :type: bool
    '''

    use_flip_particles: bool = None
    ''' Create liquid particle system

    :type: bool
    '''

    use_foam_particles: bool = None
    ''' Create foam particle system

    :type: bool
    '''

    use_fractions: bool = None
    ''' Fractional obstacles improve and smoothen the fluid-obstacle boundary

    :type: bool
    '''

    use_guide: bool = None
    ''' Enable fluid guiding

    :type: bool
    '''

    use_mesh: bool = None
    ''' Enable fluid mesh (using amplification)

    :type: bool
    '''

    use_noise: bool = None
    ''' Enable fluid noise (using amplification)

    :type: bool
    '''

    use_slice: bool = None
    ''' Perform a single slice of the domain object

    :type: bool
    '''

    use_speed_vectors: bool = None
    ''' Caches velocities of mesh vertices. These will be used (automatically) when rendering with motion blur enabled

    :type: bool
    '''

    use_spray_particles: bool = None
    ''' Create spray particle system

    :type: bool
    '''

    use_tracer_particles: bool = None
    ''' Create tracer particle system

    :type: bool
    '''

    use_viscosity: bool = None
    ''' Enable fluid viscosity settings

    :type: bool
    '''

    vector_display_type: typing.Union[int, str] = None
    ''' * NEEDLE Needle -- Display vectors as needles. * STREAMLINE Streamlines -- Display vectors as streamlines. * MAC MAC Grid -- Display vector field as MAC grid.

    :type: typing.Union[int, str]
    '''

    vector_field: typing.Union[int, str] = None
    ''' Vector field to be represented by the display vectors * FLUID_VELOCITY Fluid Velocity -- Velocity field of the fluid domain. * GUIDE_VELOCITY Guide Velocity -- Guide velocity field of the fluid domain. * FORCE Force -- Force field of the fluid domain.

    :type: typing.Union[int, str]
    '''

    vector_scale: float = None
    ''' Multiplier for scaling the vectors

    :type: float
    '''

    vector_scale_with_magnitude: bool = None
    ''' Scale vectors with their magnitudes

    :type: bool
    '''

    vector_show_mac_x: bool = None
    ''' Show X-component of MAC Grid

    :type: bool
    '''

    vector_show_mac_y: bool = None
    ''' Show Y-component of MAC Grid

    :type: bool
    '''

    vector_show_mac_z: bool = None
    ''' Show Z-component of MAC Grid

    :type: bool
    '''

    velocity_grid: typing.List[float] = None
    ''' Smoke velocity grid

    :type: typing.List[float]
    '''

    viscosity_base: float = None
    ''' Viscosity setting: value that is multiplied by 10 to the power of (exponent*-1)

    :type: float
    '''

    viscosity_exponent: int = None
    ''' Negative exponent for the viscosity value (to simplify entering small values e.g. 5*10^-6)

    :type: int
    '''

    viscosity_value: float = None
    ''' Viscosity of liquid (higher values result in more viscous fluids, a value of 0 will still apply some viscosity)

    :type: float
    '''

    vorticity: float = None
    ''' Amount of turbulence and rotation in smoke

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FluidEffectorSettings(bpy_struct):
    ''' Smoke collision settings
    '''

    effector_type: typing.Union[int, str] = None
    ''' Change type of effector in the simulation * COLLISION Collision -- Create collision object. * GUIDE Guide -- Create guide object.

    :type: typing.Union[int, str]
    '''

    guide_mode: typing.Union[int, str] = None
    ''' How to create guiding velocities * MAXIMUM Maximize -- Compare velocities from previous frame with new velocities from current frame and keep the maximum. * MINIMUM Minimize -- Compare velocities from previous frame with new velocities from current frame and keep the minimum. * OVERRIDE Override -- Always write new guide velocities for every frame (each frame only contains current velocities from guiding objects). * AVERAGED Averaged -- Take average of velocities from previous frame and new velocities from current frame.

    :type: typing.Union[int, str]
    '''

    subframes: int = None
    ''' Number of additional samples to take between frames to improve quality of fast moving effector objects

    :type: int
    '''

    surface_distance: float = None
    ''' Additional distance around mesh surface to consider as effector

    :type: float
    '''

    use_effector: bool = None
    ''' Control when to apply the effector

    :type: bool
    '''

    use_plane_init: bool = None
    ''' Treat this object as a planar, unclosed mesh

    :type: bool
    '''

    velocity_factor: float = None
    ''' Multiplier of obstacle velocity

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FluidFlowSettings(bpy_struct):
    ''' Fluid flow settings
    '''

    density: float = None
    ''' 

    :type: float
    '''

    density_vertex_group: str = None
    ''' Name of vertex group which determines surface emission rate

    :type: str
    '''

    flow_behavior: typing.Union[int, str] = None
    ''' Change flow behavior in the simulation * INFLOW Inflow -- Add fluid to simulation. * OUTFLOW Outflow -- Delete fluid from simulation. * GEOMETRY Geometry -- Only use given geometry for fluid.

    :type: typing.Union[int, str]
    '''

    flow_source: typing.Union[int, str] = None
    ''' Change how fluid is emitted

    :type: typing.Union[int, str]
    '''

    flow_type: typing.Union[int, str] = None
    ''' Change type of fluid in the simulation * SMOKE Smoke -- Add smoke. * BOTH Fire + Smoke -- Add fire and smoke. * FIRE Fire -- Add fire. * LIQUID Liquid -- Add liquid.

    :type: typing.Union[int, str]
    '''

    fuel_amount: float = None
    ''' 

    :type: float
    '''

    noise_texture: 'Texture' = None
    ''' Texture that controls emission strength

    :type: 'Texture'
    '''

    particle_size: float = None
    ''' Particle size in simulation cells

    :type: float
    '''

    particle_system: 'ParticleSystem' = None
    ''' Particle systems emitted from the object

    :type: 'ParticleSystem'
    '''

    smoke_color: typing.List[float] = None
    ''' Color of smoke

    :type: typing.List[float]
    '''

    subframes: int = None
    ''' Number of additional samples to take between frames to improve quality of fast moving flows

    :type: int
    '''

    surface_distance: float = None
    ''' Controls fluid emission from the mesh surface (higher value results in emission further away from the mesh surface

    :type: float
    '''

    temperature: float = None
    ''' Temperature difference to ambient temperature

    :type: float
    '''

    texture_map_type: typing.Union[int, str] = None
    ''' Texture mapping type * AUTO Generated -- Generated coordinates centered to flow object. * UV UV -- Use UV layer for texture coordinates.

    :type: typing.Union[int, str]
    '''

    texture_offset: float = None
    ''' Z-offset of texture mapping

    :type: float
    '''

    texture_size: float = None
    ''' Size of texture mapping

    :type: float
    '''

    use_absolute: bool = None
    ''' Only allow given density value in emitter area and will not add up

    :type: bool
    '''

    use_inflow: bool = None
    ''' Control when to apply fluid flow

    :type: bool
    '''

    use_initial_velocity: bool = None
    ''' Fluid has some initial velocity when it is emitted

    :type: bool
    '''

    use_particle_size: bool = None
    ''' Set particle size in simulation cells or use nearest cell

    :type: bool
    '''

    use_plane_init: bool = None
    ''' Treat this object as a planar and unclosed mesh. Fluid will only be emitted from the mesh surface and based on the surface emission value

    :type: bool
    '''

    use_texture: bool = None
    ''' Use a texture to control emission strength

    :type: bool
    '''

    uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    velocity_coord: typing.List[float] = None
    ''' Additional initial velocity in X, Y and Z direction (added to source velocity)

    :type: typing.List[float]
    '''

    velocity_factor: float = None
    ''' Multiplier of source velocity passed to fluid (source velocity is non-zero only if object is moving)

    :type: float
    '''

    velocity_normal: float = None
    ''' Amount of normal directional velocity

    :type: float
    '''

    velocity_random: float = None
    ''' Amount of random velocity

    :type: float
    '''

    volume_density: float = None
    ''' Controls fluid emission from within the mesh (higher value results in greater emissions from inside the mesh)

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FreestyleLineSet(bpy_struct):
    ''' Line set for associating lines and style parameters
    '''

    collection: 'Collection' = None
    ''' A collection of objects based on which feature edges are selected

    :type: 'Collection'
    '''

    collection_negation: typing.Union[int, str] = None
    ''' Specify either inclusion or exclusion of feature edges belonging to a collection of objects * INCLUSIVE Inclusive -- Select feature edges belonging to some object in the group. * EXCLUSIVE Exclusive -- Select feature edges not belonging to any object in the group.

    :type: typing.Union[int, str]
    '''

    edge_type_combination: typing.Union[int, str] = None
    ''' Specify a logical combination of selection conditions on feature edge types * OR Logical OR -- Select feature edges satisfying at least one of edge type conditions. * AND Logical AND -- Select feature edges satisfying all edge type conditions.

    :type: typing.Union[int, str]
    '''

    edge_type_negation: typing.Union[int, str] = None
    ''' Specify either inclusion or exclusion of feature edges selected by edge types * INCLUSIVE Inclusive -- Select feature edges satisfying the given edge type conditions. * EXCLUSIVE Exclusive -- Select feature edges not satisfying the given edge type conditions.

    :type: typing.Union[int, str]
    '''

    exclude_border: bool = None
    ''' Exclude border edges

    :type: bool
    '''

    exclude_contour: bool = None
    ''' Exclude contours

    :type: bool
    '''

    exclude_crease: bool = None
    ''' Exclude crease edges

    :type: bool
    '''

    exclude_edge_mark: bool = None
    ''' Exclude edge marks

    :type: bool
    '''

    exclude_external_contour: bool = None
    ''' Exclude external contours

    :type: bool
    '''

    exclude_material_boundary: bool = None
    ''' Exclude edges at material boundaries

    :type: bool
    '''

    exclude_ridge_valley: bool = None
    ''' Exclude ridges and valleys

    :type: bool
    '''

    exclude_silhouette: bool = None
    ''' Exclude silhouette edges

    :type: bool
    '''

    exclude_suggestive_contour: bool = None
    ''' Exclude suggestive contours

    :type: bool
    '''

    face_mark_condition: typing.Union[int, str] = None
    ''' Specify a feature edge selection condition based on face marks * ONE One Face -- Select a feature edge if either of its adjacent faces is marked. * BOTH Both Faces -- Select a feature edge if both of its adjacent faces are marked.

    :type: typing.Union[int, str]
    '''

    face_mark_negation: typing.Union[int, str] = None
    ''' Specify either inclusion or exclusion of feature edges selected by face marks * INCLUSIVE Inclusive -- Select feature edges satisfying the given face mark conditions. * EXCLUSIVE Exclusive -- Select feature edges not satisfying the given face mark conditions.

    :type: typing.Union[int, str]
    '''

    linestyle: 'FreestyleLineStyle' = None
    ''' Line style settings

    :type: 'FreestyleLineStyle'
    '''

    name: str = None
    ''' Line set name

    :type: str
    '''

    qi_end: int = None
    ''' Last QI value of the QI range

    :type: int
    '''

    qi_start: int = None
    ''' First QI value of the QI range

    :type: int
    '''

    select_border: bool = None
    ''' Select border edges (open mesh edges)

    :type: bool
    '''

    select_by_collection: bool = None
    ''' Select feature edges based on a collection of objects

    :type: bool
    '''

    select_by_edge_types: bool = None
    ''' Select feature edges based on edge types

    :type: bool
    '''

    select_by_face_marks: bool = None
    ''' Select feature edges by face marks

    :type: bool
    '''

    select_by_image_border: bool = None
    ''' Select feature edges by image border (less memory consumption)

    :type: bool
    '''

    select_by_visibility: bool = None
    ''' Select feature edges based on visibility

    :type: bool
    '''

    select_contour: bool = None
    ''' Select contours (outer silhouettes of each object)

    :type: bool
    '''

    select_crease: bool = None
    ''' Select crease edges (those between two faces making an angle smaller than the Crease Angle)

    :type: bool
    '''

    select_edge_mark: bool = None
    ''' Select edge marks (edges annotated by Freestyle edge marks)

    :type: bool
    '''

    select_external_contour: bool = None
    ''' Select external contours (outer silhouettes of occluding and occluded objects)

    :type: bool
    '''

    select_material_boundary: bool = None
    ''' Select edges at material boundaries

    :type: bool
    '''

    select_ridge_valley: bool = None
    ''' Select ridges and valleys (boundary lines between convex and concave areas of surface)

    :type: bool
    '''

    select_silhouette: bool = None
    ''' Select silhouettes (edges at the boundary of visible and hidden faces)

    :type: bool
    '''

    select_suggestive_contour: bool = None
    ''' Select suggestive contours (almost silhouette/contour edges)

    :type: bool
    '''

    show_render: bool = None
    ''' Enable or disable this line set during stroke rendering

    :type: bool
    '''

    visibility: typing.Union[int, str] = None
    ''' Determine how to use visibility for feature edge selection * VISIBLE Visible -- Select visible feature edges. * HIDDEN Hidden -- Select hidden feature edges. * RANGE Quantitative Invisibility -- Select feature edges within a range of quantitative invisibility (QI) values.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FreestyleModuleSettings(bpy_struct):
    ''' Style module configuration for specifying a style module
    '''

    script: 'Text' = None
    ''' Python script to define a style module

    :type: 'Text'
    '''

    use: bool = None
    ''' Enable or disable this style module during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FreestyleModules(bpy_struct):
    ''' A list of style modules (to be applied from top to bottom)
    '''

    def new(self) -> 'FreestyleModuleSettings':
        ''' Add a style module to scene render layer Freestyle settings

        :rtype: 'FreestyleModuleSettings'
        :return: Newly created style module
        '''
        pass

    def remove(self, module: 'FreestyleModuleSettings'):
        ''' Remove a style module from scene render layer Freestyle settings

        :param module: Style module to remove
        :type module: 'FreestyleModuleSettings'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FreestyleSettings(bpy_struct):
    ''' Freestyle settings for a ViewLayer data-block
    '''

    as_render_pass: bool = None
    ''' Renders Freestyle output to a separate pass instead of overlaying it on the Combined pass

    :type: bool
    '''

    crease_angle: float = None
    ''' Angular threshold for detecting crease edges

    :type: float
    '''

    kr_derivative_epsilon: float = None
    ''' Kr derivative epsilon for computing suggestive contours

    :type: float
    '''

    linesets: typing.Union[typing.Dict[str, 'FreestyleLineSet'], typing.
                           List['FreestyleLineSet'], 'bpy_prop_collection',
                           'Linesets'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'FreestyleLineSet'], typing.List['FreestyleLineSet'], 'bpy_prop_collection', 'Linesets']
    '''

    mode: typing.Union[int, str] = None
    ''' Select the Freestyle control mode * SCRIPT Python Scripting -- Advanced mode for using style modules written in Python. * EDITOR Parameter Editor -- Basic mode for interactive style parameter editing.

    :type: typing.Union[int, str]
    '''

    modules: typing.Union[typing.Dict[str, 'FreestyleModuleSettings'], typing.
                          List['FreestyleModuleSettings'],
                          'bpy_prop_collection', 'FreestyleModules'] = None
    ''' A list of style modules (to be applied from top to bottom)

    :type: typing.Union[typing.Dict[str, 'FreestyleModuleSettings'], typing.List['FreestyleModuleSettings'], 'bpy_prop_collection', 'FreestyleModules']
    '''

    sphere_radius: float = None
    ''' Sphere radius for computing curvatures

    :type: float
    '''

    use_culling: bool = None
    ''' If enabled, out-of-view edges are ignored

    :type: bool
    '''

    use_material_boundaries: bool = None
    ''' Enable material boundaries

    :type: bool
    '''

    use_ridges_and_valleys: bool = None
    ''' Enable ridges and valleys

    :type: bool
    '''

    use_smoothness: bool = None
    ''' Take face smoothness into account in view map calculation

    :type: bool
    '''

    use_suggestive_contours: bool = None
    ''' Enable suggestive contours

    :type: bool
    '''

    use_view_map_cache: bool = None
    ''' Keep the computed view map and avoid recalculating it if mesh geometry is unchanged

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Function(bpy_struct):
    ''' RNA function definition
    '''

    description: str = None
    ''' Description of the Function's purpose

    :type: str
    '''

    identifier: str = None
    ''' Unique name used in the code and scripting

    :type: str
    '''

    is_registered: bool = None
    ''' Function is registered as callback as part of type registration

    :type: bool
    '''

    is_registered_optional: bool = None
    ''' Function is optionally registered as callback part of type registration

    :type: bool
    '''

    parameters: typing.Union[typing.Dict[str, 'Property'], typing.
                             List['Property'], 'bpy_prop_collection'] = None
    ''' Parameters for the function

    :type: typing.Union[typing.Dict[str, 'Property'], typing.List['Property'], 'bpy_prop_collection']
    '''

    use_self: bool = None
    ''' Function does not pass its self as an argument (becomes a static method in python)

    :type: bool
    '''

    use_self_type: bool = None
    ''' Function passes its self type as an argument (becomes a class method in python if use_self is false)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilEditCurve(bpy_struct):
    ''' Edition Curve
    '''

    curve_points: typing.Union[
        typing.Dict[str, 'GPencilEditCurvePoint'], typing.
        List['GPencilEditCurvePoint'], 'bpy_prop_collection'] = None
    ''' Curve data points

    :type: typing.Union[typing.Dict[str, 'GPencilEditCurvePoint'], typing.List['GPencilEditCurvePoint'], 'bpy_prop_collection']
    '''

    select: bool = None
    ''' Curve is selected for viewport editing

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilEditCurvePoint(bpy_struct):
    ''' Bezier curve point with two handles
    '''

    co: typing.List[float] = None
    ''' Coordinates of the control point

    :type: typing.List[float]
    '''

    handle_left: typing.List[float] = None
    ''' Coordinates of the first handle

    :type: typing.List[float]
    '''

    handle_right: typing.List[float] = None
    ''' Coordinates of the second handle

    :type: typing.List[float]
    '''

    hide: bool = None
    ''' Visibility status

    :type: bool
    '''

    point_index: int = None
    ''' Index of the corresponding grease pencil stroke point

    :type: int
    '''

    pressure: float = None
    ''' Pressure of the grease pencil stroke point

    :type: float
    '''

    select_control_point: bool = None
    ''' Control point selection status

    :type: bool
    '''

    select_left_handle: bool = None
    ''' Handle 1 selection status

    :type: bool
    '''

    select_right_handle: bool = None
    ''' Handle 2 selection status

    :type: bool
    '''

    strength: float = None
    ''' Color intensity (alpha factor) of the grease pencil stroke point

    :type: float
    '''

    uv_factor: float = None
    ''' Internal UV factor

    :type: float
    '''

    uv_rotation: float = None
    ''' Internal UV factor for dot mode

    :type: float
    '''

    vertex_color: typing.List[float] = None
    ''' Vertex color of the grease pencil stroke point

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilFrame(bpy_struct):
    ''' Collection of related sketches on a particular frame
    '''

    frame_number: int = None
    ''' The frame on which this sketch appears

    :type: int
    '''

    is_edited: bool = None
    ''' Frame is being edited (painted on)

    :type: bool
    '''

    keyframe_type: typing.Union[int, str] = None
    ''' Type of keyframe * KEYFRAME Keyframe -- Normal keyframe - e.g. for key poses. * BREAKDOWN Breakdown -- A breakdown pose - e.g. for transitions between key poses. * MOVING_HOLD Moving Hold -- A keyframe that is part of a moving hold. * EXTREME Extreme -- An 'extreme' pose, or some other purpose as needed. * JITTER Jitter -- A filler or baked keyframe for keying on ones, or some other purpose as needed.

    :type: typing.Union[int, str]
    '''

    select: bool = None
    ''' Frame is selected for editing in the Dope Sheet

    :type: bool
    '''

    strokes: typing.Union[typing.Dict[str, 'GPencilStroke'], typing.
                          List['GPencilStroke'], 'bpy_prop_collection',
                          'GPencilStrokes'] = None
    ''' Freehand curves defining the sketch on this frame

    :type: typing.Union[typing.Dict[str, 'GPencilStroke'], typing.List['GPencilStroke'], 'bpy_prop_collection', 'GPencilStrokes']
    '''

    def clear(self):
        ''' Remove all the grease pencil frame data

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilFrames(bpy_struct):
    ''' Collection of grease pencil frames
    '''

    def new(self, frame_number: int, active: bool = False) -> 'GPencilFrame':
        ''' Add a new grease pencil frame

        :param frame_number: Frame Number, The frame on which this sketch appears
        :type frame_number: int
        :param active: Active
        :type active: bool
        :rtype: 'GPencilFrame'
        :return: The newly created frame
        '''
        pass

    def remove(self, frame: 'GPencilFrame'):
        ''' Remove a grease pencil frame

        :param frame: Frame, The frame to remove
        :type frame: 'GPencilFrame'
        '''
        pass

    def copy(self, source: 'GPencilFrame') -> 'GPencilFrame':
        ''' Copy a grease pencil frame

        :param source: Source, The source frame
        :type source: 'GPencilFrame'
        :rtype: 'GPencilFrame'
        :return: The newly copied frame
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilInterpolateSettings(bpy_struct):
    ''' Settings for Grease Pencil interpolation tools
    '''

    interpolation_curve: 'CurveMapping' = None
    ''' Custom curve to control 'sequence' interpolation between Grease Pencil frames

    :type: 'CurveMapping'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilLayer(bpy_struct):
    ''' Collection of related sketches
    '''

    active_frame: 'GPencilFrame' = None
    ''' Frame currently being displayed for this layer

    :type: 'GPencilFrame'
    '''

    annotation_hide: bool = None
    ''' Set annotation Visibility

    :type: bool
    '''

    annotation_onion_after_color: typing.List[float] = None
    ''' Base color for ghosts after the active frame

    :type: typing.List[float]
    '''

    annotation_onion_after_range: int = None
    ''' Maximum number of frames to show after current frame

    :type: int
    '''

    annotation_onion_before_color: typing.List[float] = None
    ''' Base color for ghosts before the active frame

    :type: typing.List[float]
    '''

    annotation_onion_before_range: int = None
    ''' Maximum number of frames to show before current frame

    :type: int
    '''

    annotation_opacity: float = None
    ''' Annotation Layer Opacity

    :type: float
    '''

    blend_mode: typing.Union[int, str] = None
    ''' Blend mode

    :type: typing.Union[int, str]
    '''

    channel_color: typing.List[float] = None
    ''' Custom color for animation channel in Dopesheet

    :type: typing.List[float]
    '''

    color: typing.List[float] = None
    ''' Color for all strokes in this layer

    :type: typing.List[float]
    '''

    frames: typing.Union[typing.Dict[str, 'GPencilFrame'], typing.
                         List['GPencilFrame'], 'bpy_prop_collection',
                         'GPencilFrames'] = None
    ''' Sketches for this layer on different frames

    :type: typing.Union[typing.Dict[str, 'GPencilFrame'], typing.List['GPencilFrame'], 'bpy_prop_collection', 'GPencilFrames']
    '''

    hide: bool = None
    ''' Set layer Visibility

    :type: bool
    '''

    info: str = None
    ''' Layer name

    :type: str
    '''

    is_parented: bool = None
    ''' True when the layer parent object is set

    :type: bool
    '''

    is_ruler: bool = None
    ''' This is a special ruler layer

    :type: bool
    '''

    line_change: int = None
    ''' Thickness change to apply to current strokes (in pixels)

    :type: int
    '''

    location: typing.List[float] = None
    ''' Values for change location

    :type: typing.List[float]
    '''

    lock: bool = None
    ''' Protect layer from further editing and/or frame changes

    :type: bool
    '''

    lock_frame: bool = None
    ''' Lock current frame displayed by layer

    :type: bool
    '''

    lock_material: bool = None
    ''' Avoids editing locked materials in the layer

    :type: bool
    '''

    mask_layers: typing.Union[typing.Dict[str, 'GPencilLayerMask'], typing.
                              List['GPencilLayerMask'], 'bpy_prop_collection',
                              'GreasePencilMaskLayers'] = None
    ''' List of Masking Layers

    :type: typing.Union[typing.Dict[str, 'GPencilLayerMask'], typing.List['GPencilLayerMask'], 'bpy_prop_collection', 'GreasePencilMaskLayers']
    '''

    matrix_inverse: typing.List[float] = None
    ''' Parent inverse transformation matrix

    :type: typing.List[float]
    '''

    matrix_inverse_layer: typing.List[float] = None
    ''' Local Layer transformation inverse matrix

    :type: typing.List[float]
    '''

    matrix_layer: typing.List[float] = None
    ''' Local Layer transformation matrix

    :type: typing.List[float]
    '''

    opacity: float = None
    ''' Layer Opacity

    :type: float
    '''

    parent: 'Object' = None
    ''' Parent object

    :type: 'Object'
    '''

    parent_bone: str = None
    ''' Name of parent bone in case of a bone parenting relation

    :type: str
    '''

    parent_type: typing.Union[int, str] = None
    ''' Type of parent relation * OBJECT Object -- The layer is parented to an object. * ARMATURE Armature. * BONE Bone -- The layer is parented to a bone.

    :type: typing.Union[int, str]
    '''

    pass_index: int = None
    ''' Index number for the "Layer Index" pass

    :type: int
    '''

    rotation: typing.List[float] = None
    ''' Values for changes in rotation

    :type: typing.List[float]
    '''

    scale: typing.List[float] = None
    ''' Values for changes in scale

    :type: typing.List[float]
    '''

    select: bool = None
    ''' Layer is selected for editing in the Dope Sheet

    :type: bool
    '''

    show_in_front: bool = None
    ''' Make the layer display in front of objects

    :type: bool
    '''

    show_points: bool = None
    ''' Show the points which make up the strokes (for debugging purposes)

    :type: bool
    '''

    thickness: int = None
    ''' Thickness of annotation strokes

    :type: int
    '''

    tint_color: typing.List[float] = None
    ''' Color for tinting stroke colors

    :type: typing.List[float]
    '''

    tint_factor: float = None
    ''' Factor of tinting color

    :type: float
    '''

    use_annotation_onion_skinning: bool = None
    ''' Display annotation onion skins before and after the current frame

    :type: bool
    '''

    use_lights: bool = None
    ''' Enable the use of lights on stroke and fill materials

    :type: bool
    '''

    use_mask_layer: bool = None
    ''' The visibility of drawings on this layer is affected by the layers in its masks list

    :type: bool
    '''

    use_onion_skinning: bool = None
    ''' Display onion skins before and after the current frame

    :type: bool
    '''

    use_solo_mode: bool = None
    ''' In Paint mode display only layers with keyframe in current frame

    :type: bool
    '''

    use_viewlayer_masks: bool = None
    ''' Include the mask layers when rendering the view-layer

    :type: bool
    '''

    vertex_paint_opacity: float = None
    ''' Vertex Paint mix factor

    :type: float
    '''

    viewlayer_render: str = None
    ''' Only include Layer in this View Layer render output (leave blank to include always)

    :type: str
    '''

    def clear(self):
        ''' Remove all the grease pencil layer data

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilLayerMask(bpy_struct):
    ''' List of Mask Layers
    '''

    hide: bool = None
    ''' Set mask Visibility

    :type: bool
    '''

    invert: bool = None
    ''' Invert mask

    :type: bool
    '''

    name: str = None
    ''' Mask layer name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilSculptGuide(bpy_struct):
    ''' Guides for drawing
    '''

    angle: float = None
    ''' Direction of lines

    :type: float
    '''

    angle_snap: float = None
    ''' Angle snapping

    :type: float
    '''

    location: typing.List[float] = None
    ''' Custom reference point for guides

    :type: typing.List[float]
    '''

    reference_object: 'Object' = None
    ''' Object used for reference point

    :type: 'Object'
    '''

    reference_point: typing.Union[int, str] = None
    ''' Type of speed guide * CURSOR Cursor -- Use cursor as reference point. * CUSTOM Custom -- Use custom reference point. * OBJECT Object -- Use object as reference point.

    :type: typing.Union[int, str]
    '''

    spacing: float = None
    ''' Guide spacing

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of speed guide * CIRCULAR Circular -- Use single point to create rings. * RADIAL Radial -- Use single point as direction. * PARALLEL Parallel -- Parallel lines. * GRID Grid -- Grid allows horizontal and vertical lines. * ISO Isometric -- Grid allows isometric and vertical lines.

    :type: typing.Union[int, str]
    '''

    use_guide: bool = None
    ''' Enable speed guides

    :type: bool
    '''

    use_snapping: bool = None
    ''' Enable snapping to guides angle or spacing options

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilSculptSettings(bpy_struct):
    ''' General properties for Grease Pencil stroke sculpting tools
    '''

    guide: 'GPencilSculptGuide' = None
    ''' 

    :type: 'GPencilSculptGuide'
    '''

    intersection_threshold: float = None
    ''' Threshold for stroke intersections

    :type: float
    '''

    lock_axis: typing.Union[int, str] = None
    ''' * VIEW View -- Align strokes to current view plane. * AXIS_Y Front (X-Z) -- Project strokes to plane locked to Y. * AXIS_X Side (Y-Z) -- Project strokes to plane locked to X. * AXIS_Z Top (X-Y) -- Project strokes to plane locked to Z. * CURSOR Cursor -- Align strokes to current 3D cursor orientation.

    :type: typing.Union[int, str]
    '''

    multiframe_falloff_curve: 'CurveMapping' = None
    ''' Custom curve to control falloff of brush effect by Grease Pencil frames

    :type: 'CurveMapping'
    '''

    thickness_primitive_curve: 'CurveMapping' = None
    ''' Custom curve to control primitive thickness

    :type: 'CurveMapping'
    '''

    use_multiframe_falloff: bool = None
    ''' Use falloff effect when edit in multiframe mode to compute brush effect by frame

    :type: bool
    '''

    use_scale_thickness: bool = None
    ''' Scale the stroke thickness when transforming strokes

    :type: bool
    '''

    use_thickness_curve: bool = None
    ''' Use curve to define primitive stroke thickness

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilStroke(bpy_struct):
    ''' Freehand curve defining part of a sketch
    '''

    aspect: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    bound_box_max: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    bound_box_min: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    display_mode: typing.Union[int, str] = None
    ''' Coordinate space that stroke is in * SCREEN Screen -- Stroke is in screen-space. * 3DSPACE 3D Space -- Stroke is in 3D-space. * 2DSPACE 2D Space -- Stroke is in 2D-space. * 2DIMAGE 2D Image -- Stroke is in 2D-space (but with special 'image' scaling).

    :type: typing.Union[int, str]
    '''

    edit_curve: 'GPencilEditCurve' = None
    ''' Temporary data for Edit Curve

    :type: 'GPencilEditCurve'
    '''

    end_cap_mode: typing.Union[int, str] = None
    ''' Stroke end extreme cap style

    :type: typing.Union[int, str]
    '''

    hardness: float = None
    ''' Amount of gradient along section of stroke

    :type: float
    '''

    has_edit_curve: bool = None
    ''' Stroke has Curve data to edit shape

    :type: bool
    '''

    is_nofill_stroke: bool = None
    ''' Special stroke to use as boundary for filling areas

    :type: bool
    '''

    line_width: int = None
    ''' Thickness of stroke (in pixels)

    :type: int
    '''

    material_index: int = None
    ''' Material slot index of this stroke

    :type: int
    '''

    points: typing.Union[typing.Dict[str, 'GPencilStrokePoint'], typing.
                         List['GPencilStrokePoint'], 'bpy_prop_collection',
                         'GPencilStrokePoints'] = None
    ''' Stroke data points

    :type: typing.Union[typing.Dict[str, 'GPencilStrokePoint'], typing.List['GPencilStrokePoint'], 'bpy_prop_collection', 'GPencilStrokePoints']
    '''

    select: bool = None
    ''' Stroke is selected for viewport editing

    :type: bool
    '''

    select_index: int = None
    ''' Index of selection used for interpolation

    :type: int
    '''

    start_cap_mode: typing.Union[int, str] = None
    ''' Stroke start extreme cap style

    :type: typing.Union[int, str]
    '''

    triangles: typing.Union[typing.Dict[str, 'GPencilTriangle'], typing.
                            List['GPencilTriangle'],
                            'bpy_prop_collection'] = None
    ''' Triangulation data for HQ fill

    :type: typing.Union[typing.Dict[str, 'GPencilTriangle'], typing.List['GPencilTriangle'], 'bpy_prop_collection']
    '''

    use_cyclic: bool = None
    ''' Enable cyclic drawing, closing the stroke

    :type: bool
    '''

    uv_rotation: float = None
    ''' Rotation of the UV

    :type: float
    '''

    uv_scale: float = None
    ''' Scale of the UV

    :type: float
    '''

    uv_translation: typing.List[float] = None
    ''' Translation of default UV position

    :type: typing.List[float]
    '''

    vertex_color_fill: typing.List[float] = None
    ''' Color used to mix with fill color to get final color

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilStrokePoint(bpy_struct):
    ''' Data point for freehand stroke curve
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    pressure: float = None
    ''' Pressure of tablet at point when drawing it

    :type: float
    '''

    select: bool = None
    ''' Point is selected for viewport editing

    :type: bool
    '''

    strength: float = None
    ''' Color intensity (alpha factor)

    :type: float
    '''

    uv_factor: float = None
    ''' Internal UV factor

    :type: float
    '''

    uv_fill: typing.List[float] = None
    ''' Internal UV factor for filling

    :type: typing.List[float]
    '''

    uv_rotation: float = None
    ''' Internal UV factor for dot mode

    :type: float
    '''

    vertex_color: typing.List[float] = None
    ''' Color used to mix with point color to get final color

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilStrokePoints(bpy_struct):
    ''' Collection of grease pencil stroke points
    '''

    def add(self, count: int, pressure: float = 1.0, strength: float = 1.0):
        ''' Add a new grease pencil stroke point

        :param count: Number, Number of points to add to the stroke
        :type count: int
        :param pressure: Pressure, Pressure for newly created points
        :type pressure: float
        :param strength: Strength, Color intensity (alpha factor) for newly created points
        :type strength: float
        '''
        pass

    def pop(self, index: int = -1):
        ''' Remove a grease pencil stroke point

        :param index: Index, point index
        :type index: int
        '''
        pass

    def update(self):
        ''' Recalculate internal triangulation data

        '''
        pass

    def weight_get(self, vertex_group_index: int = 0,
                   point_index: int = 0) -> float:
        ''' Get vertex group point weight

        :param vertex_group_index: Vertex Group Index, Index of Vertex Group in the array of groups
        :type vertex_group_index: int
        :param point_index: Point Index, Index of the Point in the array
        :type point_index: int
        :rtype: float
        :return: Weight, Point Weight
        '''
        pass

    def weight_set(self,
                   vertex_group_index: int = 0,
                   point_index: int = 0,
                   weight: float = 0.0):
        ''' Set vertex group point weight

        :param vertex_group_index: Vertex Group Index, Index of Vertex Group in the array of groups
        :type vertex_group_index: int
        :param point_index: Point Index, Index of the Point in the array
        :type point_index: int
        :param weight: Weight, Point Weight
        :type weight: float
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilStrokes(bpy_struct):
    ''' Collection of grease pencil stroke
    '''

    def new(self) -> 'GPencilStroke':
        ''' Add a new grease pencil stroke

        :rtype: 'GPencilStroke'
        :return: The newly created stroke
        '''
        pass

    def remove(self, stroke: 'GPencilStroke'):
        ''' Remove a grease pencil stroke

        :param stroke: Stroke, The stroke to remove
        :type stroke: 'GPencilStroke'
        '''
        pass

    def close(self, stroke: 'GPencilStroke'):
        ''' Close a grease pencil stroke adding geometry

        :param stroke: Stroke, The stroke to close
        :type stroke: 'GPencilStroke'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPencilTriangle(bpy_struct):
    ''' Triangulation data for Grease Pencil fills
    '''

    v1: int = None
    ''' First triangle vertex index

    :type: int
    '''

    v2: int = None
    ''' Second triangle vertex index

    :type: int
    '''

    v3: int = None
    ''' Third triangle vertex index

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Gizmo(bpy_struct):
    ''' Collection of gizmos
    '''

    alpha: float = None
    ''' 

    :type: float
    '''

    alpha_highlight: float = None
    ''' 

    :type: float
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    color_highlight: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    group: 'GizmoGroup' = None
    ''' Gizmo group this gizmo is a member of

    :type: 'GizmoGroup'
    '''

    hide: bool = None
    ''' 

    :type: bool
    '''

    hide_keymap: bool = None
    ''' Ignore the key-map for this gizmo

    :type: bool
    '''

    hide_select: bool = None
    ''' 

    :type: bool
    '''

    is_highlight: bool = None
    ''' 

    :type: bool
    '''

    is_modal: bool = None
    ''' 

    :type: bool
    '''

    line_width: float = None
    ''' 

    :type: float
    '''

    matrix_basis: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    matrix_offset: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    matrix_space: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    matrix_world: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    properties: 'GizmoProperties' = None
    ''' 

    :type: 'GizmoProperties'
    '''

    scale_basis: float = None
    ''' 

    :type: float
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    select_bias: float = None
    ''' Depth bias used for selection

    :type: float
    '''

    use_draw_hover: bool = None
    ''' 

    :type: bool
    '''

    use_draw_modal: bool = None
    ''' Show while dragging

    :type: bool
    '''

    use_draw_offset_scale: bool = None
    ''' Scale the offset matrix (use to apply screen-space offset)

    :type: bool
    '''

    use_draw_scale: bool = None
    ''' Use scale when calculating the matrix

    :type: bool
    '''

    use_draw_value: bool = None
    ''' Show an indicator for the current value while dragging

    :type: bool
    '''

    use_event_handle_all: bool = None
    ''' When highlighted, do not pass events through to be handled by other keymaps

    :type: bool
    '''

    use_grab_cursor: bool = None
    ''' 

    :type: bool
    '''

    use_operator_tool_properties: bool = None
    ''' Merge active tool properties on activation (does not overwrite existing)

    :type: bool
    '''

    use_select_background: bool = None
    ''' Don't write into the depth buffer

    :type: bool
    '''

    use_tooltip: bool = None
    ''' Use tooltips when hovering over this gizmo

    :type: bool
    '''

    def draw(self, context: 'Context'):
        ''' 

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw_select(self, context: 'Context', select_id: int = 0):
        ''' 

        :param context: 
        :type context: 'Context'
        :param select_id: 
        :type select_id: int
        '''
        pass

    def test_select(self, context: 'Context',
                    location: typing.List[int]) -> int:
        ''' 

        :param context: 
        :type context: 'Context'
        :param location: Location, Region coordinates
        :type location: typing.List[int]
        :rtype: int
        :return: Use -1 to skip this gizmo
        '''
        pass

    def modal(self, context: 'Context', event: 'Event',
              tweak: typing.Union[typing.Set[int], typing.Set[str]]
              ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' 

        :param context: 
        :type context: 'Context'
        :param event: 
        :type event: 'Event'
        :param tweak: Tweak
        :type tweak: typing.Union[typing.Set[int], typing.Set[str]]
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    def setup(self):
        ''' 

        '''
        pass

    def invoke(self, context: 'Context', event: 'Event'
               ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' 

        :param context: 
        :type context: 'Context'
        :param event: 
        :type event: 'Event'
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    def exit(self, context: 'Context', cancel: bool):
        ''' 

        :param context: 
        :type context: 'Context'
        :param cancel: Cancel, otherwise confirm
        :type cancel: bool
        '''
        pass

    def select_refresh(self):
        ''' 

        '''
        pass

    def draw_preset_box(self, matrix: typing.List[float], select_id: int = -1):
        ''' Draw a box

        :param matrix: The matrix to transform
        :type matrix: typing.List[float]
        :param select_id: Zero when not selecting
        :type select_id: int
        '''
        pass

    def draw_preset_arrow(self,
                          matrix: typing.List[float],
                          axis: typing.Union[int, str] = 'POS_Z',
                          select_id: int = -1):
        ''' Draw a box

        :param matrix: The matrix to transform
        :type matrix: typing.List[float]
        :param axis: Arrow Orientation
        :type axis: typing.Union[int, str]
        :param select_id: Zero when not selecting
        :type select_id: int
        '''
        pass

    def draw_preset_circle(self,
                           matrix: typing.List[float],
                           axis: typing.Union[int, str] = 'POS_Z',
                           select_id: int = -1):
        ''' Draw a box

        :param matrix: The matrix to transform
        :type matrix: typing.List[float]
        :param axis: Arrow Orientation
        :type axis: typing.Union[int, str]
        :param select_id: Zero when not selecting
        :type select_id: int
        '''
        pass

    def draw_preset_facemap(self,
                            object: 'Object',
                            face_map: int,
                            select_id: int = -1):
        ''' Draw the face-map of a mesh object

        :param object: Object
        :type object: 'Object'
        :param face_map: Face map index
        :type face_map: int
        :param select_id: Zero when not selecting
        :type select_id: int
        '''
        pass

    def target_set_prop(self,
                        target: str,
                        data: 'AnyType',
                        property: str,
                        index: int = -1):
        ''' 

        :param target: Target property
        :type target: str
        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param index: 
        :type index: int
        '''
        pass

    def target_set_operator(self, operator: str,
                            index: int = 0) -> 'OperatorProperties':
        ''' Operator to run when activating the gizmo (overrides property targets)

        :param operator: Target operator
        :type operator: str
        :param index: Part index
        :type index: int
        :rtype: 'OperatorProperties'
        :return: Operator properties to fill in
        '''
        pass

    def target_is_valid(self, property: str):
        ''' 

        :param property: Property identifier
        :type property: str
        '''
        pass

    def draw_custom_shape(self,
                          shape,
                          *,
                          matrix: 'mathutils.Matrix' = None,
                          select_id=None):
        ''' Draw a shape created form bpy.types.Gizmo.draw_custom_shape .

        :param shape: The cached shape to draw.
        :type shape: 
        :param matrix: 4x4 matrix, when not given bpy.types.Gizmo.matrix_world is used.
        :type matrix: 'mathutils.Matrix'
        :param select_it: 
        :type select_it: int
        :param select_id: 
        :type select_id: 
        '''
        pass

    @staticmethod
    def new_custom_shape(type: str, verts: list):
        ''' Create a new shape that can be passed to bpy.types.Gizmo.draw_custom_shape .

        :param type: The type of shape to create in (POINTS, LINES, TRIS, LINE_STRIP).
        :type type: str
        :param verts: Coordinates.
        :type verts: list
        :param display_name: Optional callback that takes the full path, returns the name to display.
        :type display_name: str
        :return: The newly created shape.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def target_get_range(self, target) -> tuple:
        ''' Get the range for this target property.

        :param target: 
        :type target: 
        :rtype: tuple
        :return: The range of this property (min, max).
        '''
        pass

    def target_get_value(self, target: str) -> list:
        ''' Get the value of this target property.

        :param target: Target property name.
        :type target: str
        :rtype: list
        :return: The value of the target property.
        '''
        pass

    def target_set_handler(self, target, get, set, range=None):
        ''' Assigns callbacks to a gizmos property.

        :param get: Function that returns the value for this property (single value or sequence).
        :type get: 
        :param set: Function that takes a single value argument and applies it.
        :type set: 
        :param range: Function that returns a (min, max) tuple for gizmos that use a range.
        :type range: 
        '''
        pass

    def target_set_value(self, target: str):
        ''' Set the value of this target property.

        :param target: Target property name.
        :type target: str
        '''
        pass


class GizmoGroup(bpy_struct):
    ''' Storage of an operator being executed, or registered after execution
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    bl_label: str = None
    ''' 

    :type: str
    '''

    bl_options: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Options for this operator type * 3D 3D -- Use in 3D viewport. * SCALE Scale -- Scale to respect zoom (otherwise zoom independent display size). * DEPTH_3D Depth 3D -- Supports culled depth by other objects in the view. * SELECT Select -- Supports selection. * PERSISTENT Persistent. * SHOW_MODAL_ALL Show Modal All -- Show all while interacting, as well as this group when another is being interacted with. * EXCLUDE_MODAL Exclude Modal -- Show all except this group while interacting. * TOOL_INIT Tool Init -- Postpone running until tool operator run (when used with a tool). * VR_REDRAWS VR Redraws -- The gizmos are made for use with virtual reality sessions and require special redraw management.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    bl_owner_id: str = None
    ''' 

    :type: str
    '''

    bl_region_type: typing.Union[int, str] = None
    ''' The region where the panel is going to be used in

    :type: typing.Union[int, str]
    '''

    bl_space_type: typing.Union[int, str] = None
    ''' The space where the panel is going to be used in * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.

    :type: typing.Union[int, str]
    '''

    gizmos: typing.Union[typing.Dict[str, 'Gizmo'], typing.
                         List['Gizmo'], 'bpy_prop_collection', 'Gizmos'] = None
    ''' List of gizmos in the Gizmo Map

    :type: typing.Union[typing.Dict[str, 'Gizmo'], typing.List['Gizmo'], 'bpy_prop_collection', 'Gizmos']
    '''

    has_reports: bool = None
    ''' GizmoGroup has a set of reports (warnings and errors) from last execution

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def poll(cls, context: 'Context'):
        ''' Test if the gizmo group can be called or not

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def setup_keymap(cls, keyconfig: 'KeyConfig'):
        ''' Initialize keymaps for this gizmo group, use fallback keymap when not present

        :param keyconfig: 
        :type keyconfig: 'KeyConfig'
        '''
        pass

    def setup(self, context: 'Context'):
        ''' Create gizmos function for the gizmo group

        :param context: 
        :type context: 'Context'
        '''
        pass

    def refresh(self, context: 'Context'):
        ''' Refresh data (called on common state changes such as selection)

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw_prepare(self, context: 'Context'):
        ''' Run before each redraw

        :param context: 
        :type context: 'Context'
        '''
        pass

    def invoke_prepare(self, context: 'Context', gizmo: 'Gizmo'):
        ''' Run before invoke

        :param context: 
        :type context: 'Context'
        :param gizmo: 
        :type gizmo: 'Gizmo'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GizmoGroupProperties(bpy_struct):
    ''' Input properties of a Gizmo Group
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GizmoProperties(bpy_struct):
    ''' Input properties of an Gizmo
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Gizmos(bpy_struct):
    ''' Collection of gizmos
    '''

    def new(self, type: str) -> 'Gizmo':
        ''' Add gizmo

        :param type: Gizmo identifier
        :type type: str
        :rtype: 'Gizmo'
        :return: New gizmo
        '''
        pass

    def remove(self, gizmo: 'Gizmo'):
        ''' Delete gizmo

        :param gizmo: New gizmo
        :type gizmo: 'Gizmo'
        '''
        pass

    def clear(self):
        ''' Delete all gizmos

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GpencilModifier(bpy_struct):
    ''' Modifier affecting the Grease Pencil object
    '''

    is_override_data: bool = None
    ''' In a local override object, whether this modifier comes from the linked reference object, or is local to the override

    :type: bool
    '''

    name: str = None
    ''' Modifier name

    :type: str
    '''

    show_expanded: bool = None
    ''' Set modifier expanded in the user interface

    :type: bool
    '''

    show_in_editmode: bool = None
    ''' Display modifier in Edit mode

    :type: bool
    '''

    show_render: bool = None
    ''' Use modifier during render

    :type: bool
    '''

    show_viewport: bool = None
    ''' Display modifier in viewport

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' * GP_TEXTURE Texture Mapping -- Change stroke uv texture values. * GP_TIME Time Offset -- Offset keyframes. * GP_WEIGHT_ANGLE Vertex Weight Angle -- Generate Vertex Weights base on stroke angle. * GP_WEIGHT_PROXIMITY Vertex Weight Proximity -- Generate Vertex Weights base on distance to object. * GP_ARRAY Array -- Create array of duplicate instances. * GP_BUILD Build -- Create duplication of strokes. * GP_DASH Dot Dash -- Generate dot-dash styled strokes. * GP_LENGTH Length -- Extend or shrink strokes. * GP_LINEART Line Art -- Generate line art strokes from selected source. * GP_MIRROR Mirror -- Duplicate strokes like a mirror. * GP_MULTIPLY Multiple Strokes -- Produce multiple strokes along one stroke. * GP_SIMPLIFY Simplify -- Simplify stroke reducing number of points. * GP_SUBDIV Subdivide -- Subdivide stroke adding more control points. * GP_ARMATURE Armature -- Deform stroke points using armature object. * GP_HOOK Hook -- Deform stroke points using objects. * GP_LATTICE Lattice -- Deform strokes using lattice. * GP_NOISE Noise -- Add noise to strokes. * GP_OFFSET Offset -- Change stroke location, rotation or scale. * SHRINKWRAP Shrinkwrap -- Project the shape onto another object. * GP_SMOOTH Smooth -- Smooth stroke. * GP_THICK Thickness -- Change stroke thickness. * GP_COLOR Hue/Saturation -- Apply changes to stroke colors. * GP_OPACITY Opacity -- Opacity of the strokes. * GP_TINT Tint -- Tint strokes with new color.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GpencilVertexGroupElement(bpy_struct):
    ''' Weight value of a vertex in a vertex group
    '''

    group: int = None
    ''' 

    :type: int
    '''

    weight: float = None
    ''' Vertex Weight

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GreasePencilGrid(bpy_struct):
    ''' Settings for grid and canvas in 3D viewport
    '''

    color: typing.List[float] = None
    ''' Color for grid lines

    :type: typing.List[float]
    '''

    lines: int = None
    ''' Number of subdivisions in each side of symmetry line

    :type: int
    '''

    offset: typing.List[float] = None
    ''' Offset of the canvas

    :type: typing.List[float]
    '''

    scale: typing.List[float] = None
    ''' Grid scale

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GreasePencilLayers(bpy_struct):
    ''' Collection of grease pencil layers
    '''

    active: 'GPencilLayer' = None
    ''' Active grease pencil layer

    :type: 'GPencilLayer'
    '''

    active_index: int = None
    ''' Index of active grease pencil layer

    :type: int
    '''

    active_note: typing.Union[int, str] = None
    ''' Note/Layer to add annotation strokes to

    :type: typing.Union[int, str]
    '''

    def new(self, name: str, set_active: bool = True) -> 'GPencilLayer':
        ''' Add a new grease pencil layer

        :param name: Name, Name of the layer
        :type name: str
        :param set_active: Set Active, Set the newly created layer to the active layer
        :type set_active: bool
        :rtype: 'GPencilLayer'
        :return: The newly created layer
        '''
        pass

    def remove(self, layer: 'GPencilLayer'):
        ''' Remove a grease pencil layer

        :param layer: The layer to remove
        :type layer: 'GPencilLayer'
        '''
        pass

    def move(self, layer: 'GPencilLayer', type: typing.Union[int, str]):
        ''' Move a grease pencil layer in the layer stack

        :param layer: The layer to move
        :type layer: 'GPencilLayer'
        :param type: Direction of movement
        :type type: typing.Union[int, str]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GreasePencilMaskLayers(bpy_struct):
    ''' Collection of grease pencil masking layers
    '''

    active_mask_index: int = None
    ''' Active index in layer mask array

    :type: int
    '''

    def add(self, layer: 'GPencilLayer'):
        ''' Add a layer to mask list

        :param layer: Layer to add as mask
        :type layer: 'GPencilLayer'
        '''
        pass

    def remove(self, mask: 'GPencilLayerMask'):
        ''' Remove a layer from mask list

        :param mask: Mask to remove
        :type mask: 'GPencilLayerMask'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class HairCurve(bpy_struct):
    ''' Hair curve
    '''

    first_point_index: int = None
    ''' Index of the first loop of this polygon

    :type: int
    '''

    index: int = None
    ''' Index of this curve

    :type: int
    '''

    num_points: int = None
    ''' Number of loops used by this polygon

    :type: int
    '''

    points: typing.Union[typing.Dict[str, 'HairPoint'], typing.
                         List['HairPoint'], 'bpy_prop_collection'] = None
    ''' Control points of the curve

    :type: typing.Union[typing.Dict[str, 'HairPoint'], typing.List['HairPoint'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class HairPoint(bpy_struct):
    ''' Hair curve control point
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    index: int = None
    ''' Index of this points

    :type: int
    '''

    radius: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Header(bpy_struct):
    ''' Editor header containing UI elements
    '''

    bl_idname: str = None
    ''' If this is set, the header gets a custom ID, otherwise it takes the name of the class used to define the panel; for example, if the class name is "OBJECT_HT_hello", and bl_idname is not set by the script, then bl_idname = "OBJECT_HT_hello"

    :type: str
    '''

    bl_region_type: typing.Union[int, str] = None
    ''' The region where the header is going to be used in (defaults to header region)

    :type: typing.Union[int, str]
    '''

    bl_space_type: typing.Union[int, str] = None
    ''' The space where the header is going to be used in * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.

    :type: typing.Union[int, str]
    '''

    layout: 'UILayout' = None
    ''' Structure of the header in the UI

    :type: 'UILayout'
    '''

    def draw(self, context: 'Context'):
        ''' Draw UI elements into the header UI layout

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Histogram(bpy_struct):
    ''' Statistical view of the levels of color in an image
    '''

    mode: typing.Union[int, str] = None
    ''' Channels to display in the histogram * LUMA Luma -- Luma. * RGB RGB -- Red Green Blue. * R R -- Red. * G G -- Green. * B B -- Blue. * A A -- Alpha.

    :type: typing.Union[int, str]
    '''

    show_line: bool = None
    ''' Display lines rather than filled shapes

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ID(bpy_struct):
    ''' Base type for data-blocks, defining a unique name, linking from other libraries and garbage collection
    '''

    asset_data: 'AssetMetaData' = None
    ''' Additional data for an asset data-block

    :type: 'AssetMetaData'
    '''

    is_embedded_data: bool = None
    ''' This data-block is not an independent one, but is actually a sub-data of another ID (typical example: root node trees or master collections)

    :type: bool
    '''

    is_evaluated: bool = None
    ''' Whether this ID is runtime-only, evaluated data-block, or actual data from .blend file

    :type: bool
    '''

    is_library_indirect: bool = None
    ''' Is this ID block linked indirectly

    :type: bool
    '''

    library: 'Library' = None
    ''' Library file the data-block is linked from

    :type: 'Library'
    '''

    library_weak_reference: 'LibraryWeakReference' = None
    ''' Weak reference to a data-block in another library .blend file (used to re-use already appended data instead of appending new copies)

    :type: 'LibraryWeakReference'
    '''

    name: str = None
    ''' Unique data-block ID name

    :type: str
    '''

    name_full: str = None
    ''' Unique data-block ID name, including library one is any

    :type: str
    '''

    original: 'ID' = None
    ''' Actual data-block from .blend file (Main database) that generated that evaluated one

    :type: 'ID'
    '''

    override_library: 'IDOverrideLibrary' = None
    ''' Library override data

    :type: 'IDOverrideLibrary'
    '''

    preview: 'ImagePreview' = None
    ''' Preview image and icon of this data-block (always None if not supported for this type of data)

    :type: 'ImagePreview'
    '''

    tag: bool = None
    ''' Tools can use this to tag data for their own purposes (initial state is undefined)

    :type: bool
    '''

    use_fake_user: bool = None
    ''' Save this data-block even if it has no users

    :type: bool
    '''

    users: int = None
    ''' Number of times this data-block is referenced

    :type: int
    '''

    def evaluated_get(self, depsgraph: 'Depsgraph') -> 'ID':
        ''' Get corresponding evaluated ID from the given dependency graph

        :param depsgraph: Dependency graph to perform lookup in
        :type depsgraph: 'Depsgraph'
        :rtype: 'ID'
        :return: New copy of the ID
        '''
        pass

    def copy(self) -> 'ID':
        ''' Create a copy of this data-block (not supported for all data-blocks)

        :rtype: 'ID'
        :return: New copy of the ID
        '''
        pass

    def asset_mark(self):
        ''' Enable easier reuse of the data-block through the Asset Browser, with the help of customizable metadata (like previews, descriptions and tags)

        '''
        pass

    def asset_clear(self):
        ''' Delete all asset metadata and turn the asset data-block back into a normal data-block

        '''
        pass

    def asset_generate_preview(self):
        ''' Generate preview image (might be scheduled in a background thread)

        '''
        pass

    def override_create(self, remap_local_usages: bool = False) -> 'ID':
        ''' Create an overridden local copy of this linked data-block (not supported for all data-blocks)

        :param remap_local_usages: Whether local usages of the linked ID should be remapped to the new library override of it
        :type remap_local_usages: bool
        :rtype: 'ID'
        :return: New overridden local copy of the ID
        '''
        pass

    def override_hierarchy_create(self,
                                  scene: 'Scene',
                                  view_layer: 'ViewLayer',
                                  reference: 'ID' = None) -> 'ID':
        ''' Create an overridden local copy of this linked data-block, and most of its dependencies when it is a Collection or and Object

        :param scene: In which scene the new overrides should be instantiated
        :type scene: 'Scene'
        :param view_layer: In which view layer the new overrides should be instantiated
        :type view_layer: 'ViewLayer'
        :param reference: Another ID (usually an Object or Collection) used to decide where to instantiate the new overrides
        :type reference: 'ID'
        :rtype: 'ID'
        :return: New overridden local copy of the root ID
        '''
        pass

    def override_template_create(self):
        ''' Create an override template for this ID

        '''
        pass

    def user_clear(self):
        ''' Clear the user count of a data-block so its not saved, on reload the data will be removed This function is for advanced use only, misuse can crash blender since the user count is used to prevent data being removed when it is used.

        '''
        pass

    def user_remap(self, new_id: 'ID'):
        ''' Replace all usage in the .blend file of this ID by new given one

        :param new_id: New ID to use
        :type new_id: 'ID'
        '''
        pass

    def make_local(self, clear_proxy: bool = True) -> 'ID':
        ''' Make this datablock local, return local one (may be a copy of the original, in case it is also indirectly used)

        :param clear_proxy: Whether to clear proxies (the default behavior, note that if object has to be duplicated to be made local, proxies are always cleared)
        :type clear_proxy: bool
        :rtype: 'ID'
        :return: This ID, or the new ID if it was copied
        '''
        pass

    def user_of_id(self, id: 'ID') -> int:
        ''' Count the number of times that ID uses/references given one

        :param id: ID to count usages
        :type id: 'ID'
        :rtype: int
        :return: Number of usages/references of given id by current data-block
        '''
        pass

    def animation_data_create(self) -> 'AnimData':
        ''' Create animation data to this ID, note that not all ID types support this

        :rtype: 'AnimData'
        :return: New animation data or NULL
        '''
        pass

    def animation_data_clear(self):
        ''' Clear animation on this this ID

        '''
        pass

    def update_tag(
            self,
            refresh: typing.Union[typing.Set[int], typing.Set[str]] = {}):
        ''' Tag the ID to update its display data, e.g. when calling bpy.types.Scene.update

        :param refresh: Type of updates to perform
        :type refresh: typing.Union[typing.Set[int], typing.Set[str]]
        '''
        pass

    def preview_ensure(self) -> 'ImagePreview':
        ''' Ensure that this ID has preview data (if ID type supports it)

        :rtype: 'ImagePreview'
        :return: The existing or created preview
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IDMaterials(bpy_struct):
    ''' Collection of materials
    '''

    def append(self, material: 'Material'):
        ''' Add a new material to the data-block

        :param material: Material to add
        :type material: 'Material'
        '''
        pass

    def pop(self, index: int = -1) -> 'Material':
        ''' Remove a material from the data-block

        :param index: Index of material to remove
        :type index: int
        :rtype: 'Material'
        :return: Material to remove
        '''
        pass

    def clear(self):
        ''' Remove all materials from the data-block

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IDOverrideLibrary(bpy_struct):
    ''' Struct gathering all data needed by overridden linked IDs
    '''

    properties: typing.Union[
        typing.Dict[str, 'IDOverrideLibraryProperty'], typing.
        List['IDOverrideLibraryProperty'], 'bpy_prop_collection',
        'IDOverrideLibraryProperties'] = None
    ''' List of overridden properties

    :type: typing.Union[typing.Dict[str, 'IDOverrideLibraryProperty'], typing.List['IDOverrideLibraryProperty'], 'bpy_prop_collection', 'IDOverrideLibraryProperties']
    '''

    reference: 'ID' = None
    ''' Linked ID used as reference by this override

    :type: 'ID'
    '''

    def operations_update(self):
        ''' Update the library override operations based on the differences between this override ID and its reference

        '''
        pass

    def reset(self, do_hierarchy: bool = True):
        ''' Reset this override to match again its linked reference ID

        :param do_hierarchy: Also reset all the dependencies of this override to match their reference linked IDs
        :type do_hierarchy: bool
        '''
        pass

    def destroy(self, do_hierarchy: bool = True):
        ''' Delete this override ID and remap its usages to its linked reference ID instead

        :param do_hierarchy: Also delete all the dependencies of this override and remap their usages to their reference linked IDs
        :type do_hierarchy: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IDOverrideLibraryProperties(bpy_struct):
    ''' Collection of override properties
    '''

    def add(self, rna_path: str) -> 'IDOverrideLibraryProperty':
        ''' Add a property to the override library when it doesn't exist yet

        :param rna_path: RNA Path, RNA-Path of the property to add
        :type rna_path: str
        :rtype: 'IDOverrideLibraryProperty'
        :return: New Property, Newly created override property or existing one
        '''
        pass

    def remove(self, property: 'IDOverrideLibraryProperty'):
        ''' Remove and delete a property

        :param property: Property, Override property to be deleted
        :type property: 'IDOverrideLibraryProperty'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IDOverrideLibraryProperty(bpy_struct):
    ''' Description of an overridden property
    '''

    operations: typing.Union[
        typing.Dict[str, 'IDOverrideLibraryPropertyOperation'], typing.
        List['IDOverrideLibraryPropertyOperation'], 'bpy_prop_collection',
        'IDOverrideLibraryPropertyOperations'] = None
    ''' List of overriding operations for a property

    :type: typing.Union[typing.Dict[str, 'IDOverrideLibraryPropertyOperation'], typing.List['IDOverrideLibraryPropertyOperation'], 'bpy_prop_collection', 'IDOverrideLibraryPropertyOperations']
    '''

    rna_path: str = None
    ''' RNA path leading to that property, from owning ID

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IDOverrideLibraryPropertyOperation(bpy_struct):
    ''' Description of an override operation over an overridden property
    '''

    flag: typing.Union[int, str] = None
    ''' Optional flags (NOT USED) * MANDATORY Mandatory -- For templates, prevents the user from removing predefined operation (NOT USED). * LOCKED Locked -- Prevents the user from modifying that override operation (NOT USED).

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' What override operation is performed * NOOP No-Op -- Does nothing, prevents adding actual overrides (NOT USED). * REPLACE Replace -- Replace value of reference by overriding one. * DIFF_ADD Differential -- Stores and apply difference between reference and local value (NOT USED). * DIFF_SUB Differential -- Stores and apply difference between reference and local value (NOT USED). * FACT_MULTIPLY Factor -- Stores and apply multiplication factor between reference and local value (NOT USED). * INSERT_AFTER Insert After -- Insert a new item into collection after the one referenced in subitem_reference_name or _index. * INSERT_BEFORE Insert Before -- Insert a new item into collection after the one referenced in subitem_reference_name or _index (NOT USED).

    :type: typing.Union[int, str]
    '''

    subitem_local_index: int = None
    ''' Used to handle insertions into collection

    :type: int
    '''

    subitem_local_name: str = None
    ''' Used to handle insertions into collection

    :type: str
    '''

    subitem_reference_index: int = None
    ''' Used to handle insertions into collection

    :type: int
    '''

    subitem_reference_name: str = None
    ''' Used to handle insertions into collection

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IDOverrideLibraryPropertyOperations(bpy_struct):
    ''' Collection of override operations
    '''

    def add(self,
            operation: typing.Union[int, str],
            subitem_reference_name: str = "",
            subitem_local_name: str = "",
            subitem_reference_index: int = -1,
            subitem_local_index: int = -1
            ) -> 'IDOverrideLibraryPropertyOperation':
        ''' Add a new operation

        :param operation: Operation, What override operation is performed * NOOP No-Op -- Does nothing, prevents adding actual overrides (NOT USED). * REPLACE Replace -- Replace value of reference by overriding one. * DIFF_ADD Differential -- Stores and apply difference between reference and local value (NOT USED). * DIFF_SUB Differential -- Stores and apply difference between reference and local value (NOT USED). * FACT_MULTIPLY Factor -- Stores and apply multiplication factor between reference and local value (NOT USED). * INSERT_AFTER Insert After -- Insert a new item into collection after the one referenced in subitem_reference_name or _index. * INSERT_BEFORE Insert Before -- Insert a new item into collection after the one referenced in subitem_reference_name or _index (NOT USED).
        :type operation: typing.Union[int, str]
        :param subitem_reference_name: Subitem Reference Name, Used to handle insertions into collection
        :type subitem_reference_name: str
        :param subitem_local_name: Subitem Local Name, Used to handle insertions into collection
        :type subitem_local_name: str
        :param subitem_reference_index: Subitem Reference Index, Used to handle insertions into collection
        :type subitem_reference_index: int
        :param subitem_local_index: Subitem Local Index, Used to handle insertions into collection
        :type subitem_local_index: int
        :rtype: 'IDOverrideLibraryPropertyOperation'
        :return: New Operation, Created operation
        '''
        pass

    def remove(self, operation: 'IDOverrideLibraryPropertyOperation'):
        ''' Remove and delete an operation

        :param operation: Operation, Override operation to be deleted
        :type operation: 'IDOverrideLibraryPropertyOperation'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IDPropertyWrapPtr(bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IKParam(bpy_struct):
    ''' Base type for IK solver parameters
    '''

    ik_solver: typing.Union[int, str] = None
    ''' IK solver for which these parameters are defined * LEGACY Standard -- Original IK solver. * ITASC iTaSC -- Multi constraint, stateful IK solver.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ImageFormatSettings(bpy_struct):
    ''' Settings for image formats
    '''

    cineon_black: int = None
    ''' Log conversion reference blackpoint

    :type: int
    '''

    cineon_gamma: float = None
    ''' Log conversion gamma

    :type: float
    '''

    cineon_white: int = None
    ''' Log conversion reference whitepoint

    :type: int
    '''

    color_depth: typing.Union[int, str] = None
    ''' Bit depth per channel * 8 8 -- 8-bit color channels. * 10 10 -- 10-bit color channels. * 12 12 -- 12-bit color channels. * 16 16 -- 16-bit color channels. * 32 32 -- 32-bit color channels.

    :type: typing.Union[int, str]
    '''

    color_mode: typing.Union[int, str] = None
    ''' Choose BW for saving grayscale images, RGB for saving red, green and blue channels, and RGBA for saving red, green, blue and alpha channels * BW BW -- Images get saved in 8-bit grayscale (only PNG, JPEG, TGA, TIF). * RGB RGB -- Images are saved with RGB (color) data. * RGBA RGBA -- Images are saved with RGB and Alpha data (if supported).

    :type: typing.Union[int, str]
    '''

    compression: int = None
    ''' Amount of time to determine best compression: 0 = no compression with fast file output, 100 = maximum lossless compression with slow file output

    :type: int
    '''

    display_settings: 'ColorManagedDisplaySettings' = None
    ''' Settings of device saved image would be displayed on

    :type: 'ColorManagedDisplaySettings'
    '''

    exr_codec: typing.Union[int, str] = None
    ''' Codec settings for OpenEXR

    :type: typing.Union[int, str]
    '''

    file_format: typing.Union[int, str] = None
    ''' File format to save the rendered images as * BMP BMP -- Output image in bitmap format. * IRIS Iris -- Output image in SGI IRIS format. * PNG PNG -- Output image in PNG format. * JPEG JPEG -- Output image in JPEG format. * JPEG2000 JPEG 2000 -- Output image in JPEG 2000 format. * TARGA Targa -- Output image in Targa format. * TARGA_RAW Targa Raw -- Output image in uncompressed Targa format. * CINEON Cineon -- Output image in Cineon format. * DPX DPX -- Output image in DPX format. * OPEN_EXR_MULTILAYER OpenEXR MultiLayer -- Output image in multilayer OpenEXR format. * OPEN_EXR OpenEXR -- Output image in OpenEXR format. * HDR Radiance HDR -- Output image in Radiance HDR format. * TIFF TIFF -- Output image in TIFF format. * AVI_JPEG AVI JPEG -- Output video in AVI JPEG format. * AVI_RAW AVI Raw -- Output video in AVI Raw format. * FFMPEG FFmpeg Video -- The most versatile way to output video files.

    :type: typing.Union[int, str]
    '''

    jpeg2k_codec: typing.Union[int, str] = None
    ''' Codec settings for Jpeg2000

    :type: typing.Union[int, str]
    '''

    quality: int = None
    ''' Quality for image formats that support lossy compression

    :type: int
    '''

    stereo_3d_format: 'Stereo3dFormat' = None
    ''' Settings for stereo 3D

    :type: 'Stereo3dFormat'
    '''

    tiff_codec: typing.Union[int, str] = None
    ''' Compression mode for TIFF

    :type: typing.Union[int, str]
    '''

    use_cineon_log: bool = None
    ''' Convert to logarithmic color space

    :type: bool
    '''

    use_jpeg2k_cinema_48: bool = None
    ''' Use Openjpeg Cinema Preset (48fps)

    :type: bool
    '''

    use_jpeg2k_cinema_preset: bool = None
    ''' Use Openjpeg Cinema Preset

    :type: bool
    '''

    use_jpeg2k_ycc: bool = None
    ''' Save luminance-chrominance-chrominance channels instead of RGB colors

    :type: bool
    '''

    use_preview: bool = None
    ''' When rendering animations, save JPG preview images in same directory

    :type: bool
    '''

    use_zbuffer: bool = None
    ''' Save the z-depth per pixel (32-bit unsigned integer z-buffer)

    :type: bool
    '''

    view_settings: 'ColorManagedViewSettings' = None
    ''' Color management settings applied on image before saving

    :type: 'ColorManagedViewSettings'
    '''

    views_format: typing.Union[int, str] = None
    ''' Format of multiview media * INDIVIDUAL Individual -- Individual files for each view with the prefix as defined by the scene views. * STEREO_3D Stereo 3D -- Single file with an encoded stereo pair.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ImagePackedFile(bpy_struct):
    filepath: str = None
    ''' 

    :type: str
    '''

    packed_file: 'PackedFile' = None
    ''' 

    :type: 'PackedFile'
    '''

    def save(self):
        ''' Save the packed file to its filepath

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ImagePreview(bpy_struct):
    ''' Preview image and icon
    '''

    icon_id: int = None
    ''' Unique integer identifying this preview as an icon (zero means invalid)

    :type: int
    '''

    icon_pixels: int = None
    ''' Icon pixels, as bytes (always 32-bit RGBA)

    :type: int
    '''

    icon_pixels_float: float = None
    ''' Icon pixels components, as floats (RGBA concatenated values)

    :type: float
    '''

    icon_size: typing.List[int] = None
    ''' Width and height in pixels

    :type: typing.List[int]
    '''

    image_pixels: int = None
    ''' Image pixels, as bytes (always 32-bit RGBA)

    :type: int
    '''

    image_pixels_float: float = None
    ''' Image pixels components, as floats (RGBA concatenated values)

    :type: float
    '''

    image_size: typing.List[int] = None
    ''' Width and height in pixels

    :type: typing.List[int]
    '''

    is_icon_custom: bool = None
    ''' True if this preview icon has been modified by py script,and is no more auto-generated by Blender

    :type: bool
    '''

    is_image_custom: bool = None
    ''' True if this preview image has been modified by py script,and is no more auto-generated by Blender

    :type: bool
    '''

    def reload(self):
        ''' Reload the preview from its source path

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ImageUser(bpy_struct):
    ''' Parameters defining how an Image data-block is used by another data-block
    '''

    frame_current: int = None
    ''' Current frame number in image sequence or movie

    :type: int
    '''

    frame_duration: int = None
    ''' Number of images of a movie to use

    :type: int
    '''

    frame_offset: int = None
    ''' Offset the number of the frame to use in the animation

    :type: int
    '''

    frame_start: int = None
    ''' Global starting frame of the movie/sequence, assuming first picture has a #1

    :type: int
    '''

    multilayer_layer: int = None
    ''' Layer in multilayer image

    :type: int
    '''

    multilayer_pass: int = None
    ''' Pass in multilayer image

    :type: int
    '''

    multilayer_view: int = None
    ''' View in multilayer image

    :type: int
    '''

    tile: int = None
    ''' Tile in tiled image

    :type: int
    '''

    use_auto_refresh: bool = None
    ''' Always refresh image on frame changes

    :type: bool
    '''

    use_cyclic: bool = None
    ''' Cycle the images in the movie

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IntAttributeValue(bpy_struct):
    ''' Integer value in geometry attribute
    '''

    value: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyConfig(bpy_struct):
    ''' Input configuration, including keymaps
    '''

    is_user_defined: bool = None
    ''' Indicates that a keyconfig was defined by the user

    :type: bool
    '''

    keymaps: typing.Union[typing.Dict[str, 'KeyMap'], typing.List['KeyMap'],
                          'bpy_prop_collection', 'KeyMaps'] = None
    ''' Key maps configured as part of this configuration

    :type: typing.Union[typing.Dict[str, 'KeyMap'], typing.List['KeyMap'], 'bpy_prop_collection', 'KeyMaps']
    '''

    name: str = None
    ''' Name of the key configuration

    :type: str
    '''

    preferences: 'KeyConfigPreferences' = None
    ''' 

    :type: 'KeyConfigPreferences'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyConfigPreferences(bpy_struct):
    bl_idname: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyConfigurations(bpy_struct):
    ''' Collection of KeyConfigs
    '''

    active: 'KeyConfig' = None
    ''' Active key configuration (preset)

    :type: 'KeyConfig'
    '''

    addon: 'KeyConfig' = None
    ''' Key configuration that can be extended by add-ons, and is added to the active configuration when handling events

    :type: 'KeyConfig'
    '''

    default: 'KeyConfig' = None
    ''' Default builtin key configuration

    :type: 'KeyConfig'
    '''

    user: 'KeyConfig' = None
    ''' Final key configuration that combines keymaps from the active and add-on configurations, and can be edited by the user

    :type: 'KeyConfig'
    '''

    def new(self, name: str) -> 'KeyConfig':
        ''' new

        :param name: Name
        :type name: str
        :rtype: 'KeyConfig'
        :return: Key Configuration, Added key configuration
        '''
        pass

    def remove(self, keyconfig: 'KeyConfig'):
        ''' remove

        :param keyconfig: Key Configuration, Removed key configuration
        :type keyconfig: 'KeyConfig'
        '''
        pass

    def find_item_from_operator(
            self,
            idname: str,
            context: typing.Union[int, str] = 'INVOKE_DEFAULT',
            properties: 'OperatorProperties' = None,
            include: typing.Union[typing.Set[int], typing.Set[str]] = {
                'ACTIONZONE', 'KEYBOARD', 'MOUSE', 'NDOF', 'TWEAK'
            },
            exclude: typing.Union[typing.Set[int], typing.Set[str]] = {}):
        ''' find_item_from_operator

        :param idname: Operator Identifier
        :type idname: str
        :param context: context
        :type context: typing.Union[int, str]
        :param properties: 
        :type properties: 'OperatorProperties'
        :param include: Include
        :type include: typing.Union[typing.Set[int], typing.Set[str]]
        :param exclude: Exclude
        :type exclude: typing.Union[typing.Set[int], typing.Set[str]]
        '''
        pass

    def update(self):
        ''' update

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyMap(bpy_struct):
    ''' Input configuration, including keymaps
    '''

    bl_owner_id: str = None
    ''' Internal owner

    :type: str
    '''

    is_modal: bool = None
    ''' Indicates that a keymap is used for translate modal events for an operator

    :type: bool
    '''

    is_user_modified: bool = None
    ''' Keymap is defined by the user

    :type: bool
    '''

    keymap_items: typing.Union[typing.Dict[str, 'KeyMapItem'], typing.
                               List['KeyMapItem'], 'bpy_prop_collection',
                               'KeyMapItems'] = None
    ''' Items in the keymap, linking an operator to an input event

    :type: typing.Union[typing.Dict[str, 'KeyMapItem'], typing.List['KeyMapItem'], 'bpy_prop_collection', 'KeyMapItems']
    '''

    name: str = None
    ''' Name of the key map

    :type: str
    '''

    region_type: typing.Union[int, str] = None
    ''' Optional region type keymap is associated with

    :type: typing.Union[int, str]
    '''

    show_expanded_children: bool = None
    ''' Children expanded in the user interface

    :type: bool
    '''

    show_expanded_items: bool = None
    ''' Expanded in the user interface

    :type: bool
    '''

    space_type: typing.Union[int, str] = None
    ''' Optional space type keymap is associated with * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.

    :type: typing.Union[int, str]
    '''

    def active(self) -> 'KeyMap':
        ''' active

        :rtype: 'KeyMap'
        :return: Key Map, Active key map
        '''
        pass

    def restore_to_default(self):
        ''' restore_to_default

        '''
        pass

    def restore_item_to_default(self, item: 'KeyMapItem'):
        ''' restore_item_to_default

        :param item: Item
        :type item: 'KeyMapItem'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyMapItem(bpy_struct):
    ''' Item in a Key Map
    '''

    active: bool = None
    ''' Activate or deactivate item

    :type: bool
    '''

    alt: int = None
    ''' Alt key pressed, -1 for any state

    :type: int
    '''

    alt_ui: bool = None
    ''' Alt key pressed

    :type: bool
    '''

    any: bool = None
    ''' Any modifier keys pressed

    :type: bool
    '''

    ctrl: int = None
    ''' Control key pressed, -1 for any state

    :type: int
    '''

    ctrl_ui: bool = None
    ''' Control key pressed

    :type: bool
    '''

    id: int = None
    ''' ID of the item

    :type: int
    '''

    idname: str = None
    ''' Identifier of operator to call on input event

    :type: str
    '''

    is_user_defined: bool = None
    ''' Is this keymap item user defined (doesn't just replace a builtin item)

    :type: bool
    '''

    is_user_modified: bool = None
    ''' Is this keymap item modified by the user

    :type: bool
    '''

    key_modifier: typing.Union[int, str] = None
    ''' Regular key pressed as a modifier * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.

    :type: typing.Union[int, str]
    '''

    map_type: typing.Union[int, str] = None
    ''' Type of event mapping

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of operator (translated) to call on input event

    :type: str
    '''

    oskey: int = None
    ''' Operating system key pressed, -1 for any state

    :type: int
    '''

    oskey_ui: bool = None
    ''' Operating system key pressed

    :type: bool
    '''

    properties: 'OperatorProperties' = None
    ''' Properties to set when the operator is called

    :type: 'OperatorProperties'
    '''

    propvalue: typing.Union[int, str] = None
    ''' The value this event translates to in a modal keymap

    :type: typing.Union[int, str]
    '''

    repeat: bool = None
    ''' Active on key-repeat events (when a key is held)

    :type: bool
    '''

    shift: int = None
    ''' Shift key pressed, -1 for any state

    :type: int
    '''

    shift_ui: bool = None
    ''' Shift key pressed

    :type: bool
    '''

    show_expanded: bool = None
    ''' Show key map event and property details in the user interface

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Type of event * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.

    :type: typing.Union[int, str]
    '''

    value: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    def compare(self, item: 'KeyMapItem') -> bool:
        ''' compare

        :param item: Item
        :type item: 'KeyMapItem'
        :rtype: bool
        :return: Comparison result
        '''
        pass

    def to_string(self, compact: bool = False) -> str:
        ''' to_string

        :param compact: Compact
        :type compact: bool
        :rtype: str
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyMapItems(bpy_struct):
    ''' Collection of keymap items
    '''

    def new(self,
            idname: str,
            type: typing.Union[int, str],
            value: typing.Union[int, str],
            any: bool = False,
            shift: int = 0,
            ctrl: int = 0,
            alt: int = 0,
            oskey: int = 0,
            key_modifier: typing.Union[int, str] = 'NONE',
            repeat: bool = False,
            head: bool = False) -> 'KeyMapItem':
        ''' new

        :param idname: Operator Identifier
        :type idname: str
        :param type: Type * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.
        :type type: typing.Union[int, str]
        :param value: Value
        :type value: typing.Union[int, str]
        :param any: Any
        :type any: bool
        :param shift: Shift
        :type shift: int
        :param ctrl: Ctrl
        :type ctrl: int
        :param alt: Alt
        :type alt: int
        :param oskey: OS Key
        :type oskey: int
        :param key_modifier: Key Modifier * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.
        :type key_modifier: typing.Union[int, str]
        :param repeat: Repeat, When set, accept key-repeat events
        :type repeat: bool
        :param head: At Head, Force item to be added at start (not end) of key map so that it doesn't get blocked by an existing key map item
        :type head: bool
        :rtype: 'KeyMapItem'
        :return: Item, Added key map item
        '''
        pass

    def new_modal(self,
                  propvalue: str,
                  type: typing.Union[int, str],
                  value: typing.Union[int, str],
                  any: bool = False,
                  shift: int = 0,
                  ctrl: int = 0,
                  alt: int = 0,
                  oskey: int = 0,
                  key_modifier: typing.Union[int, str] = 'NONE',
                  repeat: bool = False) -> 'KeyMapItem':
        ''' new_modal

        :param propvalue: Property Value
        :type propvalue: str
        :param type: Type * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.
        :type type: typing.Union[int, str]
        :param value: Value
        :type value: typing.Union[int, str]
        :param any: Any
        :type any: bool
        :param shift: Shift
        :type shift: int
        :param ctrl: Ctrl
        :type ctrl: int
        :param alt: Alt
        :type alt: int
        :param oskey: OS Key
        :type oskey: int
        :param key_modifier: Key Modifier * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.
        :type key_modifier: typing.Union[int, str]
        :param repeat: Repeat, When set, accept key-repeat events
        :type repeat: bool
        :rtype: 'KeyMapItem'
        :return: Item, Added key map item
        '''
        pass

    def new_from_item(self, item: 'KeyMapItem',
                      head: bool = False) -> 'KeyMapItem':
        ''' new_from_item

        :param item: Item, Item to use as a reference
        :type item: 'KeyMapItem'
        :param head: At Head
        :type head: bool
        :rtype: 'KeyMapItem'
        :return: Item, Added key map item
        '''
        pass

    def remove(self, item: 'KeyMapItem'):
        ''' remove

        :param item: Item
        :type item: 'KeyMapItem'
        '''
        pass

    def from_id(self, id: int) -> 'KeyMapItem':
        ''' from_id

        :param id: id, ID of the item
        :type id: int
        :rtype: 'KeyMapItem'
        :return: Item
        '''
        pass

    def find_from_operator(
            self,
            idname: str,
            properties: 'OperatorProperties' = None,
            include: typing.Union[typing.Set[int], typing.Set[str]] = {
                'ACTIONZONE', 'KEYBOARD', 'MOUSE', 'NDOF', 'TWEAK'
            },
            exclude: typing.Union[typing.Set[int], typing.Set[str]] = {}):
        ''' find_from_operator

        :param idname: Operator Identifier
        :type idname: str
        :param properties: 
        :type properties: 'OperatorProperties'
        :param include: Include
        :type include: typing.Union[typing.Set[int], typing.Set[str]]
        :param exclude: Exclude
        :type exclude: typing.Union[typing.Set[int], typing.Set[str]]
        '''
        pass

    def match_event(self, event: 'Event'):
        ''' match_event

        :param event: 
        :type event: 'Event'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyMaps(bpy_struct):
    ''' Collection of keymaps
    '''

    def new(self,
            name: str,
            space_type: typing.Union[int, str] = 'EMPTY',
            region_type: typing.Union[int, str] = 'WINDOW',
            modal: bool = False,
            tool: bool = False) -> 'KeyMap':
        ''' Ensure the keymap exists. This will return the one with the given name/space type/region type, or create a new one if it does not exist yet.

        :param name: Name
        :type name: str
        :param space_type: Space Type * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.
        :type space_type: typing.Union[int, str]
        :param region_type: Region Type
        :type region_type: typing.Union[int, str]
        :param modal: Modal, Keymap for modal operators
        :type modal: bool
        :param tool: Tool, Keymap for active tools
        :type tool: bool
        :rtype: 'KeyMap'
        :return: Key Map, Added key map
        '''
        pass

    def remove(self, keymap: 'KeyMap'):
        ''' remove

        :param keymap: Key Map, Removed key map
        :type keymap: 'KeyMap'
        '''
        pass

    def find(self,
             name: str,
             space_type: typing.Union[int, str] = 'EMPTY',
             region_type: typing.Union[int, str] = 'WINDOW') -> 'KeyMap':
        ''' find

        :param name: Name
        :type name: str
        :param space_type: Space Type * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.
        :type space_type: typing.Union[int, str]
        :param region_type: Region Type
        :type region_type: typing.Union[int, str]
        :rtype: 'KeyMap'
        :return: Key Map, Corresponding key map
        '''
        pass

    def find_modal(self, name: str) -> 'KeyMap':
        ''' find_modal

        :param name: Operator Name
        :type name: str
        :rtype: 'KeyMap'
        :return: Key Map, Corresponding key map
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Keyframe(bpy_struct):
    ''' Bezier curve point with two handles defining a Keyframe on an F-Curve
    '''

    amplitude: float = None
    ''' Amount to boost elastic bounces for 'elastic' easing

    :type: float
    '''

    back: float = None
    ''' Amount of overshoot for 'back' easing

    :type: float
    '''

    co: typing.List[float] = None
    ''' Coordinates of the control point

    :type: typing.List[float]
    '''

    co_ui: typing.List[float] = None
    ''' Coordinates of the control point. Note: Changing this value also updates the handles similar to using the graph editor transform operator

    :type: typing.List[float]
    '''

    easing: typing.Union[int, str] = None
    ''' Which ends of the segment between this and the next keyframe easing interpolation is applied to * AUTO Automatic Easing -- Easing type is chosen automatically based on what the type of interpolation used (e.g. Ease In for transitional types, and Ease Out for dynamic effects). * EASE_IN Ease In -- Only on the end closest to the next keyframe. * EASE_OUT Ease Out -- Only on the end closest to the first keyframe. * EASE_IN_OUT Ease In and Out -- Segment between both keyframes.

    :type: typing.Union[int, str]
    '''

    handle_left: typing.List[float] = None
    ''' Coordinates of the left handle (before the control point)

    :type: typing.List[float]
    '''

    handle_left_type: typing.Union[int, str] = None
    ''' Handle types * FREE Free -- Completely independent manually set handle. * ALIGNED Aligned -- Manually set handle with rotation locked together with its pair. * VECTOR Vector -- Automatic handles that create straight lines. * AUTO Automatic -- Automatic handles that create smooth curves. * AUTO_CLAMPED Auto Clamped -- Automatic handles that create smooth curves which only change direction at keyframes.

    :type: typing.Union[int, str]
    '''

    handle_right: typing.List[float] = None
    ''' Coordinates of the right handle (after the control point)

    :type: typing.List[float]
    '''

    handle_right_type: typing.Union[int, str] = None
    ''' Handle types * FREE Free -- Completely independent manually set handle. * ALIGNED Aligned -- Manually set handle with rotation locked together with its pair. * VECTOR Vector -- Automatic handles that create straight lines. * AUTO Automatic -- Automatic handles that create smooth curves. * AUTO_CLAMPED Auto Clamped -- Automatic handles that create smooth curves which only change direction at keyframes.

    :type: typing.Union[int, str]
    '''

    interpolation: typing.Union[int, str] = None
    ''' Interpolation method to use for segment of the F-Curve from this Keyframe until the next Keyframe * CONSTANT Constant -- No interpolation, value of A gets held until B is encountered. * LINEAR Linear -- Straight-line interpolation between A and B (i.e. no ease in/out). * BEZIER Bezier -- Smooth interpolation between A and B, with some control over curve shape. * SINE Sinusoidal -- Sinusoidal easing (weakest, almost linear but with a slight curvature). * QUAD Quadratic -- Quadratic easing. * CUBIC Cubic -- Cubic easing. * QUART Quartic -- Quartic easing. * QUINT Quintic -- Quintic easing. * EXPO Exponential -- Exponential easing (dramatic). * CIRC Circular -- Circular easing (strongest and most dynamic). * BACK Back -- Cubic easing with overshoot and settle. * BOUNCE Bounce -- Exponentially decaying parabolic bounce, like when objects collide. * ELASTIC Elastic -- Exponentially decaying sine wave, like an elastic band.

    :type: typing.Union[int, str]
    '''

    period: float = None
    ''' Time between bounces for elastic easing

    :type: float
    '''

    select_control_point: bool = None
    ''' Control point selection status

    :type: bool
    '''

    select_left_handle: bool = None
    ''' Left handle selection status

    :type: bool
    '''

    select_right_handle: bool = None
    ''' Right handle selection status

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Type of keyframe (for visual purposes only) * KEYFRAME Keyframe -- Normal keyframe, e.g. for key poses. * BREAKDOWN Breakdown -- A breakdown pose, e.g. for transitions between key poses. * MOVING_HOLD Moving Hold -- A keyframe that is part of a moving hold. * EXTREME Extreme -- An "extreme" pose, or some other purpose as needed. * JITTER Jitter -- A filler or baked keyframe for keying on ones, or some other purpose as needed.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyingSet(bpy_struct):
    ''' Settings that should be keyframed together
    '''

    bl_description: str = None
    ''' A short description of the keying set

    :type: str
    '''

    bl_idname: str = None
    ''' If this is set, the Keying Set gets a custom ID, otherwise it takes the name of the class used to define the Keying Set (for example, if the class name is "BUILTIN_KSI_location", and bl_idname is not set by the script, then bl_idname = "BUILTIN_KSI_location")

    :type: str
    '''

    bl_label: str = None
    ''' 

    :type: str
    '''

    is_path_absolute: bool = None
    ''' Keying Set defines specific paths/settings to be keyframed (i.e. is not reliant on context info)

    :type: bool
    '''

    paths: typing.Union[typing.Dict[str, 'KeyingSetPath'], typing.
                        List['KeyingSetPath'], 'bpy_prop_collection',
                        'KeyingSetPaths'] = None
    ''' Keying Set Paths to define settings that get keyframed together

    :type: typing.Union[typing.Dict[str, 'KeyingSetPath'], typing.List['KeyingSetPath'], 'bpy_prop_collection', 'KeyingSetPaths']
    '''

    type_info: 'KeyingSetInfo' = None
    ''' Callback function defines for built-in Keying Sets

    :type: 'KeyingSetInfo'
    '''

    use_insertkey_needed: bool = None
    ''' Only insert keyframes where they're needed in the relevant F-Curves

    :type: bool
    '''

    use_insertkey_override_needed: bool = None
    ''' Override default setting to only insert keyframes where they're needed in the relevant F-Curves

    :type: bool
    '''

    use_insertkey_override_visual: bool = None
    ''' Override default setting to insert keyframes based on 'visual transforms'

    :type: bool
    '''

    use_insertkey_override_xyz_to_rgb: bool = None
    ''' Override default setting to set color for newly added transformation F-Curves (Location, Rotation, Scale) to be based on the transform axis

    :type: bool
    '''

    use_insertkey_visual: bool = None
    ''' Insert keyframes based on 'visual transforms'

    :type: bool
    '''

    use_insertkey_xyz_to_rgb: bool = None
    ''' Color for newly added transformation F-Curves (Location, Rotation, Scale) is based on the transform axis

    :type: bool
    '''

    def refresh(self):
        ''' Refresh Keying Set to ensure that it is valid for the current context (call before each use of one)

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyingSetInfo(bpy_struct):
    ''' Callback function defines for builtin Keying Sets
    '''

    bl_description: str = None
    ''' A short description of the keying set

    :type: str
    '''

    bl_idname: str = None
    ''' If this is set, the Keying Set gets a custom ID, otherwise it takes the name of the class used to define the Keying Set (for example, if the class name is "BUILTIN_KSI_location", and bl_idname is not set by the script, then bl_idname = "BUILTIN_KSI_location")

    :type: str
    '''

    bl_label: str = None
    ''' 

    :type: str
    '''

    bl_options: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Keying Set options to use when inserting keyframes * INSERTKEY_NEEDED Only Needed -- Only insert keyframes where they're needed in the relevant F-Curves. * INSERTKEY_VISUAL Visual Keying -- Insert keyframes based on 'visual transforms'. * INSERTKEY_XYZ_TO_RGB XYZ=RGB Colors -- Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    def poll(self, context: 'Context'):
        ''' Test if Keying Set can be used or not

        :param context: 
        :type context: 'Context'
        '''
        pass

    def iterator(self, context: 'Context', ks: 'KeyingSet'):
        ''' Call generate() on the structs which have properties to be keyframed

        :param context: 
        :type context: 'Context'
        :param ks: 
        :type ks: 'KeyingSet'
        '''
        pass

    def generate(self, context: 'Context', ks: 'KeyingSet', data: 'AnyType'):
        ''' Add Paths to the Keying Set to keyframe the properties of the given data

        :param context: 
        :type context: 'Context'
        :param ks: 
        :type ks: 'KeyingSet'
        :param data: 
        :type data: 'AnyType'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyingSetPath(bpy_struct):
    ''' Path to a setting for use in a Keying Set
    '''

    array_index: int = None
    ''' Index to the specific setting if applicable

    :type: int
    '''

    data_path: str = None
    ''' Path to property setting

    :type: str
    '''

    group: str = None
    ''' Name of Action Group to assign setting(s) for this path to

    :type: str
    '''

    group_method: typing.Union[int, str] = None
    ''' Method used to define which Group-name to use

    :type: typing.Union[int, str]
    '''

    id: 'ID' = None
    ''' ID-Block that keyframes for Keying Set should be added to (for Absolute Keying Sets only)

    :type: 'ID'
    '''

    id_type: typing.Union[int, str] = None
    ''' Type of ID-block that can be used

    :type: typing.Union[int, str]
    '''

    use_entire_array: bool = None
    ''' When an 'array/vector' type is chosen (Location, Rotation, Color, etc.), entire array is to be used

    :type: bool
    '''

    use_insertkey_needed: bool = None
    ''' Only insert keyframes where they're needed in the relevant F-Curves

    :type: bool
    '''

    use_insertkey_override_needed: bool = None
    ''' Override default setting to only insert keyframes where they're needed in the relevant F-Curves

    :type: bool
    '''

    use_insertkey_override_visual: bool = None
    ''' Override default setting to insert keyframes based on 'visual transforms'

    :type: bool
    '''

    use_insertkey_override_xyz_to_rgb: bool = None
    ''' Override default setting to set color for newly added transformation F-Curves (Location, Rotation, Scale) to be based on the transform axis

    :type: bool
    '''

    use_insertkey_visual: bool = None
    ''' Insert keyframes based on 'visual transforms'

    :type: bool
    '''

    use_insertkey_xyz_to_rgb: bool = None
    ''' Color for newly added transformation F-Curves (Location, Rotation, Scale) is based on the transform axis

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyingSetPaths(bpy_struct):
    ''' Collection of keying set paths
    '''

    active: 'KeyingSetPath' = None
    ''' Active Keying Set used to insert/delete keyframes

    :type: 'KeyingSetPath'
    '''

    active_index: int = None
    ''' Current Keying Set index

    :type: int
    '''

    def add(self,
            target_id: 'ID',
            data_path: str,
            index: int = -1,
            group_method: typing.Union[int, str] = 'KEYINGSET',
            group_name: str = "") -> 'KeyingSetPath':
        ''' Add a new path for the Keying Set

        :param target_id: Target ID, ID data-block for the destination
        :type target_id: 'ID'
        :param data_path: Data-Path, RNA-Path to destination property
        :type data_path: str
        :param index: Index, The index of the destination property (i.e. axis of Location/Rotation/etc.), or -1 for the entire array
        :type index: int
        :param group_method: Grouping Method, Method used to define which Group-name to use
        :type group_method: typing.Union[int, str]
        :param group_name: Group Name, Name of Action Group to assign destination to (only if grouping mode is to use this name)
        :type group_name: str
        :rtype: 'KeyingSetPath'
        :return: New Path, Path created and added to the Keying Set
        '''
        pass

    def remove(self, path: 'KeyingSetPath'):
        ''' Remove the given path from the Keying Set

        :param path: Path
        :type path: 'KeyingSetPath'
        '''
        pass

    def clear(self):
        ''' Remove all the paths from the Keying Set

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyingSets(bpy_struct):
    ''' Scene keying sets
    '''

    active: 'KeyingSet' = None
    ''' Active Keying Set used to insert/delete keyframes

    :type: 'KeyingSet'
    '''

    active_index: int = None
    ''' Current Keying Set index (negative for 'builtin' and positive for 'absolute')

    :type: int
    '''

    def new(self, idname: str = "KeyingSet",
            name: str = "KeyingSet") -> 'KeyingSet':
        ''' Add a new Keying Set to Scene

        :param idname: IDName, Internal identifier of Keying Set
        :type idname: str
        :param name: Name, User visible name of Keying Set
        :type name: str
        :rtype: 'KeyingSet'
        :return: Newly created Keying Set
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KeyingSetsAll(bpy_struct):
    ''' All available keying sets
    '''

    active: 'KeyingSet' = None
    ''' Active Keying Set used to insert/delete keyframes

    :type: 'KeyingSet'
    '''

    active_index: int = None
    ''' Current Keying Set index (negative for 'builtin' and positive for 'absolute')

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LatticePoint(bpy_struct):
    ''' Point in the lattice grid
    '''

    co: typing.List[float] = None
    ''' Original undeformed location used to calculate the strength of the deform effect (edit/animate the Deformed Location instead)

    :type: typing.List[float]
    '''

    co_deform: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    groups: typing.Union[typing.Dict[str, 'VertexGroupElement'], typing.
                         List['VertexGroupElement'],
                         'bpy_prop_collection'] = None
    ''' Weights for the vertex groups this point is member of

    :type: typing.Union[typing.Dict[str, 'VertexGroupElement'], typing.List['VertexGroupElement'], 'bpy_prop_collection']
    '''

    select: bool = None
    ''' Selection status

    :type: bool
    '''

    weight_softbody: float = None
    ''' Softbody goal weight

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LayerCollection(bpy_struct):
    ''' Layer collection
    '''

    children: typing.Union[typing.Dict[str, 'LayerCollection'], typing.
                           List['LayerCollection'],
                           'bpy_prop_collection'] = None
    ''' Child layer collections

    :type: typing.Union[typing.Dict[str, 'LayerCollection'], typing.List['LayerCollection'], 'bpy_prop_collection']
    '''

    collection: 'Collection' = None
    ''' Collection this layer collection is wrapping

    :type: 'Collection'
    '''

    exclude: bool = None
    ''' Exclude from view layer

    :type: bool
    '''

    hide_viewport: bool = None
    ''' Temporarily hide in viewport

    :type: bool
    '''

    holdout: bool = None
    ''' Mask out objects in collection from view layer

    :type: bool
    '''

    indirect_only: bool = None
    ''' Objects in collection only contribute indirectly (through shadows and reflections) in the view layer

    :type: bool
    '''

    is_visible: bool = None
    ''' Whether this collection is visible for the view layer, take into account the collection parent

    :type: bool
    '''

    name: str = None
    ''' Name of this view layer (same as its collection one)

    :type: str
    '''

    def visible_get(self):
        ''' Whether this collection is visible, take into account the collection parent and the viewport

        '''
        pass

    def has_objects(self):
        ''' 

        '''
        pass

    def has_selected_objects(self, view_layer: 'ViewLayer'):
        ''' 

        :param view_layer: View layer the layer collection belongs to
        :type view_layer: 'ViewLayer'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LayerObjects(bpy_struct):
    ''' Collections of objects
    '''

    active: 'Object' = None
    ''' Active object for this layer

    :type: 'Object'
    '''

    selected: typing.Union[typing.Dict[str, 'Object'], typing.
                           List['Object'], 'bpy_prop_collection'] = None
    ''' All the selected objects of this layer

    :type: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LibraryWeakReference(bpy_struct):
    ''' Read-only external reference to a linked data-block and its library file
    '''

    filepath: str = None
    ''' Path to the library .blend file

    :type: str
    '''

    id_name: str = None
    ''' Full ID name in the library .blend file (including the two leading 'id type' chars)

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifiers(bpy_struct):
    ''' Alpha modifiers for changing line alphas
    '''

    def new(self, name: str,
            type: typing.Union[int, str]) -> 'LineStyleAlphaModifier':
        ''' Add a alpha modifier to line style

        :param name: New name for the alpha modifier (not unique)
        :type name: str
        :param type: Alpha modifier type to add
        :type type: typing.Union[int, str]
        :rtype: 'LineStyleAlphaModifier'
        :return: Newly added alpha modifier
        '''
        pass

    def remove(self, modifier: 'LineStyleAlphaModifier'):
        ''' Remove a alpha modifier from line style

        :param modifier: Alpha modifier to remove
        :type modifier: 'LineStyleAlphaModifier'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifiers(bpy_struct):
    ''' Color modifiers for changing line colors
    '''

    def new(self, name: str,
            type: typing.Union[int, str]) -> 'LineStyleColorModifier':
        ''' Add a color modifier to line style

        :param name: New name for the color modifier (not unique)
        :type name: str
        :param type: Color modifier type to add
        :type type: typing.Union[int, str]
        :rtype: 'LineStyleColorModifier'
        :return: Newly added color modifier
        '''
        pass

    def remove(self, modifier: 'LineStyleColorModifier'):
        ''' Remove a color modifier from line style

        :param modifier: Color modifier to remove
        :type modifier: 'LineStyleColorModifier'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifiers(bpy_struct):
    ''' Geometry modifiers for changing line geometries
    '''

    def new(self, name: str,
            type: typing.Union[int, str]) -> 'LineStyleGeometryModifier':
        ''' Add a geometry modifier to line style

        :param name: New name for the geometry modifier (not unique)
        :type name: str
        :param type: Geometry modifier type to add
        :type type: typing.Union[int, str]
        :rtype: 'LineStyleGeometryModifier'
        :return: Newly added geometry modifier
        '''
        pass

    def remove(self, modifier: 'LineStyleGeometryModifier'):
        ''' Remove a geometry modifier from line style

        :param modifier: Geometry modifier to remove
        :type modifier: 'LineStyleGeometryModifier'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleModifier(bpy_struct):
    ''' Base type to define modifiers
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleTextureSlots(bpy_struct):
    ''' Collection of texture slots
    '''

    @classmethod
    def add(cls) -> 'LineStyleTextureSlot':
        ''' add

        :rtype: 'LineStyleTextureSlot'
        :return: The newly initialized mtex
        '''
        pass

    @classmethod
    def create(cls, index: int) -> 'LineStyleTextureSlot':
        ''' create

        :param index: Index, Slot index to initialize
        :type index: int
        :rtype: 'LineStyleTextureSlot'
        :return: The newly initialized mtex
        '''
        pass

    @classmethod
    def clear(cls, index: int):
        ''' clear

        :param index: Index, Slot index to clear
        :type index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifiers(bpy_struct):
    ''' Thickness modifiers for changing line thickness
    '''

    def new(self, name: str,
            type: typing.Union[int, str]) -> 'LineStyleThicknessModifier':
        ''' Add a thickness modifier to line style

        :param name: New name for the thickness modifier (not unique)
        :type name: str
        :param type: Thickness modifier type to add
        :type type: typing.Union[int, str]
        :rtype: 'LineStyleThicknessModifier'
        :return: Newly added thickness modifier
        '''
        pass

    def remove(self, modifier: 'LineStyleThicknessModifier'):
        ''' Remove a thickness modifier from line style

        :param modifier: Thickness modifier to remove
        :type modifier: 'LineStyleThicknessModifier'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Linesets(bpy_struct):
    ''' Line sets for associating lines and style parameters
    '''

    active: 'FreestyleLineSet' = None
    ''' Active line set being displayed

    :type: 'FreestyleLineSet'
    '''

    active_index: int = None
    ''' Index of active line set slot

    :type: int
    '''

    def new(self, name: str) -> 'FreestyleLineSet':
        ''' Add a line set to scene render layer Freestyle settings

        :param name: New name for the line set (not unique)
        :type name: str
        :rtype: 'FreestyleLineSet'
        :return: Newly created line set
        '''
        pass

    def remove(self, lineset: 'FreestyleLineSet'):
        ''' Remove a line set from scene render layer Freestyle settings

        :param lineset: Line set to remove
        :type lineset: 'FreestyleLineSet'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LoopColors(bpy_struct):
    ''' Collection of vertex colors
    '''

    active: 'MeshLoopColorLayer' = None
    ''' Active vertex color layer

    :type: 'MeshLoopColorLayer'
    '''

    active_index: int = None
    ''' Active vertex color index

    :type: int
    '''

    def new(self, name: str = "Col",
            do_init: bool = True) -> 'MeshLoopColorLayer':
        ''' Add a vertex color layer to Mesh

        :param name: Vertex color name
        :type name: str
        :param do_init: Whether new layer's data should be initialized by copying current active one
        :type do_init: bool
        :rtype: 'MeshLoopColorLayer'
        :return: The newly created layer
        '''
        pass

    def remove(self, layer: 'MeshLoopColorLayer'):
        ''' Remove a vertex color layer

        :param layer: The layer to remove
        :type layer: 'MeshLoopColorLayer'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Macro(bpy_struct):
    ''' Storage of a macro operator being executed, or registered after execution
    '''

    bl_cursor_pending: typing.Union[int, str] = None
    ''' Cursor to use when waiting for the user to select a location to activate the operator (when bl_options has DEPENDS_ON_CURSOR set)

    :type: typing.Union[int, str]
    '''

    bl_description: str = None
    ''' 

    :type: str
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    bl_label: str = None
    ''' 

    :type: str
    '''

    bl_options: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Options for this operator type * REGISTER Register -- Display in the info window and support the redo toolbar panel. * UNDO Undo -- Push an undo event (needed for operator redo). * UNDO_GROUPED Grouped Undo -- Push a single undo event for repeated instances of this operator. * BLOCKING Blocking -- Block anything else from using the cursor. * MACRO Macro -- Use to check if an operator is a macro. * GRAB_CURSOR Grab Pointer -- Use so the operator grabs the mouse focus, enables wrapping when continuous grab is enabled. * GRAB_CURSOR_X Grab Pointer X -- Grab, only warping the X axis. * GRAB_CURSOR_Y Grab Pointer Y -- Grab, only warping the Y axis. * DEPENDS_ON_CURSOR Depends on Cursor -- The initial cursor location is used, when running from a menus or buttons the user is prompted to place the cursor before beginning the operation. * PRESET Preset -- Display a preset button with the operators settings. * INTERNAL Internal -- Removes the operator from search results.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    bl_translation_context: str = None
    ''' 

    :type: str
    '''

    bl_undo_group: str = None
    ''' 

    :type: str
    '''

    has_reports: bool = None
    ''' Operator has a set of reports (warnings and errors) from last execution

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    properties: 'OperatorProperties' = None
    ''' 

    :type: 'OperatorProperties'
    '''

    def report(self, type: typing.Union[typing.Set[int], typing.Set[str]],
               message: str):
        ''' report

        :param type: Type
        :type type: typing.Union[typing.Set[int], typing.Set[str]]
        :param message: Report Message
        :type message: str
        '''
        pass

    @classmethod
    def poll(cls, context: 'Context'):
        ''' Test if the operator can be called or not

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw(self, context: 'Context'):
        ''' Draw function for the operator

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskLayer(bpy_struct):
    ''' Single layer used for masking pixels
    '''

    alpha: float = None
    ''' Render Opacity

    :type: float
    '''

    blend: typing.Union[int, str] = None
    ''' Method of blending mask layers

    :type: typing.Union[int, str]
    '''

    falloff: typing.Union[int, str] = None
    ''' Falloff type the feather * SMOOTH Smooth -- Smooth falloff. * SPHERE Sphere -- Spherical falloff. * ROOT Root -- Root falloff. * INVERSE_SQUARE Inverse Square -- Inverse Square falloff. * SHARP Sharp -- Sharp falloff. * LINEAR Linear -- Linear falloff.

    :type: typing.Union[int, str]
    '''

    hide: bool = None
    ''' Restrict visibility in the viewport

    :type: bool
    '''

    hide_render: bool = None
    ''' Restrict renderability

    :type: bool
    '''

    hide_select: bool = None
    ''' Restrict selection in the viewport

    :type: bool
    '''

    invert: bool = None
    ''' Invert the mask black/white

    :type: bool
    '''

    name: str = None
    ''' Unique name of layer

    :type: str
    '''

    select: bool = None
    ''' Layer is selected for editing in the Dope Sheet

    :type: bool
    '''

    splines: typing.Union[typing.Dict[str, 'MaskSpline'], typing.
                          List['MaskSpline'], 'bpy_prop_collection',
                          'MaskSplines'] = None
    ''' Collection of splines which defines this layer

    :type: typing.Union[typing.Dict[str, 'MaskSpline'], typing.List['MaskSpline'], 'bpy_prop_collection', 'MaskSplines']
    '''

    use_fill_holes: bool = None
    ''' Calculate holes when filling overlapping curves

    :type: bool
    '''

    use_fill_overlap: bool = None
    ''' Calculate self intersections and overlap before filling

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskLayers(bpy_struct):
    ''' Collection of layers used by mask
    '''

    active: 'MaskLayer' = None
    ''' Active layer in this mask

    :type: 'MaskLayer'
    '''

    def new(self, name: str = "") -> 'MaskLayer':
        ''' Add layer to this mask

        :param name: Name, Name of new layer
        :type name: str
        :rtype: 'MaskLayer'
        :return: New mask layer
        '''
        pass

    def remove(self, layer: 'MaskLayer'):
        ''' Remove layer from this mask

        :param layer: Shape to be removed
        :type layer: 'MaskLayer'
        '''
        pass

    def clear(self):
        ''' Remove all mask layers

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskParent(bpy_struct):
    ''' Parenting settings for masking element
    '''

    id: 'ID' = None
    ''' ID-block to which masking element would be parented to or to its property

    :type: 'ID'
    '''

    id_type: typing.Union[int, str] = None
    ''' Type of ID-block that can be used

    :type: typing.Union[int, str]
    '''

    parent: str = None
    ''' Name of parent object in specified data-block to which parenting happens

    :type: str
    '''

    sub_parent: str = None
    ''' Name of parent sub-object in specified data-block to which parenting happens

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Parent Type

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskSpline(bpy_struct):
    ''' Single spline used for defining mask shape
    '''

    offset_mode: typing.Union[int, str] = None
    ''' The method used for calculating the feather offset * EVEN Even -- Calculate even feather offset. * SMOOTH Smooth -- Calculate feather offset as a second curve.

    :type: typing.Union[int, str]
    '''

    points: typing.Union[typing.Dict[str, 'MaskSplinePoint'], typing.
                         List['MaskSplinePoint'], 'bpy_prop_collection',
                         'MaskSplinePoints'] = None
    ''' Collection of points

    :type: typing.Union[typing.Dict[str, 'MaskSplinePoint'], typing.List['MaskSplinePoint'], 'bpy_prop_collection', 'MaskSplinePoints']
    '''

    use_cyclic: bool = None
    ''' Make this spline a closed loop

    :type: bool
    '''

    use_fill: bool = None
    ''' Make this spline filled

    :type: bool
    '''

    use_self_intersection_check: bool = None
    ''' Prevent feather from self-intersections

    :type: bool
    '''

    weight_interpolation: typing.Union[int, str] = None
    ''' The type of weight interpolation for spline

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskSplinePoint(bpy_struct):
    ''' Single point in spline used for defining mask
    '''

    co: typing.List[float] = None
    ''' Coordinates of the control point

    :type: typing.List[float]
    '''

    feather_points: typing.Union[typing.Dict[str, 'MaskSplinePointUW'], typing.
                                 List['MaskSplinePointUW'],
                                 'bpy_prop_collection'] = None
    ''' Points defining feather

    :type: typing.Union[typing.Dict[str, 'MaskSplinePointUW'], typing.List['MaskSplinePointUW'], 'bpy_prop_collection']
    '''

    handle_left: typing.List[float] = None
    ''' Coordinates of the first handle

    :type: typing.List[float]
    '''

    handle_left_type: typing.Union[int, str] = None
    ''' Handle type

    :type: typing.Union[int, str]
    '''

    handle_right: typing.List[float] = None
    ''' Coordinates of the second handle

    :type: typing.List[float]
    '''

    handle_right_type: typing.Union[int, str] = None
    ''' Handle type

    :type: typing.Union[int, str]
    '''

    handle_type: typing.Union[int, str] = None
    ''' Handle type

    :type: typing.Union[int, str]
    '''

    parent: 'MaskParent' = None
    ''' 

    :type: 'MaskParent'
    '''

    select: bool = None
    ''' Selection status

    :type: bool
    '''

    weight: float = None
    ''' Weight of the point

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskSplinePointUW(bpy_struct):
    ''' Single point in spline segment defining feather
    '''

    select: bool = None
    ''' Selection status

    :type: bool
    '''

    u: float = None
    ''' U coordinate of point along spline segment

    :type: float
    '''

    weight: float = None
    ''' Weight of feather point

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskSplinePoints(bpy_struct):
    ''' Collection of masking spline points
    '''

    def add(self, count: int):
        ''' Add a number of point to this spline

        :param count: Number, Number of points to add to the spline
        :type count: int
        '''
        pass

    def remove(self, point: 'MaskSplinePoint'):
        ''' Remove a point from a spline

        :param point: The point to remove
        :type point: 'MaskSplinePoint'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskSplines(bpy_struct):
    ''' Collection of masking splines
    '''

    active: 'MaskSpline' = None
    ''' Active spline of masking layer

    :type: 'MaskSpline'
    '''

    active_point: 'MaskSplinePoint' = None
    ''' Active spline of masking layer

    :type: 'MaskSplinePoint'
    '''

    def new(self) -> 'MaskSpline':
        ''' Add a new spline to the layer

        :rtype: 'MaskSpline'
        :return: The newly created spline
        '''
        pass

    def remove(self, spline: 'MaskSpline'):
        ''' Remove a spline from a layer

        :param spline: The spline to remove
        :type spline: 'MaskSpline'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaterialGPencilStyle(bpy_struct):
    alignment_mode: typing.Union[int, str] = None
    ''' Defines how align Dots and Boxes with drawing path and object rotation * PATH Path -- Follow stroke drawing path and object rotation. * OBJECT Object -- Follow object rotation only. * FIXED Fixed -- Do not follow drawing path or object rotation and keeps aligned with viewport.

    :type: typing.Union[int, str]
    '''

    alignment_rotation: float = None
    ''' Additional rotation applied to dots and square texture of strokes. Only applies in texture shading mode

    :type: float
    '''

    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    fill_color: typing.List[float] = None
    ''' Color for filling region bounded by each stroke

    :type: typing.List[float]
    '''

    fill_image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    fill_style: typing.Union[int, str] = None
    ''' Select style used to fill strokes * SOLID Solid -- Fill area with solid color. * GRADIENT Gradient -- Fill area with gradient color. * TEXTURE Texture -- Fill area with image texture.

    :type: typing.Union[int, str]
    '''

    flip: bool = None
    ''' Flip filling colors

    :type: bool
    '''

    ghost: bool = None
    ''' Display strokes using this color when showing onion skins

    :type: bool
    '''

    gradient_type: typing.Union[int, str] = None
    ''' Select type of gradient used to fill strokes * LINEAR Linear -- Fill area with gradient color. * RADIAL Radial -- Fill area with radial gradient.

    :type: typing.Union[int, str]
    '''

    hide: bool = None
    ''' Set color Visibility

    :type: bool
    '''

    is_fill_visible: bool = None
    ''' True when opacity of fill is set high enough to be visible

    :type: bool
    '''

    is_stroke_visible: bool = None
    ''' True when opacity of stroke is set high enough to be visible

    :type: bool
    '''

    lock: bool = None
    ''' Protect color from further editing and/or frame changes

    :type: bool
    '''

    mix_color: typing.List[float] = None
    ''' Color for mixing with primary filling color

    :type: typing.List[float]
    '''

    mix_factor: float = None
    ''' Mix Factor

    :type: float
    '''

    mix_stroke_factor: float = None
    ''' Mix Stroke Factor

    :type: float
    '''

    mode: typing.Union[int, str] = None
    ''' Select line type for strokes * LINE Line -- Draw strokes using a continuous line. * DOTS Dots -- Draw strokes using separated dots. * BOX Squares -- Draw strokes using separated squares.

    :type: typing.Union[int, str]
    '''

    pass_index: int = None
    ''' Index number for the "Color Index" pass

    :type: int
    '''

    pixel_size: float = None
    ''' Texture Pixel Size factor along the stroke

    :type: float
    '''

    show_fill: bool = None
    ''' Show stroke fills of this material

    :type: bool
    '''

    show_stroke: bool = None
    ''' Show stroke lines of this material

    :type: bool
    '''

    stroke_image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    stroke_style: typing.Union[int, str] = None
    ''' Select style used to draw strokes * SOLID Solid -- Draw strokes with solid color. * TEXTURE Texture -- Draw strokes using texture.

    :type: typing.Union[int, str]
    '''

    texture_angle: float = None
    ''' Texture Orientation Angle

    :type: float
    '''

    texture_clamp: bool = None
    ''' Do not repeat texture and clamp to one instance only

    :type: bool
    '''

    texture_offset: typing.List[float] = None
    ''' Shift Texture in 2d Space

    :type: typing.List[float]
    '''

    texture_scale: typing.List[float] = None
    ''' Scale Factor for Texture

    :type: typing.List[float]
    '''

    use_fill_holdout: bool = None
    ''' Remove the color from underneath this stroke by using it as a mask

    :type: bool
    '''

    use_overlap_strokes: bool = None
    ''' Disable stencil and overlap self intersections with alpha materials

    :type: bool
    '''

    use_stroke_holdout: bool = None
    ''' Remove the color from underneath this stroke by using it as a mask

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaterialLineArt(bpy_struct):
    mat_occlusion: int = None
    ''' Faces with this material will behave as if it has set number of layers in occlusion

    :type: int
    '''

    use_material_mask: bool = None
    ''' Use material masks to filter out occluded strokes

    :type: bool
    '''

    use_material_mask_bits: typing.List[bool] = None
    ''' 

    :type: typing.List[bool]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaterialSlot(bpy_struct):
    ''' Material slot in an object
    '''

    link: typing.Union[int, str] = None
    ''' Link material to object or the object's data

    :type: typing.Union[int, str]
    '''

    material: 'Material' = None
    ''' Material data-block used by this material slot

    :type: 'Material'
    '''

    name: str = None
    ''' Material slot name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Menu(bpy_struct):
    ''' Editor menu containing buttons
    '''

    bl_description: str = None
    ''' 

    :type: str
    '''

    bl_idname: str = None
    ''' If this is set, the menu gets a custom ID, otherwise it takes the name of the class used to define the menu (for example, if the class name is "OBJECT_MT_hello", and bl_idname is not set by the script, then bl_idname = "OBJECT_MT_hello")

    :type: str
    '''

    bl_label: str = None
    ''' The menu label

    :type: str
    '''

    bl_owner_id: str = None
    ''' 

    :type: str
    '''

    bl_translation_context: str = None
    ''' 

    :type: str
    '''

    layout: 'UILayout' = None
    ''' Defines the structure of the menu in the UI

    :type: 'UILayout'
    '''

    @classmethod
    def poll(cls, context: 'Context'):
        ''' If this method returns a non-null output, then the menu can be drawn

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw(self, context: 'Context'):
        ''' Draw UI elements into the menu UI layout

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw_preset(self, _context):
        ''' Define these on the subclass: - preset_operator (string) - preset_subdir (string) Optionally: - preset_add_operator (string) - preset_extensions (set of strings) - preset_operator_defaults (dict of keyword args)

        '''
        pass

    def path_menu(self,
                  searchpaths: list,
                  operator: str,
                  *,
                  props_default: dict = None,
                  prop_filepath: str = 'filepath',
                  filter_ext: str = None,
                  filter_path=None,
                  display_name: str = None,
                  add_operator=None):
        ''' Populate a menu from a list of paths.

        :param searchpaths: Paths to scan.
        :type searchpaths: list
        :param operator: The operator id to use with each file.
        :type operator: str
        :param prop_filepath: Optional operator filepath property (defaults to "filepath").
        :type prop_filepath: str
        :param props_default: Properties to assign to each operator.
        :type props_default: dict
        :param filter_ext: Optional callback that takes the file extensions. Returning false excludes the file from the list.
        :type filter_ext: str
        :param display_name: Optional callback that takes the full path, returns the name to display.
        :type display_name: str
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshEdge(bpy_struct):
    ''' Edge in a Mesh data-block
    '''

    bevel_weight: float = None
    ''' Weight used by the Bevel modifier

    :type: float
    '''

    crease: float = None
    ''' Weight used by the Subdivision Surface modifier for creasing

    :type: float
    '''

    hide: bool = None
    ''' 

    :type: bool
    '''

    index: int = None
    ''' Index of this edge

    :type: int
    '''

    is_loose: bool = None
    ''' Loose edge

    :type: bool
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    use_edge_sharp: bool = None
    ''' Sharp edge for the Edge Split modifier

    :type: bool
    '''

    use_freestyle_mark: bool = None
    ''' Edge mark for Freestyle line rendering

    :type: bool
    '''

    use_seam: bool = None
    ''' Seam edge for UV unwrapping

    :type: bool
    '''

    vertices: typing.List[int] = None
    ''' Vertex indices

    :type: typing.List[int]
    '''

    key = None
    ''' (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshEdges(bpy_struct):
    ''' Collection of mesh edges
    '''

    def add(self, count: int):
        ''' add

        :param count: Count, Number of edges to add
        :type count: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshFaceMap(bpy_struct):
    value: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshFaceMapLayer(bpy_struct):
    ''' Per-face map index
    '''

    data: typing.Union[typing.Dict[str, 'MeshFaceMap'], typing.
                       List['MeshFaceMap'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshFaceMap'], typing.List['MeshFaceMap'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' Name of face map layer

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshFaceMapLayers(bpy_struct):
    ''' Collection of mesh face maps
    '''

    active: 'MeshFaceMapLayer' = None
    ''' 

    :type: 'MeshFaceMapLayer'
    '''

    def new(self, name: str = "Face Map") -> 'MeshFaceMapLayer':
        ''' Add a float property layer to Mesh

        :param name: Face map name
        :type name: str
        :rtype: 'MeshFaceMapLayer'
        :return: The newly created layer
        '''
        pass

    def remove(self, layer: 'MeshFaceMapLayer'):
        ''' Remove a face map layer

        :param layer: The layer to remove
        :type layer: 'MeshFaceMapLayer'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshLoop(bpy_struct):
    ''' Loop in a Mesh data-block
    '''

    bitangent: typing.List[float] = None
    ''' Bitangent vector of this vertex for this polygon (must be computed beforehand using calc_tangents, use it only if really needed, slower access than bitangent_sign)

    :type: typing.List[float]
    '''

    bitangent_sign: float = None
    ''' Sign of the bitangent vector of this vertex for this polygon (must be computed beforehand using calc_tangents, bitangent = bitangent_sign * cross(normal, tangent))

    :type: float
    '''

    edge_index: int = None
    ''' Edge index

    :type: int
    '''

    index: int = None
    ''' Index of this loop

    :type: int
    '''

    normal: typing.List[float] = None
    ''' Local space unit length split normal vector of this vertex for this polygon (must be computed beforehand using calc_normals_split or calc_tangents)

    :type: typing.List[float]
    '''

    tangent: typing.List[float] = None
    ''' Local space unit length tangent vector of this vertex for this polygon (must be computed beforehand using calc_tangents)

    :type: typing.List[float]
    '''

    vertex_index: int = None
    ''' Vertex index

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshLoopColor(bpy_struct):
    ''' Vertex loop colors in a Mesh
    '''

    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshLoopColorLayer(bpy_struct):
    ''' Layer of vertex colors in a Mesh data-block
    '''

    active: bool = None
    ''' Sets the layer as active for display and editing

    :type: bool
    '''

    active_render: bool = None
    ''' Sets the layer as active for rendering

    :type: bool
    '''

    data: typing.Union[typing.Dict[str, 'MeshLoopColor'], typing.
                       List['MeshLoopColor'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshLoopColor'], typing.List['MeshLoopColor'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' Name of Vertex color layer

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshLoopTriangle(bpy_struct):
    ''' Tessellated triangle in a Mesh data-block
    '''

    area: float = None
    ''' Area of this triangle

    :type: float
    '''

    index: int = None
    ''' Index of this loop triangle

    :type: int
    '''

    loops: typing.List[int] = None
    ''' Indices of mesh loops that make up the triangle

    :type: typing.List[int]
    '''

    material_index: int = None
    ''' Material slot index of this triangle

    :type: int
    '''

    normal: typing.List[float] = None
    ''' Local space unit length normal vector for this triangle

    :type: typing.List[float]
    '''

    polygon_index: int = None
    ''' Index of mesh polygon that the triangle is a part of

    :type: int
    '''

    split_normals: typing.List[float] = None
    ''' Local space unit length split normals vectors of the vertices of this triangle (must be computed beforehand using calc_normals_split or calc_tangents)

    :type: typing.List[float]
    '''

    use_smooth: bool = None
    ''' 

    :type: bool
    '''

    vertices: typing.List[int] = None
    ''' Indices of triangle vertices

    :type: typing.List[int]
    '''

    center = None
    ''' The midpoint of the face. (readonly)'''

    edge_keys = None
    ''' (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshLoopTriangles(bpy_struct):
    ''' Tessellation of mesh polygons into triangles
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshLoops(bpy_struct):
    ''' Collection of mesh loops
    '''

    def add(self, count: int):
        ''' add

        :param count: Count, Number of loops to add
        :type count: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPaintMaskLayer(bpy_struct):
    ''' Per-vertex paint mask data
    '''

    data: typing.Union[typing.Dict[str, 'MeshPaintMaskProperty'], typing.
                       List['MeshPaintMaskProperty'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshPaintMaskProperty'], typing.List['MeshPaintMaskProperty'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPaintMaskProperty(bpy_struct):
    ''' Floating-point paint mask value
    '''

    value: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygon(bpy_struct):
    ''' Polygon in a Mesh data-block
    '''

    area: float = None
    ''' Read only area of this polygon

    :type: float
    '''

    center: typing.List[float] = None
    ''' Center of this polygon

    :type: typing.List[float]
    '''

    hide: bool = None
    ''' 

    :type: bool
    '''

    index: int = None
    ''' Index of this polygon

    :type: int
    '''

    loop_start: int = None
    ''' Index of the first loop of this polygon

    :type: int
    '''

    loop_total: int = None
    ''' Number of loops used by this polygon

    :type: int
    '''

    material_index: int = None
    ''' Material slot index of this polygon

    :type: int
    '''

    normal: typing.List[float] = None
    ''' Local space unit length normal vector for this polygon

    :type: typing.List[float]
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    use_freestyle_mark: bool = None
    ''' Face mark for Freestyle line rendering

    :type: bool
    '''

    use_smooth: bool = None
    ''' 

    :type: bool
    '''

    vertices: typing.List[int] = None
    ''' Vertex indices

    :type: typing.List[int]
    '''

    edge_keys = None
    ''' (readonly)'''

    loop_indices = None
    ''' (readonly)'''

    def flip(self):
        ''' Invert winding of this polygon (flip its normal)

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygonFloatProperty(bpy_struct):
    ''' User defined floating-point number value in a float properties layer
    '''

    value: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygonFloatPropertyLayer(bpy_struct):
    ''' User defined layer of floating-point number values
    '''

    data: typing.Union[typing.Dict[str, 'MeshPolygonFloatProperty'], typing.
                       List['MeshPolygonFloatProperty'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshPolygonFloatProperty'], typing.List['MeshPolygonFloatProperty'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygonIntProperty(bpy_struct):
    ''' User defined integer number value in an integer properties layer
    '''

    value: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygonIntPropertyLayer(bpy_struct):
    ''' User defined layer of integer number values
    '''

    data: typing.Union[typing.Dict[str, 'MeshPolygonIntProperty'], typing.
                       List['MeshPolygonIntProperty'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshPolygonIntProperty'], typing.List['MeshPolygonIntProperty'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygonStringProperty(bpy_struct):
    ''' User defined string text value in a string properties layer
    '''

    value: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygonStringPropertyLayer(bpy_struct):
    ''' User defined layer of string text values
    '''

    data: typing.Union[typing.Dict[str, 'MeshPolygonStringProperty'], typing.
                       List['MeshPolygonStringProperty'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshPolygonStringProperty'], typing.List['MeshPolygonStringProperty'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshPolygons(bpy_struct):
    ''' Collection of mesh polygons
    '''

    active: int = None
    ''' The active polygon for this mesh

    :type: int
    '''

    def add(self, count: int):
        ''' add

        :param count: Count, Number of polygons to add
        :type count: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshSkinVertex(bpy_struct):
    ''' Per-vertex skin data for use with the Skin modifier
    '''

    radius: typing.List[float] = None
    ''' Radius of the skin

    :type: typing.List[float]
    '''

    use_loose: bool = None
    ''' If vertex has multiple adjacent edges, it is hulled to them directly

    :type: bool
    '''

    use_root: bool = None
    ''' Vertex is a root for rotation calculations and armature generation, setting this flag does not clear other roots in the same mesh island

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshSkinVertexLayer(bpy_struct):
    ''' Per-vertex skin data for use with the Skin modifier
    '''

    data: typing.Union[typing.Dict[str, 'MeshSkinVertex'], typing.
                       List['MeshSkinVertex'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshSkinVertex'], typing.List['MeshSkinVertex'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' Name of skin layer

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshStatVis(bpy_struct):
    distort_max: float = None
    ''' Maximum angle to display

    :type: float
    '''

    distort_min: float = None
    ''' Minimum angle to display

    :type: float
    '''

    overhang_axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    overhang_max: float = None
    ''' Maximum angle to display

    :type: float
    '''

    overhang_min: float = None
    ''' Minimum angle to display

    :type: float
    '''

    sharp_max: float = None
    ''' Maximum angle to display

    :type: float
    '''

    sharp_min: float = None
    ''' Minimum angle to display

    :type: float
    '''

    thickness_max: float = None
    ''' Maximum for measuring thickness

    :type: float
    '''

    thickness_min: float = None
    ''' Minimum for measuring thickness

    :type: float
    '''

    thickness_samples: int = None
    ''' Number of samples to test per face

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Type of data to visualize/check

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshUVLoop(bpy_struct):
    pin_uv: bool = None
    ''' 

    :type: bool
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    uv: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshUVLoopLayer(bpy_struct):
    active: bool = None
    ''' Set the map as active for display and editing

    :type: bool
    '''

    active_clone: bool = None
    ''' Set the map as active for cloning

    :type: bool
    '''

    active_render: bool = None
    ''' Set the map as active for rendering

    :type: bool
    '''

    data: typing.Union[typing.Dict[str, 'MeshUVLoop'], typing.
                       List['MeshUVLoop'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshUVLoop'], typing.List['MeshUVLoop'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' Name of UV map

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertColor(bpy_struct):
    ''' Vertex colors in a Mesh
    '''

    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertColorLayer(bpy_struct):
    ''' Layer of sculpt vertex colors in a Mesh data-block
    '''

    active: bool = None
    ''' Sets the sculpt vertex color layer as active for display and editing

    :type: bool
    '''

    active_render: bool = None
    ''' Sets the sculpt vertex color layer as active for rendering

    :type: bool
    '''

    data: typing.Union[typing.Dict[str, 'MeshVertColor'], typing.
                       List['MeshVertColor'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshVertColor'], typing.List['MeshVertColor'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' Name of Sculpt Vertex color layer

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertex(bpy_struct):
    ''' Vertex in a Mesh data-block
    '''

    bevel_weight: float = None
    ''' Weight used by the Bevel modifier 'Only Vertices' option

    :type: float
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    groups: typing.Union[typing.Dict[str, 'VertexGroupElement'], typing.
                         List['VertexGroupElement'],
                         'bpy_prop_collection'] = None
    ''' Weights for the vertex groups this vertex is member of

    :type: typing.Union[typing.Dict[str, 'VertexGroupElement'], typing.List['VertexGroupElement'], 'bpy_prop_collection']
    '''

    hide: bool = None
    ''' 

    :type: bool
    '''

    index: int = None
    ''' Index of this vertex

    :type: int
    '''

    normal: typing.List[float] = None
    ''' Vertex Normal

    :type: typing.List[float]
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    undeformed_co: typing.List[float] = None
    ''' For meshes with modifiers applied, the coordinate of the vertex with no deforming modifiers applied, as used for generated texture coordinates

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertexFloatProperty(bpy_struct):
    ''' User defined floating-point number value in a float properties layer
    '''

    value: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertexFloatPropertyLayer(bpy_struct):
    ''' User defined layer of floating-point number values
    '''

    data: typing.Union[typing.Dict[str, 'MeshVertexFloatProperty'], typing.
                       List['MeshVertexFloatProperty'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshVertexFloatProperty'], typing.List['MeshVertexFloatProperty'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertexIntProperty(bpy_struct):
    ''' User defined integer number value in an integer properties layer
    '''

    value: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertexIntPropertyLayer(bpy_struct):
    ''' User defined layer of integer number values
    '''

    data: typing.Union[typing.Dict[str, 'MeshVertexIntProperty'], typing.
                       List['MeshVertexIntProperty'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshVertexIntProperty'], typing.List['MeshVertexIntProperty'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertexStringProperty(bpy_struct):
    ''' User defined string text value in a string properties layer
    '''

    value: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertexStringPropertyLayer(bpy_struct):
    ''' User defined layer of string text values
    '''

    data: typing.Union[typing.Dict[str, 'MeshVertexStringProperty'], typing.
                       List['MeshVertexStringProperty'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshVertexStringProperty'], typing.List['MeshVertexStringProperty'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshVertices(bpy_struct):
    ''' Collection of mesh vertices
    '''

    def add(self, count: int):
        ''' add

        :param count: Count, Number of vertices to add
        :type count: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MetaBallElements(bpy_struct):
    ''' Collection of metaball elements
    '''

    active: 'MetaElement' = None
    ''' Last selected element

    :type: 'MetaElement'
    '''

    def new(self, type: typing.Union[int, str] = 'BALL') -> 'MetaElement':
        ''' Add a new element to the metaball

        :param type: Type for the new metaball element
        :type type: typing.Union[int, str]
        :rtype: 'MetaElement'
        :return: The newly created metaball element
        '''
        pass

    def remove(self, element: 'MetaElement'):
        ''' Remove an element from the metaball

        :param element: The element to remove
        :type element: 'MetaElement'
        '''
        pass

    def clear(self):
        ''' Remove all elements from the metaball

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MetaElement(bpy_struct):
    ''' Blobby element in a metaball data-block
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    hide: bool = None
    ''' Hide element

    :type: bool
    '''

    radius: float = None
    ''' 

    :type: float
    '''

    rotation: typing.List[float] = None
    ''' Normalized quaternion rotation

    :type: typing.List[float]
    '''

    select: bool = None
    ''' Select element

    :type: bool
    '''

    size_x: float = None
    ''' Size of element, use of components depends on element type

    :type: float
    '''

    size_y: float = None
    ''' Size of element, use of components depends on element type

    :type: float
    '''

    size_z: float = None
    ''' Size of element, use of components depends on element type

    :type: float
    '''

    stiffness: float = None
    ''' Stiffness defines how much of the element to fill

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Metaball types

    :type: typing.Union[int, str]
    '''

    use_negative: bool = None
    ''' Set metaball as negative one

    :type: bool
    '''

    use_scale_stiffness: bool = None
    ''' Scale stiffness instead of radius

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Modifier(bpy_struct):
    ''' Modifier affecting the geometry data of an object
    '''

    is_active: bool = None
    ''' The active modifier in the list

    :type: bool
    '''

    is_override_data: bool = None
    ''' In a local override object, whether this modifier comes from the linked reference object, or is local to the override

    :type: bool
    '''

    name: str = None
    ''' Modifier name

    :type: str
    '''

    show_expanded: bool = None
    ''' Set modifier expanded in the user interface

    :type: bool
    '''

    show_in_editmode: bool = None
    ''' Display modifier in Edit mode

    :type: bool
    '''

    show_on_cage: bool = None
    ''' Adjust edit cage to modifier result

    :type: bool
    '''

    show_render: bool = None
    ''' Use modifier during render

    :type: bool
    '''

    show_viewport: bool = None
    ''' Display modifier in viewport

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' * DATA_TRANSFER Data Transfer -- Transfer several types of data (vertex groups, UV maps, vertex colors, custom normals) from one mesh to another. * MESH_CACHE Mesh Cache -- Deform the mesh using an external frame-by-frame vertex transform cache. * MESH_SEQUENCE_CACHE Mesh Sequence Cache -- Deform the mesh or curve using an external mesh cache in Alembic format. * NORMAL_EDIT Normal Edit -- Modify the direction of the surface normals. * WEIGHTED_NORMAL Weighted Normal -- Modify the direction of the surface normals using a weighting method. * UV_PROJECT UV Project -- Project the UV map coordinates from the negative Z axis of another object. * UV_WARP UV Warp -- Transform the UV map using the difference between two objects. * VERTEX_WEIGHT_EDIT Vertex Weight Edit -- Modify of the weights of a vertex group. * VERTEX_WEIGHT_MIX Vertex Weight Mix -- Mix the weights of two vertex groups. * VERTEX_WEIGHT_PROXIMITY Vertex Weight Proximity -- Set the vertex group weights based on the distance to another target object. * ARRAY Array -- Create copies of the shape with offsets. * BEVEL Bevel -- Generate sloped corners by adding geometry to the mesh's edges or vertices. * BOOLEAN Boolean -- Use another shape to cut, combine or perform a difference operation. * BUILD Build -- Cause the faces of the mesh object to appear or disappear one after the other over time. * DECIMATE Decimate -- Reduce the geometry density. * EDGE_SPLIT Edge Split -- Split away joined faces at the edges. * NODES Geometry Nodes. * MASK Mask -- Dynamically hide vertices based on a vertex group or armature. * MIRROR Mirror -- Mirror along the local X, Y and/or Z axes, over the object origin. * MESH_TO_VOLUME Mesh to Volume. * MULTIRES Multiresolution -- Subdivide the mesh in a way that allows editing the higher subdivision levels. * REMESH Remesh -- Generate new mesh topology based on the current shape. * SCREW Screw -- Lathe around an axis, treating the input mesh as a profile. * SKIN Skin -- Create a solid shape from vertices and edges, using the vertex radius to define the thickness. * SOLIDIFY Solidify -- Make the surface thick. * SUBSURF Subdivision Surface -- Split the faces into smaller parts, giving it a smoother appearance. * TRIANGULATE Triangulate -- Convert all polygons to triangles. * VOLUME_TO_MESH Volume to Mesh. * WELD Weld -- Find groups of vertices closer than dist and merge them together. * WIREFRAME Wireframe -- Convert faces into thickened edges. * ARMATURE Armature -- Deform the shape using an armature object. * CAST Cast -- Shift the shape towards a predefined primitive. * CURVE Curve -- Bend the mesh using a curve object. * DISPLACE Displace -- Offset vertices based on a texture. * HOOK Hook -- Deform specific points using another object. * LAPLACIANDEFORM Laplacian Deform -- Deform based a series of anchor points. * LATTICE Lattice -- Deform using the shape of a lattice object. * MESH_DEFORM Mesh Deform -- Deform using a different mesh, which acts as a deformation cage. * SHRINKWRAP Shrinkwrap -- Project the shape onto another object. * SIMPLE_DEFORM Simple Deform -- Deform the shape by twisting, bending, tapering or stretching. * SMOOTH Smooth -- Smooth the mesh by flattening the angles between adjacent faces. * CORRECTIVE_SMOOTH Smooth Corrective -- Smooth the mesh while still preserving the volume. * LAPLACIANSMOOTH Smooth Laplacian -- Reduce the noise on a mesh surface with minimal changes to its shape. * SURFACE_DEFORM Surface Deform -- Transfer motion from another mesh. * WARP Warp -- Warp parts of a mesh to a new location in a very flexible way thanks to 2 specified objects. * WAVE Wave -- Adds a ripple-like motion to an object's geometry. * VOLUME_DISPLACE Volume Displace -- Deform volume based on noise or other vector fields. * CLOTH Cloth. * COLLISION Collision. * DYNAMIC_PAINT Dynamic Paint. * EXPLODE Explode -- Break apart the mesh faces and let them follow particles. * FLUID Fluid. * OCEAN Ocean -- Generate a moving ocean surface. * PARTICLE_INSTANCE Particle Instance. * PARTICLE_SYSTEM Particle System -- Spawn particles from the shape. * SOFT_BODY Soft Body. * SURFACE Surface.

    :type: typing.Union[int, str]
    '''

    use_apply_on_spline: bool = None
    ''' Apply this and all preceding deformation modifiers on splines' points rather than on filled curve/surface

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MotionPath(bpy_struct):
    ''' Cache of the world-space positions of an element over a frame range
    '''

    color: typing.List[float] = None
    ''' Custom color for motion path

    :type: typing.List[float]
    '''

    frame_end: int = None
    ''' End frame of the stored range

    :type: int
    '''

    frame_start: int = None
    ''' Starting frame of the stored range

    :type: int
    '''

    is_modified: bool = None
    ''' Path is being edited

    :type: bool
    '''

    length: int = None
    ''' Number of frames cached

    :type: int
    '''

    line_thickness: int = None
    ''' Line thickness for motion path

    :type: int
    '''

    lines: bool = None
    ''' Use straight lines between keyframe points

    :type: bool
    '''

    points: typing.Union[typing.Dict[str, 'MotionPathVert'], typing.
                         List['MotionPathVert'], 'bpy_prop_collection'] = None
    ''' Cached positions per frame

    :type: typing.Union[typing.Dict[str, 'MotionPathVert'], typing.List['MotionPathVert'], 'bpy_prop_collection']
    '''

    use_bone_head: bool = None
    ''' For PoseBone paths, use the bone head location when calculating this path

    :type: bool
    '''

    use_custom_color: bool = None
    ''' Use custom color for this motion path

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MotionPathVert(bpy_struct):
    ''' Cached location on path
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    select: bool = None
    ''' Path point is selected for editing

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieClipProxy(bpy_struct):
    ''' Proxy parameters for a movie clip
    '''

    build_100: bool = None
    ''' Build proxy resolution 100% of the original footage dimension

    :type: bool
    '''

    build_25: bool = None
    ''' Build proxy resolution 25% of the original footage dimension

    :type: bool
    '''

    build_50: bool = None
    ''' Build proxy resolution 50% of the original footage dimension

    :type: bool
    '''

    build_75: bool = None
    ''' Build proxy resolution 75% of the original footage dimension

    :type: bool
    '''

    build_free_run: bool = None
    ''' Build free run time code index

    :type: bool
    '''

    build_free_run_rec_date: bool = None
    ''' Build free run time code index using Record Date/Time

    :type: bool
    '''

    build_record_run: bool = None
    ''' Build record run time code index

    :type: bool
    '''

    build_undistorted_100: bool = None
    ''' Build proxy resolution 100% of the original undistorted footage dimension

    :type: bool
    '''

    build_undistorted_25: bool = None
    ''' Build proxy resolution 25% of the original undistorted footage dimension

    :type: bool
    '''

    build_undistorted_50: bool = None
    ''' Build proxy resolution 50% of the original undistorted footage dimension

    :type: bool
    '''

    build_undistorted_75: bool = None
    ''' Build proxy resolution 75% of the original undistorted footage dimension

    :type: bool
    '''

    directory: str = None
    ''' Location to store the proxy files

    :type: str
    '''

    quality: int = None
    ''' JPEG quality of proxy images

    :type: int
    '''

    timecode: typing.Union[int, str] = None
    ''' * NONE None. * RECORD_RUN Record Run -- Use images in the order they are recorded. * FREE_RUN Free Run -- Use global timestamp written by recording device. * FREE_RUN_REC_DATE Free Run (rec date) -- Interpolate a global timestamp using the record date and time written by recording device. * FREE_RUN_NO_GAPS Free Run No Gaps -- Record run, but ignore timecode, changes in framerate or dropouts.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieClipScopes(bpy_struct):
    ''' Scopes for statistical view of a movie clip
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieClipUser(bpy_struct):
    ''' Parameters defining how a MovieClip data-block is used by another data-block
    '''

    frame_current: int = None
    ''' Current frame number in movie or image sequence

    :type: int
    '''

    proxy_render_size: typing.Union[int, str] = None
    ''' Display preview using full resolution or different proxy resolutions

    :type: typing.Union[int, str]
    '''

    use_render_undistorted: bool = None
    ''' Render preview using undistorted proxy

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieReconstructedCamera(bpy_struct):
    ''' Match-moving reconstructed camera data from tracker
    '''

    average_error: float = None
    ''' Average error of reconstruction

    :type: float
    '''

    frame: int = None
    ''' Frame number marker is keyframed on

    :type: int
    '''

    matrix: typing.List[float] = None
    ''' Worldspace transformation matrix

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTracking(bpy_struct):
    ''' Match-moving data for tracking
    '''

    active_object_index: int = None
    ''' Index of active object

    :type: int
    '''

    camera: 'MovieTrackingCamera' = None
    ''' 

    :type: 'MovieTrackingCamera'
    '''

    dopesheet: 'MovieTrackingDopesheet' = None
    ''' 

    :type: 'MovieTrackingDopesheet'
    '''

    objects: typing.Union[typing.Dict[str, 'MovieTrackingObject'], typing.
                          List['MovieTrackingObject'], 'bpy_prop_collection',
                          'MovieTrackingObjects'] = None
    ''' Collection of objects in this tracking data object

    :type: typing.Union[typing.Dict[str, 'MovieTrackingObject'], typing.List['MovieTrackingObject'], 'bpy_prop_collection', 'MovieTrackingObjects']
    '''

    plane_tracks: typing.Union[
        typing.Dict[str, 'MovieTrackingPlaneTrack'], typing.
        List['MovieTrackingPlaneTrack'], 'bpy_prop_collection',
        'MovieTrackingPlaneTracks'] = None
    ''' Collection of plane tracks in this tracking data object

    :type: typing.Union[typing.Dict[str, 'MovieTrackingPlaneTrack'], typing.List['MovieTrackingPlaneTrack'], 'bpy_prop_collection', 'MovieTrackingPlaneTracks']
    '''

    reconstruction: 'MovieTrackingReconstruction' = None
    ''' 

    :type: 'MovieTrackingReconstruction'
    '''

    settings: 'MovieTrackingSettings' = None
    ''' 

    :type: 'MovieTrackingSettings'
    '''

    stabilization: 'MovieTrackingStabilization' = None
    ''' 

    :type: 'MovieTrackingStabilization'
    '''

    tracks: typing.Union[typing.Dict[str, 'MovieTrackingTrack'], typing.
                         List['MovieTrackingTrack'], 'bpy_prop_collection',
                         'MovieTrackingTracks'] = None
    ''' Collection of tracks in this tracking data object

    :type: typing.Union[typing.Dict[str, 'MovieTrackingTrack'], typing.List['MovieTrackingTrack'], 'bpy_prop_collection', 'MovieTrackingTracks']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingCamera(bpy_struct):
    ''' Match-moving camera data for tracking
    '''

    brown_k1: float = None
    ''' First coefficient of fourth order Brown-Conrady radial distortion

    :type: float
    '''

    brown_k2: float = None
    ''' Second coefficient of fourth order Brown-Conrady radial distortion

    :type: float
    '''

    brown_k3: float = None
    ''' Third coefficient of fourth order Brown-Conrady radial distortion

    :type: float
    '''

    brown_k4: float = None
    ''' Fourth coefficient of fourth order Brown-Conrady radial distortion

    :type: float
    '''

    brown_p1: float = None
    ''' First coefficient of second order Brown-Conrady tangential distortion

    :type: float
    '''

    brown_p2: float = None
    ''' Second coefficient of second order Brown-Conrady tangential distortion

    :type: float
    '''

    distortion_model: typing.Union[int, str] = None
    ''' Distortion model used for camera lenses * POLYNOMIAL Polynomial -- Radial distortion model which fits common cameras. * DIVISION Divisions -- Division distortion model which better represents wide-angle cameras. * NUKE Nuke -- Nuke distortion model. * BROWN Brown -- Brown-Conrady distortion model.

    :type: typing.Union[int, str]
    '''

    division_k1: float = None
    ''' First coefficient of second order division distortion

    :type: float
    '''

    division_k2: float = None
    ''' Second coefficient of second order division distortion

    :type: float
    '''

    focal_length: float = None
    ''' Camera's focal length

    :type: float
    '''

    focal_length_pixels: float = None
    ''' Camera's focal length

    :type: float
    '''

    k1: float = None
    ''' First coefficient of third order polynomial radial distortion

    :type: float
    '''

    k2: float = None
    ''' Second coefficient of third order polynomial radial distortion

    :type: float
    '''

    k3: float = None
    ''' Third coefficient of third order polynomial radial distortion

    :type: float
    '''

    nuke_k1: float = None
    ''' First coefficient of second order Nuke distortion

    :type: float
    '''

    nuke_k2: float = None
    ''' Second coefficient of second order Nuke distortion

    :type: float
    '''

    pixel_aspect: float = None
    ''' Pixel aspect ratio

    :type: float
    '''

    principal: typing.List[float] = None
    ''' Optical center of lens

    :type: typing.List[float]
    '''

    sensor_width: float = None
    ''' Width of CCD sensor in millimeters

    :type: float
    '''

    units: typing.Union[int, str] = None
    ''' Units used for camera focal length * PIXELS px -- Use pixels for units of focal length. * MILLIMETERS mm -- Use millimeters for units of focal length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingDopesheet(bpy_struct):
    ''' Match-moving dopesheet data
    '''

    show_hidden: bool = None
    ''' Include channels from objects/bone that aren't visible

    :type: bool
    '''

    show_only_selected: bool = None
    ''' Only include channels relating to selected objects and data

    :type: bool
    '''

    sort_method: typing.Union[int, str] = None
    ''' Method to be used to sort channels in dopesheet view * NAME Name -- Sort channels by their names. * LONGEST Longest -- Sort channels by longest tracked segment. * TOTAL Total -- Sort channels by overall amount of tracked segments. * AVERAGE_ERROR Average Error -- Sort channels by average reprojection error of tracks after solve. * START Start Frame -- Sort channels by first frame number. * END End Frame -- Sort channels by last frame number.

    :type: typing.Union[int, str]
    '''

    use_invert_sort: bool = None
    ''' Invert sort order of dopesheet channels

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingMarker(bpy_struct):
    ''' Match-moving marker data for tracking
    '''

    co: typing.List[float] = None
    ''' Marker position at frame in normalized coordinates

    :type: typing.List[float]
    '''

    frame: int = None
    ''' Frame number marker is keyframed on

    :type: int
    '''

    is_keyed: bool = None
    ''' Whether the position of the marker is keyframed or tracked

    :type: bool
    '''

    mute: bool = None
    ''' Is marker muted for current frame

    :type: bool
    '''

    pattern_bound_box: typing.List[float] = None
    ''' Pattern area bounding box in normalized coordinates

    :type: typing.List[float]
    '''

    pattern_corners: typing.List[float] = None
    ''' Array of coordinates which represents pattern's corners in normalized coordinates relative to marker position

    :type: typing.List[float]
    '''

    search_max: typing.List[float] = None
    ''' Right-bottom corner of search area in normalized coordinates relative to marker position

    :type: typing.List[float]
    '''

    search_min: typing.List[float] = None
    ''' Left-bottom corner of search area in normalized coordinates relative to marker position

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingMarkers(bpy_struct):
    ''' Collection of markers for movie tracking track
    '''

    def find_frame(self, frame: int,
                   exact: bool = True) -> 'MovieTrackingMarker':
        ''' Get marker for specified frame

        :param frame: Frame, Frame number to find marker for
        :type frame: int
        :param exact: Exact, Get marker at exact frame number rather than get estimated marker
        :type exact: bool
        :rtype: 'MovieTrackingMarker'
        :return: Marker for specified frame
        '''
        pass

    def insert_frame(self, frame: int,
                     co: typing.List[float] = (0.0,
                                               0.0)) -> 'MovieTrackingMarker':
        ''' Insert a new marker at the specified frame

        :param frame: Frame, Frame number to insert marker to
        :type frame: int
        :param co: Coordinate, Place new marker at the given frame using specified in normalized space coordinates
        :type co: typing.List[float]
        :rtype: 'MovieTrackingMarker'
        :return: Newly created marker
        '''
        pass

    def delete_frame(self, frame: int):
        ''' Delete marker at specified frame

        :param frame: Frame, Frame number to delete marker from
        :type frame: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingObject(bpy_struct):
    ''' Match-moving object tracking and reconstruction data
    '''

    is_camera: bool = None
    ''' Object is used for camera tracking

    :type: bool
    '''

    keyframe_a: int = None
    ''' First keyframe used for reconstruction initialization

    :type: int
    '''

    keyframe_b: int = None
    ''' Second keyframe used for reconstruction initialization

    :type: int
    '''

    name: str = None
    ''' Unique name of object

    :type: str
    '''

    plane_tracks: typing.Union[
        typing.Dict[str, 'MovieTrackingPlaneTrack'], typing.
        List['MovieTrackingPlaneTrack'], 'bpy_prop_collection',
        'MovieTrackingObjectPlaneTracks'] = None
    ''' Collection of plane tracks in this tracking data object

    :type: typing.Union[typing.Dict[str, 'MovieTrackingPlaneTrack'], typing.List['MovieTrackingPlaneTrack'], 'bpy_prop_collection', 'MovieTrackingObjectPlaneTracks']
    '''

    reconstruction: 'MovieTrackingReconstruction' = None
    ''' 

    :type: 'MovieTrackingReconstruction'
    '''

    scale: float = None
    ''' Scale of object solution in camera space

    :type: float
    '''

    tracks: typing.Union[typing.Dict[str, 'MovieTrackingTrack'], typing.
                         List['MovieTrackingTrack'], 'bpy_prop_collection',
                         'MovieTrackingObjectTracks'] = None
    ''' Collection of tracks in this tracking data object

    :type: typing.Union[typing.Dict[str, 'MovieTrackingTrack'], typing.List['MovieTrackingTrack'], 'bpy_prop_collection', 'MovieTrackingObjectTracks']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingObjectPlaneTracks(bpy_struct):
    ''' Collection of tracking plane tracks
    '''

    active: 'MovieTrackingTrack' = None
    ''' Active track in this tracking data object

    :type: 'MovieTrackingTrack'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingObjectTracks(bpy_struct):
    ''' Collection of movie tracking tracks
    '''

    active: 'MovieTrackingTrack' = None
    ''' Active track in this tracking data object

    :type: 'MovieTrackingTrack'
    '''

    def new(self, name: str = "", frame: int = 1) -> 'MovieTrackingTrack':
        ''' create new motion track in this movie clip

        :param name: Name of new track
        :type name: str
        :param frame: Frame, Frame number to add tracks on
        :type frame: int
        :rtype: 'MovieTrackingTrack'
        :return: Newly created track
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingObjects(bpy_struct):
    ''' Collection of movie tracking objects
    '''

    active: 'MovieTrackingObject' = None
    ''' Active object in this tracking data object

    :type: 'MovieTrackingObject'
    '''

    def new(self, name: str) -> 'MovieTrackingObject':
        ''' Add tracking object to this movie clip

        :param name: Name of new object
        :type name: str
        :rtype: 'MovieTrackingObject'
        :return: New motion tracking object
        '''
        pass

    def remove(self, object: 'MovieTrackingObject'):
        ''' Remove tracking object from this movie clip

        :param object: Motion tracking object to be removed
        :type object: 'MovieTrackingObject'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingPlaneMarker(bpy_struct):
    ''' Match-moving plane marker data for tracking
    '''

    corners: typing.List[float] = None
    ''' Array of coordinates which represents UI rectangle corners in frame normalized coordinates

    :type: typing.List[float]
    '''

    frame: int = None
    ''' Frame number marker is keyframed on

    :type: int
    '''

    mute: bool = None
    ''' Is marker muted for current frame

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingPlaneMarkers(bpy_struct):
    ''' Collection of markers for movie tracking plane track
    '''

    def find_frame(self, frame: int,
                   exact: bool = True) -> 'MovieTrackingPlaneMarker':
        ''' Get plane marker for specified frame

        :param frame: Frame, Frame number to find marker for
        :type frame: int
        :param exact: Exact, Get plane marker at exact frame number rather than get estimated marker
        :type exact: bool
        :rtype: 'MovieTrackingPlaneMarker'
        :return: Plane marker for specified frame
        '''
        pass

    def insert_frame(self, frame: int) -> 'MovieTrackingPlaneMarker':
        ''' Insert a new plane marker at the specified frame

        :param frame: Frame, Frame number to insert marker to
        :type frame: int
        :rtype: 'MovieTrackingPlaneMarker'
        :return: Newly created plane marker
        '''
        pass

    def delete_frame(self, frame: int):
        ''' Delete plane marker at specified frame

        :param frame: Frame, Frame number to delete plane marker from
        :type frame: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingPlaneTrack(bpy_struct):
    ''' Match-moving plane track data for tracking
    '''

    image: 'Image' = None
    ''' Image displayed in the track during editing in clip editor

    :type: 'Image'
    '''

    image_opacity: float = None
    ''' Opacity of the image

    :type: float
    '''

    markers: typing.Union[typing.Dict[str, 'MovieTrackingPlaneMarker'], typing.
                          List['MovieTrackingPlaneMarker'],
                          'bpy_prop_collection',
                          'MovieTrackingPlaneMarkers'] = None
    ''' Collection of markers in track

    :type: typing.Union[typing.Dict[str, 'MovieTrackingPlaneMarker'], typing.List['MovieTrackingPlaneMarker'], 'bpy_prop_collection', 'MovieTrackingPlaneMarkers']
    '''

    name: str = None
    ''' Unique name of track

    :type: str
    '''

    select: bool = None
    ''' Plane track is selected

    :type: bool
    '''

    use_auto_keying: bool = None
    ''' Automatic keyframe insertion when moving plane corners

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingPlaneTracks(bpy_struct):
    ''' Collection of movie tracking plane tracks
    '''

    active: 'MovieTrackingPlaneTrack' = None
    ''' Active plane track in this tracking data object

    :type: 'MovieTrackingPlaneTrack'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingReconstructedCameras(bpy_struct):
    ''' Collection of solved cameras
    '''

    def find_frame(self, frame: int = 1) -> 'MovieReconstructedCamera':
        ''' Find a reconstructed camera for a give frame number

        :param frame: Frame, Frame number to find camera for
        :type frame: int
        :rtype: 'MovieReconstructedCamera'
        :return: Camera for a given frame
        '''
        pass

    def matrix_from_frame(self, frame: int = 1) -> typing.List[float]:
        ''' Return interpolated camera matrix for a given frame

        :param frame: Frame, Frame number to find camera for
        :type frame: int
        :rtype: typing.List[float]
        :return: Matrix, Interpolated camera matrix for a given frame
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingReconstruction(bpy_struct):
    ''' Match-moving reconstruction data from tracker
    '''

    average_error: float = None
    ''' Average error of reconstruction

    :type: float
    '''

    cameras: typing.Union[typing.Dict[str, 'MovieReconstructedCamera'], typing.
                          List['MovieReconstructedCamera'],
                          'bpy_prop_collection',
                          'MovieTrackingReconstructedCameras'] = None
    ''' Collection of solved cameras

    :type: typing.Union[typing.Dict[str, 'MovieReconstructedCamera'], typing.List['MovieReconstructedCamera'], 'bpy_prop_collection', 'MovieTrackingReconstructedCameras']
    '''

    is_valid: bool = None
    ''' Is tracking data contains valid reconstruction information

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingSettings(bpy_struct):
    ''' Match moving settings
    '''

    clean_action: typing.Union[int, str] = None
    ''' Cleanup action to execute * SELECT Select -- Select unclean tracks. * DELETE_TRACK Delete Track -- Delete unclean tracks. * DELETE_SEGMENTS Delete Segments -- Delete unclean segments of tracks.

    :type: typing.Union[int, str]
    '''

    clean_error: float = None
    ''' Effect on tracks which have a larger re-projection error

    :type: float
    '''

    clean_frames: int = None
    ''' Effect on tracks which are tracked less than the specified amount of frames

    :type: int
    '''

    default_correlation_min: float = None
    ''' Default minimum value of correlation between matched pattern and reference that is still treated as successful tracking

    :type: float
    '''

    default_frames_limit: int = None
    ''' Every tracking cycle, this number of frames are tracked

    :type: int
    '''

    default_margin: int = None
    ''' Default distance from image boundary at which marker stops tracking

    :type: int
    '''

    default_motion_model: typing.Union[int, str] = None
    ''' Default motion model to use for tracking * Perspective Perspective -- Search for markers that are perspectively deformed (homography) between frames. * Affine Affine -- Search for markers that are affine-deformed (t, r, k, and skew) between frames. * LocRotScale Location, Rotation & Scale -- Search for markers that are translated, rotated, and scaled between frames. * LocScale Location & Scale -- Search for markers that are translated and scaled between frames. * LocRot Location & Rotation -- Search for markers that are translated and rotated between frames. * Loc Location -- Search for markers that are translated between frames.

    :type: typing.Union[int, str]
    '''

    default_pattern_match: typing.Union[int, str] = None
    ''' Track pattern from given frame when tracking marker to next frame * KEYFRAME Keyframe -- Track pattern from keyframe to next frame. * PREV_FRAME Previous frame -- Track pattern from current frame to next frame.

    :type: typing.Union[int, str]
    '''

    default_pattern_size: int = None
    ''' Size of pattern area for newly created tracks

    :type: int
    '''

    default_search_size: int = None
    ''' Size of search area for newly created tracks

    :type: int
    '''

    default_weight: float = None
    ''' Influence of newly created track on a final solution

    :type: float
    '''

    distance: float = None
    ''' Distance between two bundles used for scene scaling

    :type: float
    '''

    object_distance: float = None
    ''' Distance between two bundles used for object scaling

    :type: float
    '''

    refine_intrinsics_focal_length: bool = None
    ''' Refine focal length during camera solving

    :type: bool
    '''

    refine_intrinsics_principal_point: bool = None
    ''' Refine principal point during camera solving

    :type: bool
    '''

    refine_intrinsics_radial_distortion: bool = None
    ''' Refine radial coefficients of distortion model during camera solving

    :type: bool
    '''

    refine_intrinsics_tangential_distortion: bool = None
    ''' Refine tangential coefficients of distortion model during camera solving

    :type: bool
    '''

    speed: typing.Union[int, str] = None
    ''' Limit speed of tracking to make visual feedback easier (this does not affect the tracking quality) * FASTEST Fastest -- Track as fast as it's possible. * DOUBLE Double -- Track with double speed. * REALTIME Realtime -- Track with realtime speed. * HALF Half -- Track with half of realtime speed. * QUARTER Quarter -- Track with quarter of realtime speed.

    :type: typing.Union[int, str]
    '''

    use_default_blue_channel: bool = None
    ''' Use blue channel from footage for tracking

    :type: bool
    '''

    use_default_brute: bool = None
    ''' Use a brute-force translation-only initialization when tracking

    :type: bool
    '''

    use_default_green_channel: bool = None
    ''' Use green channel from footage for tracking

    :type: bool
    '''

    use_default_mask: bool = None
    ''' Use a grease pencil data-block as a mask to use only specified areas of pattern when tracking

    :type: bool
    '''

    use_default_normalization: bool = None
    ''' Normalize light intensities while tracking (slower)

    :type: bool
    '''

    use_default_red_channel: bool = None
    ''' Use red channel from footage for tracking

    :type: bool
    '''

    use_keyframe_selection: bool = None
    ''' Automatically select keyframes when solving camera/object motion

    :type: bool
    '''

    use_tripod_solver: bool = None
    ''' Use special solver to track a stable camera position, such as a tripod

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingStabilization(bpy_struct):
    ''' 2D stabilization based on tracking markers
    '''

    active_rotation_track_index: int = None
    ''' Index of active track in rotation stabilization tracks list

    :type: int
    '''

    active_track_index: int = None
    ''' Index of active track in translation stabilization tracks list

    :type: int
    '''

    anchor_frame: int = None
    ''' Reference point to anchor stabilization (other frames will be adjusted relative to this frame's position)

    :type: int
    '''

    filter_type: typing.Union[int, str] = None
    ''' Interpolation to use for sub-pixel shifts and rotations due to stabilization * NEAREST Nearest -- No interpolation, use nearest neighbor pixel. * BILINEAR Bilinear -- Simple interpolation between adjacent pixels. * BICUBIC Bicubic -- High quality pixel interpolation.

    :type: typing.Union[int, str]
    '''

    influence_location: float = None
    ''' Influence of stabilization algorithm on footage location

    :type: float
    '''

    influence_rotation: float = None
    ''' Influence of stabilization algorithm on footage rotation

    :type: float
    '''

    influence_scale: float = None
    ''' Influence of stabilization algorithm on footage scale

    :type: float
    '''

    rotation_tracks: typing.Union[
        typing.Dict[str, 'MovieTrackingTrack'], typing.
        List['MovieTrackingTrack'], 'bpy_prop_collection'] = None
    ''' Collection of tracks used for 2D stabilization (translation)

    :type: typing.Union[typing.Dict[str, 'MovieTrackingTrack'], typing.List['MovieTrackingTrack'], 'bpy_prop_collection']
    '''

    scale_max: float = None
    ''' Limit the amount of automatic scaling

    :type: float
    '''

    show_tracks_expanded: bool = None
    ''' Show UI list of tracks participating in stabilization

    :type: bool
    '''

    target_position: typing.List[float] = None
    ''' Known relative offset of original shot, will be subtracted (e.g. for panning shot, can be animated)

    :type: typing.List[float]
    '''

    target_rotation: float = None
    ''' Rotation present on original shot, will be compensated (e.g. for deliberate tilting)

    :type: float
    '''

    target_scale: float = None
    ''' Explicitly scale resulting frame to compensate zoom of original shot

    :type: float
    '''

    tracks: typing.Union[typing.Dict[str, 'MovieTrackingTrack'], typing.
                         List['MovieTrackingTrack'],
                         'bpy_prop_collection'] = None
    ''' Collection of tracks used for 2D stabilization (translation)

    :type: typing.Union[typing.Dict[str, 'MovieTrackingTrack'], typing.List['MovieTrackingTrack'], 'bpy_prop_collection']
    '''

    use_2d_stabilization: bool = None
    ''' Use 2D stabilization for footage

    :type: bool
    '''

    use_autoscale: bool = None
    ''' Automatically scale footage to cover unfilled areas when stabilizing

    :type: bool
    '''

    use_stabilize_rotation: bool = None
    ''' Stabilize detected rotation around center of frame

    :type: bool
    '''

    use_stabilize_scale: bool = None
    ''' Compensate any scale changes relative to center of rotation

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingTrack(bpy_struct):
    ''' Match-moving track data for tracking
    '''

    average_error: float = None
    ''' Average error of re-projection

    :type: float
    '''

    bundle: typing.List[float] = None
    ''' Position of bundle reconstructed from this track

    :type: typing.List[float]
    '''

    color: typing.List[float] = None
    ''' Color of the track in the Movie Clip Editor and the 3D viewport after a solve

    :type: typing.List[float]
    '''

    correlation_min: float = None
    ''' Minimal value of correlation between matched pattern and reference that is still treated as successful tracking

    :type: float
    '''

    frames_limit: int = None
    ''' Every tracking cycle, this number of frames are tracked

    :type: int
    '''

    grease_pencil: 'GreasePencil' = None
    ''' Grease pencil data for this track

    :type: 'GreasePencil'
    '''

    has_bundle: bool = None
    ''' True if track has a valid bundle

    :type: bool
    '''

    hide: bool = None
    ''' Track is hidden

    :type: bool
    '''

    lock: bool = None
    ''' Track is locked and all changes to it are disabled

    :type: bool
    '''

    margin: int = None
    ''' Distance from image boundary at which marker stops tracking

    :type: int
    '''

    markers: typing.Union[typing.Dict[str, 'MovieTrackingMarker'], typing.
                          List['MovieTrackingMarker'], 'bpy_prop_collection',
                          'MovieTrackingMarkers'] = None
    ''' Collection of markers in track

    :type: typing.Union[typing.Dict[str, 'MovieTrackingMarker'], typing.List['MovieTrackingMarker'], 'bpy_prop_collection', 'MovieTrackingMarkers']
    '''

    motion_model: typing.Union[int, str] = None
    ''' Default motion model to use for tracking * Perspective Perspective -- Search for markers that are perspectively deformed (homography) between frames. * Affine Affine -- Search for markers that are affine-deformed (t, r, k, and skew) between frames. * LocRotScale Location, Rotation & Scale -- Search for markers that are translated, rotated, and scaled between frames. * LocScale Location & Scale -- Search for markers that are translated and scaled between frames. * LocRot Location & Rotation -- Search for markers that are translated and rotated between frames. * Loc Location -- Search for markers that are translated between frames.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Unique name of track

    :type: str
    '''

    offset: typing.List[float] = None
    ''' Offset of track from the parenting point

    :type: typing.List[float]
    '''

    pattern_match: typing.Union[int, str] = None
    ''' Track pattern from given frame when tracking marker to next frame * KEYFRAME Keyframe -- Track pattern from keyframe to next frame. * PREV_FRAME Previous frame -- Track pattern from current frame to next frame.

    :type: typing.Union[int, str]
    '''

    select: bool = None
    ''' Track is selected

    :type: bool
    '''

    select_anchor: bool = None
    ''' Track's anchor point is selected

    :type: bool
    '''

    select_pattern: bool = None
    ''' Track's pattern area is selected

    :type: bool
    '''

    select_search: bool = None
    ''' Track's search area is selected

    :type: bool
    '''

    use_alpha_preview: bool = None
    ''' Apply track's mask on displaying preview

    :type: bool
    '''

    use_blue_channel: bool = None
    ''' Use blue channel from footage for tracking

    :type: bool
    '''

    use_brute: bool = None
    ''' Use a brute-force translation only pre-track before refinement

    :type: bool
    '''

    use_custom_color: bool = None
    ''' Use custom color instead of theme-defined

    :type: bool
    '''

    use_grayscale_preview: bool = None
    ''' Display what the tracking algorithm sees in the preview

    :type: bool
    '''

    use_green_channel: bool = None
    ''' Use green channel from footage for tracking

    :type: bool
    '''

    use_mask: bool = None
    ''' Use a grease pencil data-block as a mask to use only specified areas of pattern when tracking

    :type: bool
    '''

    use_normalization: bool = None
    ''' Normalize light intensities while tracking. Slower

    :type: bool
    '''

    use_red_channel: bool = None
    ''' Use red channel from footage for tracking

    :type: bool
    '''

    weight: float = None
    ''' Influence of this track on a final solution

    :type: float
    '''

    weight_stab: float = None
    ''' Influence of this track on 2D stabilization

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieTrackingTracks(bpy_struct):
    ''' Collection of movie tracking tracks
    '''

    active: 'MovieTrackingTrack' = None
    ''' Active track in this tracking data object

    :type: 'MovieTrackingTrack'
    '''

    def new(self, name: str = "", frame: int = 1) -> 'MovieTrackingTrack':
        ''' Create new motion track in this movie clip

        :param name: Name of new track
        :type name: str
        :param frame: Frame, Frame number to add track on
        :type frame: int
        :rtype: 'MovieTrackingTrack'
        :return: Newly created track
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NlaStrip(bpy_struct):
    ''' A container referencing an existing Action
    '''

    action: 'Action' = None
    ''' Action referenced by this strip

    :type: 'Action'
    '''

    action_frame_end: float = None
    ''' Last frame from action to use

    :type: float
    '''

    action_frame_start: float = None
    ''' First frame from action to use

    :type: float
    '''

    active: bool = None
    ''' NLA Strip is active

    :type: bool
    '''

    blend_in: float = None
    ''' Number of frames at start of strip to fade in influence

    :type: float
    '''

    blend_out: float = None
    ''' 

    :type: float
    '''

    blend_type: typing.Union[int, str] = None
    ''' Method used for combining strip's result with accumulated result * REPLACE Replace -- The strip values replace the accumulated results by amount specified by influence. * COMBINE Combine -- The strip values are combined with accumulated results by appropriately using addition, multiplication, or quaternion math, based on channel type. * ADD Add -- Weighted result of strip is added to the accumulated results. * SUBTRACT Subtract -- Weighted result of strip is removed from the accumulated results. * MULTIPLY Multiply -- Weighted result of strip is multiplied with the accumulated results.

    :type: typing.Union[int, str]
    '''

    extrapolation: typing.Union[int, str] = None
    ''' Action to take for gaps past the strip extents * NOTHING Nothing -- Strip has no influence past its extents. * HOLD Hold -- Hold the first frame if no previous strips in track, and always hold last frame. * HOLD_FORWARD Hold Forward -- Only hold last frame.

    :type: typing.Union[int, str]
    '''

    fcurves: typing.Union[typing.Dict[str, 'FCurve'], typing.List['FCurve'],
                          'bpy_prop_collection', 'NlaStripFCurves'] = None
    ''' F-Curves for controlling the strip's influence and timing

    :type: typing.Union[typing.Dict[str, 'FCurve'], typing.List['FCurve'], 'bpy_prop_collection', 'NlaStripFCurves']
    '''

    frame_end: float = None
    ''' 

    :type: float
    '''

    frame_start: float = None
    ''' 

    :type: float
    '''

    influence: float = None
    ''' Amount the strip contributes to the current result

    :type: float
    '''

    modifiers: typing.Union[typing.Dict[str, 'FModifier'], typing.
                            List['FModifier'], 'bpy_prop_collection'] = None
    ''' Modifiers affecting all the F-Curves in the referenced Action

    :type: typing.Union[typing.Dict[str, 'FModifier'], typing.List['FModifier'], 'bpy_prop_collection']
    '''

    mute: bool = None
    ''' Disable NLA Strip evaluation

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    repeat: float = None
    ''' Number of times to repeat the action range

    :type: float
    '''

    scale: float = None
    ''' Scaling factor for action

    :type: float
    '''

    select: bool = None
    ''' NLA Strip is selected

    :type: bool
    '''

    strip_time: float = None
    ''' Frame of referenced Action to evaluate

    :type: float
    '''

    strips: typing.Union[typing.Dict[str, 'NlaStrip'], typing.
                         List['NlaStrip'], 'bpy_prop_collection'] = None
    ''' NLA Strips that this strip acts as a container for (if it is of type Meta)

    :type: typing.Union[typing.Dict[str, 'NlaStrip'], typing.List['NlaStrip'], 'bpy_prop_collection']
    '''

    type: typing.Union[int, str] = None
    ''' Type of NLA Strip * CLIP Action Clip -- NLA Strip references some Action. * TRANSITION Transition -- NLA Strip 'transitions' between adjacent strips. * META Meta -- NLA Strip acts as a container for adjacent strips. * SOUND Sound Clip -- NLA Strip representing a sound event for speakers.

    :type: typing.Union[int, str]
    '''

    use_animated_influence: bool = None
    ''' Influence setting is controlled by an F-Curve rather than automatically determined

    :type: bool
    '''

    use_animated_time: bool = None
    ''' Strip time is controlled by an F-Curve rather than automatically determined

    :type: bool
    '''

    use_animated_time_cyclic: bool = None
    ''' Cycle the animated time within the action start and end

    :type: bool
    '''

    use_auto_blend: bool = None
    ''' Number of frames for Blending In/Out is automatically determined from overlapping strips

    :type: bool
    '''

    use_reverse: bool = None
    ''' NLA Strip is played back in reverse order (only when timing is automatically determined)

    :type: bool
    '''

    use_sync_length: bool = None
    ''' Update range of frames referenced from action after tweaking strip and its keyframes

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NlaStripFCurves(bpy_struct):
    ''' Collection of NLA strip F-Curves
    '''

    def find(self, data_path: str, index: int = 0) -> 'FCurve':
        ''' Find an F-Curve. Note that this function performs a linear scan of all F-Curves in the NLA strip.

        :param data_path: Data Path, F-Curve data path
        :type data_path: str
        :param index: Index, Array index
        :type index: int
        :rtype: 'FCurve'
        :return: The found F-Curve, or None if it doesn't exist
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NlaStrips(bpy_struct):
    ''' Collection of Nla Strips
    '''

    def new(self, name: str, start: int, action: 'Action') -> 'NlaStrip':
        ''' Add a new Action-Clip strip to the track

        :param name: Name for the NLA Strips
        :type name: str
        :param start: Start Frame, Start frame for this strip
        :type start: int
        :param action: Action to assign to this strip
        :type action: 'Action'
        :rtype: 'NlaStrip'
        :return: New NLA Strip
        '''
        pass

    def remove(self, strip: 'NlaStrip'):
        ''' Remove a NLA Strip

        :param strip: NLA Strip to remove
        :type strip: 'NlaStrip'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NlaTrack(bpy_struct):
    ''' A animation layer containing Actions referenced as NLA strips
    '''

    active: bool = None
    ''' NLA Track is active

    :type: bool
    '''

    is_override_data: bool = None
    ''' In a local override data, whether this NLA track comes from the linked reference data, or is local to the override

    :type: bool
    '''

    is_solo: bool = None
    ''' NLA Track is evaluated itself (i.e. active Action and all other NLA Tracks in the same AnimData block are disabled)

    :type: bool
    '''

    lock: bool = None
    ''' NLA Track is locked

    :type: bool
    '''

    mute: bool = None
    ''' Disable NLA Track evaluation

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    select: bool = None
    ''' NLA Track is selected

    :type: bool
    '''

    strips: typing.Union[typing.Dict[str, 'NlaStrip'], typing.List['NlaStrip'],
                         'bpy_prop_collection', 'NlaStrips'] = None
    ''' NLA Strips on this NLA-track

    :type: typing.Union[typing.Dict[str, 'NlaStrip'], typing.List['NlaStrip'], 'bpy_prop_collection', 'NlaStrips']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NlaTracks(bpy_struct):
    ''' Collection of NLA Tracks
    '''

    active: 'NlaTrack' = None
    ''' Active NLA Track

    :type: 'NlaTrack'
    '''

    def new(self, prev: 'NlaTrack' = None) -> 'NlaTrack':
        ''' Add a new NLA Track

        :param prev: NLA Track to add the new one after
        :type prev: 'NlaTrack'
        :rtype: 'NlaTrack'
        :return: New NLA Track
        '''
        pass

    def remove(self, track: 'NlaTrack'):
        ''' Remove a NLA Track

        :param track: NLA Track to remove
        :type track: 'NlaTrack'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Node(bpy_struct):
    ''' Node in a node tree
    '''

    bl_description: str = None
    ''' 

    :type: str
    '''

    bl_height_default: float = None
    ''' 

    :type: float
    '''

    bl_height_max: float = None
    ''' 

    :type: float
    '''

    bl_height_min: float = None
    ''' 

    :type: float
    '''

    bl_icon: typing.Union[int, str] = None
    ''' The node icon

    :type: typing.Union[int, str]
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    bl_label: str = None
    ''' The node label

    :type: str
    '''

    bl_static_type: typing.Union[int, str] = None
    ''' Node type (deprecated, use with care) * CUSTOM Custom -- Custom Node.

    :type: typing.Union[int, str]
    '''

    bl_width_default: float = None
    ''' 

    :type: float
    '''

    bl_width_max: float = None
    ''' 

    :type: float
    '''

    bl_width_min: float = None
    ''' 

    :type: float
    '''

    color: typing.List[float] = None
    ''' Custom color of the node body

    :type: typing.List[float]
    '''

    dimensions: typing.List[float] = None
    ''' Absolute bounding box dimensions of the node

    :type: typing.List[float]
    '''

    height: float = None
    ''' Height of the node

    :type: float
    '''

    hide: bool = None
    ''' 

    :type: bool
    '''

    inputs: typing.Union[typing.Dict[str, 'NodeSocket'], typing.
                         List['NodeSocket'], 'bpy_prop_collection',
                         'NodeInputs'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'NodeSocket'], typing.List['NodeSocket'], 'bpy_prop_collection', 'NodeInputs']
    '''

    internal_links: typing.Union[typing.Dict[str, 'NodeLink'], typing.
                                 List['NodeLink'],
                                 'bpy_prop_collection'] = None
    ''' Internal input-to-output connections for muting

    :type: typing.Union[typing.Dict[str, 'NodeLink'], typing.List['NodeLink'], 'bpy_prop_collection']
    '''

    label: str = None
    ''' Optional custom node label

    :type: str
    '''

    location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    mute: bool = None
    ''' 

    :type: bool
    '''

    name: str = None
    ''' Unique node identifier

    :type: str
    '''

    outputs: typing.Union[typing.Dict[str, 'NodeSocket'], typing.
                          List['NodeSocket'], 'bpy_prop_collection',
                          'NodeOutputs'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'NodeSocket'], typing.List['NodeSocket'], 'bpy_prop_collection', 'NodeOutputs']
    '''

    parent: 'Node' = None
    ''' Parent this node is attached to

    :type: 'Node'
    '''

    select: bool = None
    ''' Node selection state

    :type: bool
    '''

    show_options: bool = None
    ''' 

    :type: bool
    '''

    show_preview: bool = None
    ''' 

    :type: bool
    '''

    show_texture: bool = None
    ''' Display node in viewport textured shading mode

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Node type (deprecated, use bl_static_type or bl_idname for the actual identifier string) * CUSTOM Custom -- Custom Node.

    :type: typing.Union[int, str]
    '''

    use_custom_color: bool = None
    ''' Use custom color for the node

    :type: bool
    '''

    width: float = None
    ''' Width of the node

    :type: float
    '''

    width_hidden: float = None
    ''' Width of the node in hidden state

    :type: float
    '''

    def socket_value_update(self, context: 'Context'):
        ''' Update after property changes

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def poll(cls, node_tree: 'NodeTree'):
        ''' If non-null output is returned, the node type can be added to the tree

        :param node_tree: Node Tree
        :type node_tree: 'NodeTree'
        '''
        pass

    def poll_instance(self, node_tree: 'NodeTree'):
        ''' If non-null output is returned, the node can be added to the tree

        :param node_tree: Node Tree
        :type node_tree: 'NodeTree'
        '''
        pass

    def update(self):
        ''' Update on node graph topology changes (adding or removing nodes and links)

        '''
        pass

    def insert_link(self, link: 'NodeLink'):
        ''' Handle creation of a link to or from the node

        :param link: Link, Node link that will be inserted
        :type link: 'NodeLink'
        '''
        pass

    def init(self, context: 'Context'):
        ''' Initialize a new instance of this node

        :param context: 
        :type context: 'Context'
        '''
        pass

    def copy(self, node: 'Node'):
        ''' Initialize a new instance of this node from an existing node

        :param node: Node, Existing node to copy
        :type node: 'Node'
        '''
        pass

    def free(self):
        ''' Clean up node on removal

        '''
        pass

    def draw_buttons(self, context: 'Context', layout: 'UILayout'):
        ''' Draw node buttons

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        '''
        pass

    def draw_buttons_ext(self, context: 'Context', layout: 'UILayout'):
        ''' Draw node buttons in the sidebar

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        '''
        pass

    def draw_label(self) -> str:
        ''' Returns a dynamic label string

        :rtype: str
        :return: Label
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeInputs(bpy_struct):
    ''' Collection of Node Sockets
    '''

    def new(self, type: str, name: str, identifier: str = "") -> 'NodeSocket':
        ''' Add a socket to this node

        :param type: Type, Data type
        :type type: str
        :param name: Name
        :type name: str
        :param identifier: Identifier, Unique socket identifier
        :type identifier: str
        :rtype: 'NodeSocket'
        :return: New socket
        '''
        pass

    def remove(self, socket: 'NodeSocket'):
        ''' Remove a socket from this node

        :param socket: The socket to remove
        :type socket: 'NodeSocket'
        '''
        pass

    def clear(self):
        ''' Remove all sockets from this node

        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a socket to another position

        :param from_index: From Index, Index of the socket to move
        :type from_index: int
        :param to_index: To Index, Target index for the socket
        :type to_index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeInstanceHash(bpy_struct):
    ''' Hash table containing node instance data
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeInternalSocketTemplate(bpy_struct):
    ''' Type and default value of a node socket
    '''

    identifier: str = None
    ''' Identifier of the socket

    :type: str
    '''

    name: str = None
    ''' Name of the socket

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Data type of the socket

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeLink(bpy_struct):
    ''' Link is muted and can be ignored
    '''

    from_node: 'Node' = None
    ''' 

    :type: 'Node'
    '''

    from_socket: 'NodeSocket' = None
    ''' 

    :type: 'NodeSocket'
    '''

    is_hidden: bool = None
    ''' Link is hidden due to invisible sockets

    :type: bool
    '''

    is_muted: bool = None
    ''' 

    :type: bool
    '''

    is_valid: bool = None
    ''' 

    :type: bool
    '''

    to_node: 'Node' = None
    ''' 

    :type: 'Node'
    '''

    to_socket: 'NodeSocket' = None
    ''' 

    :type: 'NodeSocket'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeLinks(bpy_struct):
    ''' Collection of Node Links
    '''

    def new(self,
            input: 'NodeSocket',
            output: 'NodeSocket',
            verify_limits: bool = True) -> 'NodeLink':
        ''' Add a node link to this node tree

        :param input: The input socket
        :type input: 'NodeSocket'
        :param output: The output socket
        :type output: 'NodeSocket'
        :param verify_limits: Verify Limits, Remove existing links if connection limit is exceeded
        :type verify_limits: bool
        :rtype: 'NodeLink'
        :return: New node link
        '''
        pass

    def remove(self, link: 'NodeLink'):
        ''' remove a node link from the node tree

        :param link: The node link to remove
        :type link: 'NodeLink'
        '''
        pass

    def clear(self):
        ''' remove all node links from the node tree

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeOutputFileSlotFile(bpy_struct):
    ''' Single layer file slot of the file output node
    '''

    format: 'ImageFormatSettings' = None
    ''' 

    :type: 'ImageFormatSettings'
    '''

    path: str = None
    ''' Subpath used for this slot

    :type: str
    '''

    save_as_render: bool = None
    ''' Apply render part of display transform when saving byte image

    :type: bool
    '''

    use_node_format: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeOutputFileSlotLayer(bpy_struct):
    ''' Multilayer slot of the file output node
    '''

    name: str = None
    ''' OpenEXR layer name used for this slot

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeOutputs(bpy_struct):
    ''' Collection of Node Sockets
    '''

    def new(self, type: str, name: str, identifier: str = "") -> 'NodeSocket':
        ''' Add a socket to this node

        :param type: Type, Data type
        :type type: str
        :param name: Name
        :type name: str
        :param identifier: Identifier, Unique socket identifier
        :type identifier: str
        :rtype: 'NodeSocket'
        :return: New socket
        '''
        pass

    def remove(self, socket: 'NodeSocket'):
        ''' Remove a socket from this node

        :param socket: The socket to remove
        :type socket: 'NodeSocket'
        '''
        pass

    def clear(self):
        ''' Remove all sockets from this node

        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a socket to another position

        :param from_index: From Index, Index of the socket to move
        :type from_index: int
        :param to_index: To Index, Target index for the socket
        :type to_index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocket(bpy_struct):
    ''' Input or output socket of a node
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    bl_label: str = None
    ''' Label to display for the socket type in the UI

    :type: str
    '''

    description: str = None
    ''' Socket tooltip

    :type: str
    '''

    display_shape: typing.Union[int, str] = None
    ''' Socket shape

    :type: typing.Union[int, str]
    '''

    enabled: bool = None
    ''' Enable the socket

    :type: bool
    '''

    hide: bool = None
    ''' Hide the socket

    :type: bool
    '''

    hide_value: bool = None
    ''' Hide the socket input value

    :type: bool
    '''

    identifier: str = None
    ''' Unique identifier for mapping sockets

    :type: str
    '''

    is_linked: bool = None
    ''' True if the socket is connected

    :type: bool
    '''

    is_multi_input: bool = None
    ''' True if the socket can accept multiple ordered input links

    :type: bool
    '''

    is_output: bool = None
    ''' True if the socket is an output, otherwise input

    :type: bool
    '''

    label: str = None
    ''' Custom dynamic defined socket label

    :type: str
    '''

    link_limit: int = None
    ''' Max number of links allowed for this socket

    :type: int
    '''

    name: str = None
    ''' Socket name

    :type: str
    '''

    node: 'Node' = None
    ''' Node owning this socket

    :type: 'Node'
    '''

    show_expanded: bool = None
    ''' Socket links are expanded in the user interface

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Data type

    :type: typing.Union[int, str]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    def draw(self, context: 'Context', layout: 'UILayout', node: 'Node',
             text: str):
        ''' Draw socket

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        :param node: Node, Node the socket belongs to
        :type node: 'Node'
        :param text: Text, Text label to draw alongside properties
        :type text: str
        '''
        pass

    def draw_color(self, context: 'Context',
                   node: 'Node') -> typing.List[float]:
        ''' Color of the socket icon

        :param context: 
        :type context: 'Context'
        :param node: Node, Node the socket belongs to
        :type node: 'Node'
        :rtype: typing.List[float]
        :return: Color
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterface(bpy_struct):
    ''' Parameters to define node sockets
    '''

    attribute_domain: typing.Union[int, str] = None
    ''' Attribute domain used by the geometry nodes modifier to create an attribute output * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    bl_label: str = None
    ''' Label to display for the socket type in the UI

    :type: str
    '''

    bl_socket_idname: str = None
    ''' 

    :type: str
    '''

    description: str = None
    ''' Socket tooltip

    :type: str
    '''

    hide_value: bool = None
    ''' Hide the socket input value even when the socket is not connected

    :type: bool
    '''

    identifier: str = None
    ''' Unique identifier for mapping sockets

    :type: str
    '''

    is_output: bool = None
    ''' True if the socket is an output, otherwise input

    :type: bool
    '''

    name: str = None
    ''' Socket name

    :type: str
    '''

    def draw(self, context: 'Context', layout: 'UILayout'):
        ''' Draw template settings

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        '''
        pass

    def draw_color(self, context: 'Context') -> typing.List[float]:
        ''' Color of the socket icon

        :param context: 
        :type context: 'Context'
        :rtype: typing.List[float]
        :return: Color
        '''
        pass

    def register_properties(self, data_rna_type: 'Struct'):
        ''' Define RNA properties of a socket

        :param data_rna_type: Data RNA Type, RNA type for special socket properties
        :type data_rna_type: 'Struct'
        '''
        pass

    def init_socket(self, node: 'Node', socket: 'NodeSocket', data_path: str):
        ''' Initialize a node socket instance

        :param node: Node, Node of the socket to initialize
        :type node: 'Node'
        :param socket: Socket, Socket to initialize
        :type socket: 'NodeSocket'
        :param data_path: Data Path, Path to specialized socket data
        :type data_path: str
        '''
        pass

    def from_socket(self, node: 'Node', socket: 'NodeSocket'):
        ''' Setup template parameters from an existing socket

        :param node: Node, Node of the original socket
        :type node: 'Node'
        :param socket: Socket, Original socket
        :type socket: 'NodeSocket'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeTreeInputs(bpy_struct):
    ''' Collection of Node Tree Sockets
    '''

    def new(self, type: str, name: str) -> 'NodeSocketInterface':
        ''' Add a socket to this node tree

        :param type: Type, Data type
        :type type: str
        :param name: Name
        :type name: str
        :rtype: 'NodeSocketInterface'
        :return: New socket
        '''
        pass

    def remove(self, socket: 'NodeSocketInterface'):
        ''' Remove a socket from this node tree

        :param socket: The socket to remove
        :type socket: 'NodeSocketInterface'
        '''
        pass

    def clear(self):
        ''' Remove all sockets from this node tree

        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a socket to another position

        :param from_index: From Index, Index of the socket to move
        :type from_index: int
        :param to_index: To Index, Target index for the socket
        :type to_index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeTreeOutputs(bpy_struct):
    ''' Collection of Node Tree Sockets
    '''

    def new(self, type: str, name: str) -> 'NodeSocketInterface':
        ''' Add a socket to this node tree

        :param type: Type, Data type
        :type type: str
        :param name: Name
        :type name: str
        :rtype: 'NodeSocketInterface'
        :return: New socket
        '''
        pass

    def remove(self, socket: 'NodeSocketInterface'):
        ''' Remove a socket from this node tree

        :param socket: The socket to remove
        :type socket: 'NodeSocketInterface'
        '''
        pass

    def clear(self):
        ''' Remove all sockets from this node tree

        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a socket to another position

        :param from_index: From Index, Index of the socket to move
        :type from_index: int
        :param to_index: To Index, Target index for the socket
        :type to_index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeTreePath(bpy_struct):
    ''' Element of the node space tree path
    '''

    node_tree: 'NodeTree' = None
    ''' Base node tree from context

    :type: 'NodeTree'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Nodes(bpy_struct):
    ''' Collection of Nodes
    '''

    active: 'Node' = None
    ''' Active node in this tree

    :type: 'Node'
    '''

    def new(self, type: str) -> 'Node':
        ''' Add a node to this node tree

        :param type: Type, Type of node to add (Warning: should be same as node.bl_idname, not node.type!)
        :type type: str
        :rtype: 'Node'
        :return: New node
        '''
        pass

    def remove(self, node: 'Node'):
        ''' Remove a node from this node tree

        :param node: The node to remove
        :type node: 'Node'
        '''
        pass

    def clear(self):
        ''' Remove all nodes from this node tree

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectBase(bpy_struct):
    ''' An object instance in a render layer
    '''

    hide_viewport: bool = None
    ''' Temporarily hide in viewport

    :type: bool
    '''

    object: 'Object' = None
    ''' Object this base links to

    :type: 'Object'
    '''

    select: bool = None
    ''' Object base selection state

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectConstraints(bpy_struct):
    ''' Collection of object constraints
    '''

    active: 'Constraint' = None
    ''' Active Object constraint

    :type: 'Constraint'
    '''

    def new(self, type: typing.Union[int, str]) -> 'Constraint':
        ''' Add a new constraint to this object

        :param type: Constraint type to add * CAMERA_SOLVER Camera Solver. * FOLLOW_TRACK Follow Track. * OBJECT_SOLVER Object Solver. * COPY_LOCATION Copy Location -- Copy the location of a target (with an optional offset), so that they move together. * COPY_ROTATION Copy Rotation -- Copy the rotation of a target (with an optional offset), so that they rotate together. * COPY_SCALE Copy Scale -- Copy the scale factors of a target (with an optional offset), so that they are scaled by the same amount. * COPY_TRANSFORMS Copy Transforms -- Copy all the transformations of a target, so that they move together. * LIMIT_DISTANCE Limit Distance -- Restrict movements to within a certain distance of a target (at the time of constraint evaluation only). * LIMIT_LOCATION Limit Location -- Restrict movement along each axis within given ranges. * LIMIT_ROTATION Limit Rotation -- Restrict rotation along each axis within given ranges. * LIMIT_SCALE Limit Scale -- Restrict scaling along each axis with given ranges. * MAINTAIN_VOLUME Maintain Volume -- Compensate for scaling one axis by applying suitable scaling to the other two axes. * TRANSFORM Transformation -- Use one transform property from target to control another (or same) property on owner. * TRANSFORM_CACHE Transform Cache -- Look up the transformation matrix from an external file. * CLAMP_TO Clamp To -- Restrict movements to lie along a curve by remapping location along curve's longest axis. * DAMPED_TRACK Damped Track -- Point towards a target by performing the smallest rotation necessary. * IK Inverse Kinematics -- Control a chain of bones by specifying the endpoint target (Bones only). * LOCKED_TRACK Locked Track -- Rotate around the specified ('locked') axis to point towards a target. * SPLINE_IK Spline IK -- Align chain of bones along a curve (Bones only). * STRETCH_TO Stretch To -- Stretch along Y-Axis to point towards a target. * TRACK_TO Track To -- Legacy tracking constraint prone to twisting artifacts. * ACTION Action -- Use transform property of target to look up pose for owner from an Action. * ARMATURE Armature -- Apply weight-blended transformation from multiple bones like the Armature modifier. * CHILD_OF Child Of -- Make target the 'detachable' parent of owner. * FLOOR Floor -- Use position (and optionally rotation) of target to define a 'wall' or 'floor' that the owner can not cross. * FOLLOW_PATH Follow Path -- Use to animate an object/bone following a path. * PIVOT Pivot -- Change pivot point for transforms (buggy). * SHRINKWRAP Shrinkwrap -- Restrict movements to surface of target mesh.
        :type type: typing.Union[int, str]
        :rtype: 'Constraint'
        :return: New constraint
        '''
        pass

    def remove(self, constraint: 'Constraint'):
        ''' Remove a constraint from this object

        :param constraint: Removed constraint
        :type constraint: 'Constraint'
        '''
        pass

    def clear(self):
        ''' Remove all constraint from this object

        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a constraint to a different position

        :param from_index: From Index, Index to move
        :type from_index: int
        :param to_index: To Index, Target index
        :type to_index: int
        '''
        pass

    def copy(self, constraint: 'Constraint') -> 'Constraint':
        ''' Add a new constraint that is a copy of the given one

        :param constraint: Constraint to copy - may belong to a different object
        :type constraint: 'Constraint'
        :rtype: 'Constraint'
        :return: New constraint
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectDisplay(bpy_struct):
    ''' Object display settings for 3D viewport
    '''

    show_shadows: bool = None
    ''' Object cast shadows in the 3D viewport

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectGpencilModifiers(bpy_struct):
    ''' Collection of object grease pencil modifiers
    '''

    def new(self, name: str,
            type: typing.Union[int, str]) -> 'GpencilModifier':
        ''' Add a new greasepencil_modifier

        :param name: New name for the greasepencil_modifier
        :type name: str
        :param type: Modifier type to add * GP_TEXTURE Texture Mapping -- Change stroke uv texture values. * GP_TIME Time Offset -- Offset keyframes. * GP_WEIGHT_ANGLE Vertex Weight Angle -- Generate Vertex Weights base on stroke angle. * GP_WEIGHT_PROXIMITY Vertex Weight Proximity -- Generate Vertex Weights base on distance to object. * GP_ARRAY Array -- Create array of duplicate instances. * GP_BUILD Build -- Create duplication of strokes. * GP_DASH Dot Dash -- Generate dot-dash styled strokes. * GP_LENGTH Length -- Extend or shrink strokes. * GP_LINEART Line Art -- Generate line art strokes from selected source. * GP_MIRROR Mirror -- Duplicate strokes like a mirror. * GP_MULTIPLY Multiple Strokes -- Produce multiple strokes along one stroke. * GP_SIMPLIFY Simplify -- Simplify stroke reducing number of points. * GP_SUBDIV Subdivide -- Subdivide stroke adding more control points. * GP_ARMATURE Armature -- Deform stroke points using armature object. * GP_HOOK Hook -- Deform stroke points using objects. * GP_LATTICE Lattice -- Deform strokes using lattice. * GP_NOISE Noise -- Add noise to strokes. * GP_OFFSET Offset -- Change stroke location, rotation or scale. * SHRINKWRAP Shrinkwrap -- Project the shape onto another object. * GP_SMOOTH Smooth -- Smooth stroke. * GP_THICK Thickness -- Change stroke thickness. * GP_COLOR Hue/Saturation -- Apply changes to stroke colors. * GP_OPACITY Opacity -- Opacity of the strokes. * GP_TINT Tint -- Tint strokes with new color.
        :type type: typing.Union[int, str]
        :rtype: 'GpencilModifier'
        :return: Newly created modifier
        '''
        pass

    def remove(self, greasepencil_modifier: 'GpencilModifier'):
        ''' Remove an existing greasepencil_modifier from the object

        :param greasepencil_modifier: Modifier to remove
        :type greasepencil_modifier: 'GpencilModifier'
        '''
        pass

    def clear(self):
        ''' Remove all grease pencil modifiers from the object

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectLineArt(bpy_struct):
    ''' Object line art settings
    '''

    crease_threshold: float = None
    ''' Angles smaller than this will be treated as creases

    :type: float
    '''

    usage: typing.Union[int, str] = None
    ''' How to use this object in line art calculation * INHERIT Inherit -- Use settings from the parent collection. * INCLUDE Include -- Generate feature lines for this object's data. * OCCLUSION_ONLY Occlusion Only -- Only use the object data to produce occlusion. * EXCLUDE Exclude -- Don't use this object for Line Art rendering. * INTERSECTION_ONLY Intersection Only -- Only generate intersection lines for this collection. * NO_INTERSECTION No Intersection -- Include this object but do not generate intersection lines.

    :type: typing.Union[int, str]
    '''

    use_crease_override: bool = None
    ''' Use this object's crease setting to overwrite scene global

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectModifiers(bpy_struct):
    ''' Collection of object modifiers
    '''

    active: 'Modifier' = None
    ''' The active modifier in the list

    :type: 'Modifier'
    '''

    def new(self, name: str, type: typing.Union[int, str]) -> 'Modifier':
        ''' Add a new modifier

        :param name: New name for the modifier
        :type name: str
        :param type: Modifier type to add * DATA_TRANSFER Data Transfer -- Transfer several types of data (vertex groups, UV maps, vertex colors, custom normals) from one mesh to another. * MESH_CACHE Mesh Cache -- Deform the mesh using an external frame-by-frame vertex transform cache. * MESH_SEQUENCE_CACHE Mesh Sequence Cache -- Deform the mesh or curve using an external mesh cache in Alembic format. * NORMAL_EDIT Normal Edit -- Modify the direction of the surface normals. * WEIGHTED_NORMAL Weighted Normal -- Modify the direction of the surface normals using a weighting method. * UV_PROJECT UV Project -- Project the UV map coordinates from the negative Z axis of another object. * UV_WARP UV Warp -- Transform the UV map using the difference between two objects. * VERTEX_WEIGHT_EDIT Vertex Weight Edit -- Modify of the weights of a vertex group. * VERTEX_WEIGHT_MIX Vertex Weight Mix -- Mix the weights of two vertex groups. * VERTEX_WEIGHT_PROXIMITY Vertex Weight Proximity -- Set the vertex group weights based on the distance to another target object. * ARRAY Array -- Create copies of the shape with offsets. * BEVEL Bevel -- Generate sloped corners by adding geometry to the mesh's edges or vertices. * BOOLEAN Boolean -- Use another shape to cut, combine or perform a difference operation. * BUILD Build -- Cause the faces of the mesh object to appear or disappear one after the other over time. * DECIMATE Decimate -- Reduce the geometry density. * EDGE_SPLIT Edge Split -- Split away joined faces at the edges. * NODES Geometry Nodes. * MASK Mask -- Dynamically hide vertices based on a vertex group or armature. * MIRROR Mirror -- Mirror along the local X, Y and/or Z axes, over the object origin. * MESH_TO_VOLUME Mesh to Volume. * MULTIRES Multiresolution -- Subdivide the mesh in a way that allows editing the higher subdivision levels. * REMESH Remesh -- Generate new mesh topology based on the current shape. * SCREW Screw -- Lathe around an axis, treating the input mesh as a profile. * SKIN Skin -- Create a solid shape from vertices and edges, using the vertex radius to define the thickness. * SOLIDIFY Solidify -- Make the surface thick. * SUBSURF Subdivision Surface -- Split the faces into smaller parts, giving it a smoother appearance. * TRIANGULATE Triangulate -- Convert all polygons to triangles. * VOLUME_TO_MESH Volume to Mesh. * WELD Weld -- Find groups of vertices closer than dist and merge them together. * WIREFRAME Wireframe -- Convert faces into thickened edges. * ARMATURE Armature -- Deform the shape using an armature object. * CAST Cast -- Shift the shape towards a predefined primitive. * CURVE Curve -- Bend the mesh using a curve object. * DISPLACE Displace -- Offset vertices based on a texture. * HOOK Hook -- Deform specific points using another object. * LAPLACIANDEFORM Laplacian Deform -- Deform based a series of anchor points. * LATTICE Lattice -- Deform using the shape of a lattice object. * MESH_DEFORM Mesh Deform -- Deform using a different mesh, which acts as a deformation cage. * SHRINKWRAP Shrinkwrap -- Project the shape onto another object. * SIMPLE_DEFORM Simple Deform -- Deform the shape by twisting, bending, tapering or stretching. * SMOOTH Smooth -- Smooth the mesh by flattening the angles between adjacent faces. * CORRECTIVE_SMOOTH Smooth Corrective -- Smooth the mesh while still preserving the volume. * LAPLACIANSMOOTH Smooth Laplacian -- Reduce the noise on a mesh surface with minimal changes to its shape. * SURFACE_DEFORM Surface Deform -- Transfer motion from another mesh. * WARP Warp -- Warp parts of a mesh to a new location in a very flexible way thanks to 2 specified objects. * WAVE Wave -- Adds a ripple-like motion to an object's geometry. * VOLUME_DISPLACE Volume Displace -- Deform volume based on noise or other vector fields. * CLOTH Cloth. * COLLISION Collision. * DYNAMIC_PAINT Dynamic Paint. * EXPLODE Explode -- Break apart the mesh faces and let them follow particles. * FLUID Fluid. * OCEAN Ocean -- Generate a moving ocean surface. * PARTICLE_INSTANCE Particle Instance. * PARTICLE_SYSTEM Particle System -- Spawn particles from the shape. * SOFT_BODY Soft Body. * SURFACE Surface.
        :type type: typing.Union[int, str]
        :rtype: 'Modifier'
        :return: Newly created modifier
        '''
        pass

    def remove(self, modifier: 'Modifier'):
        ''' Remove an existing modifier from the object

        :param modifier: Modifier to remove
        :type modifier: 'Modifier'
        '''
        pass

    def clear(self):
        ''' Remove all modifiers from the object

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectShaderFx(bpy_struct):
    ''' Collection of object effects
    '''

    def new(self, name: str, type: typing.Union[int, str]) -> 'ShaderFx':
        ''' Add a new shader fx

        :param name: New name for the effect
        :type name: str
        :param type: Effect type to add * FX_BLUR Blur -- Apply Gaussian Blur to object. * FX_COLORIZE Colorize -- Apply different tint effects. * FX_FLIP Flip -- Flip image. * FX_GLOW Glow -- Create a glow effect. * FX_PIXEL Pixelate -- Pixelate image. * FX_RIM Rim -- Add a rim to the image. * FX_SHADOW Shadow -- Create a shadow effect. * FX_SWIRL Swirl -- Create a rotation distortion. * FX_WAVE Wave Distortion -- Apply sinusoidal deformation.
        :type type: typing.Union[int, str]
        :rtype: 'ShaderFx'
        :return: Newly created effect
        '''
        pass

    def remove(self, shader_fx: 'ShaderFx'):
        ''' Remove an existing effect from the object

        :param shader_fx: Effect to remove
        :type shader_fx: 'ShaderFx'
        '''
        pass

    def clear(self):
        ''' Remove all effects from the object

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Operator(bpy_struct):
    ''' Storage of an operator being executed, or registered after execution
    '''

    bl_cursor_pending: typing.Union[int, str] = None
    ''' Cursor to use when waiting for the user to select a location to activate the operator (when bl_options has DEPENDS_ON_CURSOR set)

    :type: typing.Union[int, str]
    '''

    bl_description: str = None
    ''' 

    :type: str
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    bl_label: str = None
    ''' 

    :type: str
    '''

    bl_options: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Options for this operator type * REGISTER Register -- Display in the info window and support the redo toolbar panel. * UNDO Undo -- Push an undo event (needed for operator redo). * UNDO_GROUPED Grouped Undo -- Push a single undo event for repeated instances of this operator. * BLOCKING Blocking -- Block anything else from using the cursor. * MACRO Macro -- Use to check if an operator is a macro. * GRAB_CURSOR Grab Pointer -- Use so the operator grabs the mouse focus, enables wrapping when continuous grab is enabled. * GRAB_CURSOR_X Grab Pointer X -- Grab, only warping the X axis. * GRAB_CURSOR_Y Grab Pointer Y -- Grab, only warping the Y axis. * DEPENDS_ON_CURSOR Depends on Cursor -- The initial cursor location is used, when running from a menus or buttons the user is prompted to place the cursor before beginning the operation. * PRESET Preset -- Display a preset button with the operators settings. * INTERNAL Internal -- Removes the operator from search results.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    bl_translation_context: str = None
    ''' 

    :type: str
    '''

    bl_undo_group: str = None
    ''' 

    :type: str
    '''

    has_reports: bool = None
    ''' Operator has a set of reports (warnings and errors) from last execution

    :type: bool
    '''

    layout: 'UILayout' = None
    ''' 

    :type: 'UILayout'
    '''

    macros: typing.Union[typing.Dict[str, 'Macro'], typing.
                         List['Macro'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Macro'], typing.List['Macro'], 'bpy_prop_collection']
    '''

    name: str = None
    ''' 

    :type: str
    '''

    options: 'OperatorOptions' = None
    ''' Runtime options

    :type: 'OperatorOptions'
    '''

    properties: 'OperatorProperties' = None
    ''' 

    :type: 'OperatorProperties'
    '''

    bl_property: str = None
    ''' The name of a property to use as this operators primary property. Currently this is only used to select the default property when expanding an operator into a menu.

    :type: str
    '''

    def report(self, type: typing.Union[typing.Set[int], typing.Set[str]],
               message: str):
        ''' report

        :param type: Type
        :type type: typing.Union[typing.Set[int], typing.Set[str]]
        :param message: Report Message
        :type message: str
        '''
        pass

    def is_repeat(self) -> bool:
        ''' is_repeat

        :rtype: bool
        :return: result
        '''
        pass

    @classmethod
    def poll(cls, context: 'Context'):
        ''' Test if the operator can be called or not

        :param context: 
        :type context: 'Context'
        '''
        pass

    def execute(self, context: 'Context'
                ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' Execute the operator

        :param context: 
        :type context: 'Context'
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    def check(self, context: 'Context') -> bool:
        ''' Check the operator settings, return True to signal a change to redraw

        :param context: 
        :type context: 'Context'
        :rtype: bool
        :return: result
        '''
        pass

    def invoke(self, context: 'Context', event: 'Event'
               ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' Invoke the operator

        :param context: 
        :type context: 'Context'
        :param event: 
        :type event: 'Event'
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    def modal(self, context: 'Context', event: 'Event'
              ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' Modal operator function

        :param context: 
        :type context: 'Context'
        :param event: 
        :type event: 'Event'
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    def draw(self, context: 'Context'):
        ''' Draw function for the operator

        :param context: 
        :type context: 'Context'
        '''
        pass

    def cancel(self, context: 'Context'):
        ''' Called when the operator is canceled

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def description(cls, context: 'Context',
                    properties: 'OperatorProperties') -> str:
        ''' Compute a description string that depends on parameters

        :param context: 
        :type context: 'Context'
        :param properties: 
        :type properties: 'OperatorProperties'
        :rtype: str
        :return: result
        '''
        pass

    def as_keywords(self, *, ignore=()):
        ''' Return a copy of the properties as a dictionary

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def poll_message_set(self, message: str, *args):
        ''' Set the message to show in the tool-tip when poll fails. When message is callable, additional user defined positional arguments are passed to the message function.

        :param message: The message or a function that returns the message.
        :type message: str
        '''
        pass


class OperatorMacro(bpy_struct):
    ''' Storage of a sub operator in a macro after it has been added
    '''

    properties: 'OperatorProperties' = None
    ''' 

    :type: 'OperatorProperties'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OperatorOptions(bpy_struct):
    ''' Runtime options
    '''

    is_grab_cursor: bool = None
    ''' True when the cursor is grabbed

    :type: bool
    '''

    is_invoke: bool = None
    ''' True when invoked (even if only the execute callbacks available)

    :type: bool
    '''

    is_repeat: bool = None
    ''' True when run from the 'Adjust Last Operation' panel

    :type: bool
    '''

    is_repeat_last: bool = None
    ''' True when run from the operator 'Repeat Last'

    :type: bool
    '''

    use_cursor_region: bool = None
    ''' Enable to use the region under the cursor for modal execution

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OperatorProperties(bpy_struct):
    ''' Input properties of an operator
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PackedFile(bpy_struct):
    ''' External file packed into the .blend file
    '''

    data: str = None
    ''' Raw data (bytes, exact content of the embedded file)

    :type: str
    '''

    size: int = None
    ''' Size of packed file in bytes

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Paint(bpy_struct):
    brush: 'Brush' = None
    ''' Active Brush

    :type: 'Brush'
    '''

    cavity_curve: 'CurveMapping' = None
    ''' Editable cavity curve

    :type: 'CurveMapping'
    '''

    input_samples: int = None
    ''' Average multiple input samples together to smooth the brush stroke

    :type: int
    '''

    palette: 'Palette' = None
    ''' Active Palette

    :type: 'Palette'
    '''

    show_brush: bool = None
    ''' 

    :type: bool
    '''

    show_brush_on_surface: bool = None
    ''' 

    :type: bool
    '''

    show_low_resolution: bool = None
    ''' For multires, show low resolution while navigating the view

    :type: bool
    '''

    tile_offset: typing.List[float] = None
    ''' Stride at which tiled strokes are copied

    :type: typing.List[float]
    '''

    tile_x: bool = None
    ''' Tile along X axis

    :type: bool
    '''

    tile_y: bool = None
    ''' Tile along Y axis

    :type: bool
    '''

    tile_z: bool = None
    ''' Tile along Z axis

    :type: bool
    '''

    tool_slots: typing.Union[typing.Dict[str, 'PaintToolSlot'], typing.
                             List['PaintToolSlot'],
                             'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'PaintToolSlot'], typing.List['PaintToolSlot'], 'bpy_prop_collection']
    '''

    use_cavity: bool = None
    ''' Mask painting according to mesh geometry cavity

    :type: bool
    '''

    use_sculpt_delay_updates: bool = None
    ''' Update the geometry when it enters the view, providing faster view navigation

    :type: bool
    '''

    use_symmetry_feather: bool = None
    ''' Reduce the strength of the brush where it overlaps symmetrical daubs

    :type: bool
    '''

    use_symmetry_x: bool = None
    ''' Mirror brush across the X axis

    :type: bool
    '''

    use_symmetry_y: bool = None
    ''' Mirror brush across the Y axis

    :type: bool
    '''

    use_symmetry_z: bool = None
    ''' Mirror brush across the Z axis

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PaintToolSlot(bpy_struct):
    brush: 'Brush' = None
    ''' 

    :type: 'Brush'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PaletteColor(bpy_struct):
    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    strength: float = None
    ''' 

    :type: float
    '''

    weight: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PaletteColors(bpy_struct):
    ''' Collection of palette colors
    '''

    active: 'PaletteColor' = None
    ''' 

    :type: 'PaletteColor'
    '''

    def new(self) -> 'PaletteColor':
        ''' Add a new color to the palette

        :rtype: 'PaletteColor'
        :return: The newly created color
        '''
        pass

    def remove(self, color: 'PaletteColor'):
        ''' Remove a color from the palette

        :param color: The color to remove
        :type color: 'PaletteColor'
        '''
        pass

    def clear(self):
        ''' Remove all colors from the palette

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Panel(bpy_struct):
    ''' Panel containing UI elements
    '''

    bl_category: str = None
    ''' The category (tab) in which the panel will be displayed, when applicable

    :type: str
    '''

    bl_context: str = None
    ''' The context in which the panel belongs to. (TODO: explain the possible combinations bl_context/bl_region_type/bl_space_type)

    :type: str
    '''

    bl_description: str = None
    ''' The panel tooltip

    :type: str
    '''

    bl_idname: str = None
    ''' If this is set, the panel gets a custom ID, otherwise it takes the name of the class used to define the panel. For example, if the class name is "OBJECT_PT_hello", and bl_idname is not set by the script, then bl_idname = "OBJECT_PT_hello"

    :type: str
    '''

    bl_label: str = None
    ''' The panel label, shows up in the panel header at the right of the triangle used to collapse the panel

    :type: str
    '''

    bl_options: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Options for this panel type * DEFAULT_CLOSED Default Closed -- Defines if the panel has to be open or collapsed at the time of its creation. * HIDE_HEADER Hide Header -- If set to False, the panel shows a header, which contains a clickable arrow to collapse the panel and the label (see bl_label). * INSTANCED Instanced Panel -- Multiple panels with this type can be used as part of a list depending on data external to the UI. Used to create panels for the modifiers and other stacks. * HEADER_LAYOUT_EXPAND Expand Header Layout -- Allow buttons in the header to stretch and shrink to fill the entire layout width.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    bl_order: int = None
    ''' Panels with lower numbers are default ordered before panels with higher numbers

    :type: int
    '''

    bl_owner_id: str = None
    ''' The ID owning the data displayed in the panel, if any

    :type: str
    '''

    bl_parent_id: str = None
    ''' If this is set, the panel becomes a sub-panel

    :type: str
    '''

    bl_region_type: typing.Union[int, str] = None
    ''' The region where the panel is going to be used in

    :type: typing.Union[int, str]
    '''

    bl_space_type: typing.Union[int, str] = None
    ''' The space where the panel is going to be used in * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.

    :type: typing.Union[int, str]
    '''

    bl_translation_context: str = None
    ''' Specific translation context, only define when the label needs to be disambiguated from others using the exact same label

    :type: str
    '''

    bl_ui_units_x: int = None
    ''' When set, defines popup panel width

    :type: int
    '''

    custom_data: 'Constraint' = None
    ''' Panel data

    :type: 'Constraint'
    '''

    is_popover: bool = None
    ''' 

    :type: bool
    '''

    layout: 'UILayout' = None
    ''' Defines the structure of the panel in the UI

    :type: 'UILayout'
    '''

    text: str = None
    ''' XXX todo

    :type: str
    '''

    use_pin: bool = None
    ''' Show the panel on all tabs

    :type: bool
    '''

    @classmethod
    def poll(cls, context: 'Context'):
        ''' If this method returns a non-null output, then the panel can be drawn

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw(self, context: 'Context'):
        ''' Draw UI elements into the panel UI layout

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw_header(self, context: 'Context'):
        ''' Draw UI elements into the panel's header UI layout

        :param context: 
        :type context: 'Context'
        '''
        pass

    def draw_header_preset(self, context: 'Context'):
        ''' Draw UI elements for presets in the panel's header

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Particle(bpy_struct):
    ''' Particle in a particle system
    '''

    alive_state: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    angular_velocity: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    birth_time: float = None
    ''' 

    :type: float
    '''

    die_time: float = None
    ''' 

    :type: float
    '''

    hair_keys: typing.Union[typing.Dict[str, 'ParticleHairKey'], typing.
                            List['ParticleHairKey'],
                            'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ParticleHairKey'], typing.List['ParticleHairKey'], 'bpy_prop_collection']
    '''

    is_exist: bool = None
    ''' 

    :type: bool
    '''

    is_visible: bool = None
    ''' 

    :type: bool
    '''

    lifetime: float = None
    ''' 

    :type: float
    '''

    location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    particle_keys: typing.Union[typing.Dict[str, 'ParticleKey'], typing.
                                List['ParticleKey'],
                                'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ParticleKey'], typing.List['ParticleKey'], 'bpy_prop_collection']
    '''

    prev_angular_velocity: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    prev_location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    prev_rotation: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    prev_velocity: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    rotation: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    size: float = None
    ''' 

    :type: float
    '''

    velocity: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    def uv_on_emitter(
            self, modifier: 'ParticleSystemModifier') -> typing.List[float]:
        ''' Obtain UV coordinates for a particle on an evaluated mesh.

        :param modifier: Particle modifier from an evaluated object
        :type modifier: 'ParticleSystemModifier'
        :rtype: typing.List[float]
        :return: uv
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleBrush(bpy_struct):
    ''' Particle editing brush
    '''

    count: int = None
    ''' Particle count

    :type: int
    '''

    curve: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    length_mode: typing.Union[int, str] = None
    ''' * GROW Grow -- Make hairs longer. * SHRINK Shrink -- Make hairs shorter.

    :type: typing.Union[int, str]
    '''

    puff_mode: typing.Union[int, str] = None
    ''' * ADD Add -- Make hairs more puffy. * SUB Sub -- Make hairs less puffy.

    :type: typing.Union[int, str]
    '''

    size: int = None
    ''' Radius of the brush in pixels

    :type: int
    '''

    steps: int = None
    ''' Brush steps

    :type: int
    '''

    strength: float = None
    ''' Brush strength

    :type: float
    '''

    use_puff_volume: bool = None
    ''' Apply puff to unselected end-points (helps maintain hair volume when puffing root)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleDupliWeight(bpy_struct):
    ''' Weight of a particle instance object in a collection
    '''

    count: int = None
    ''' The number of times this object is repeated with respect to other objects

    :type: int
    '''

    name: str = None
    ''' Particle instance object name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleEdit(bpy_struct):
    ''' Properties of particle editing mode
    '''

    brush: 'ParticleBrush' = None
    ''' 

    :type: 'ParticleBrush'
    '''

    default_key_count: int = None
    ''' How many keys to make new particles with

    :type: int
    '''

    display_step: int = None
    ''' How many steps to display the path with

    :type: int
    '''

    emitter_distance: float = None
    ''' Distance to keep particles away from the emitter

    :type: float
    '''

    fade_frames: int = None
    ''' How many frames to fade

    :type: int
    '''

    is_editable: bool = None
    ''' A valid edit mode exists

    :type: bool
    '''

    is_hair: bool = None
    ''' Editing hair

    :type: bool
    '''

    object: 'Object' = None
    ''' The edited object

    :type: 'Object'
    '''

    select_mode: typing.Union[int, str] = None
    ''' Particle select and display mode * PATH Path -- Path edit mode. * POINT Point -- Point select mode. * TIP Tip -- Tip select mode.

    :type: typing.Union[int, str]
    '''

    shape_object: 'Object' = None
    ''' Outer shape to use for tools

    :type: 'Object'
    '''

    show_particles: bool = None
    ''' Display actual particles

    :type: bool
    '''

    tool: typing.Union[int, str] = None
    ''' * COMB Comb -- Comb hairs. * SMOOTH Smooth -- Smooth hairs. * ADD Add -- Add hairs. * LENGTH Length -- Make hairs longer or shorter. * PUFF Puff -- Make hairs stand up. * CUT Cut -- Cut hairs. * WEIGHT Weight -- Weight hair particles.

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_auto_velocity: bool = None
    ''' Calculate point velocities automatically

    :type: bool
    '''

    use_default_interpolate: bool = None
    ''' Interpolate new particles from the existing ones

    :type: bool
    '''

    use_emitter_deflect: bool = None
    ''' Keep paths from intersecting the emitter

    :type: bool
    '''

    use_fade_time: bool = None
    ''' Fade paths and keys further away from current frame

    :type: bool
    '''

    use_preserve_length: bool = None
    ''' Keep path lengths constant

    :type: bool
    '''

    use_preserve_root: bool = None
    ''' Keep root keys unmodified

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleHairKey(bpy_struct):
    ''' Particle key for hair particle system
    '''

    co: typing.List[float] = None
    ''' Location of the hair key in object space

    :type: typing.List[float]
    '''

    co_local: typing.List[float] = None
    ''' Location of the hair key in its local coordinate system, relative to the emitting face

    :type: typing.List[float]
    '''

    time: float = None
    ''' Relative time of key over hair length

    :type: float
    '''

    weight: float = None
    ''' Weight for cloth simulation

    :type: float
    '''

    def co_object(self, object: 'Object', modifier: 'ParticleSystemModifier',
                  particle: 'Particle') -> typing.List[float]:
        ''' Obtain hairkey location with particle and modifier data

        :param object: Object
        :type object: 'Object'
        :param modifier: Particle modifier
        :type modifier: 'ParticleSystemModifier'
        :param particle: hair particle
        :type particle: 'Particle'
        :rtype: typing.List[float]
        :return: Co, Exported hairkey location
        '''
        pass

    def co_object_set(self, object: 'Object',
                      modifier: 'ParticleSystemModifier', particle: 'Particle',
                      co: typing.List[float]):
        ''' Set hairkey location with particle and modifier data

        :param object: Object
        :type object: 'Object'
        :param modifier: Particle modifier
        :type modifier: 'ParticleSystemModifier'
        :param particle: hair particle
        :type particle: 'Particle'
        :param co: Co, Specified hairkey location
        :type co: typing.List[float]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleKey(bpy_struct):
    ''' Key location for a particle over time
    '''

    angular_velocity: typing.List[float] = None
    ''' Key angular velocity

    :type: typing.List[float]
    '''

    location: typing.List[float] = None
    ''' Key location

    :type: typing.List[float]
    '''

    rotation: typing.List[float] = None
    ''' Key rotation quaternion

    :type: typing.List[float]
    '''

    time: float = None
    ''' Time of key over the simulation

    :type: float
    '''

    velocity: typing.List[float] = None
    ''' Key velocity

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleSettingsTextureSlots(bpy_struct):
    ''' Collection of texture slots
    '''

    @classmethod
    def add(cls) -> 'ParticleSettingsTextureSlot':
        ''' add

        :rtype: 'ParticleSettingsTextureSlot'
        :return: The newly initialized mtex
        '''
        pass

    @classmethod
    def create(cls, index: int) -> 'ParticleSettingsTextureSlot':
        ''' create

        :param index: Index, Slot index to initialize
        :type index: int
        :rtype: 'ParticleSettingsTextureSlot'
        :return: The newly initialized mtex
        '''
        pass

    @classmethod
    def clear(cls, index: int):
        ''' clear

        :param index: Index, Slot index to clear
        :type index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleSystem(bpy_struct):
    ''' Particle system in an object
    '''

    active_particle_target: 'ParticleTarget' = None
    ''' 

    :type: 'ParticleTarget'
    '''

    active_particle_target_index: int = None
    ''' 

    :type: int
    '''

    child_particles: typing.Union[typing.Dict[str, 'ChildParticle'], typing.
                                  List['ChildParticle'],
                                  'bpy_prop_collection'] = None
    ''' Child particles generated by the particle system

    :type: typing.Union[typing.Dict[str, 'ChildParticle'], typing.List['ChildParticle'], 'bpy_prop_collection']
    '''

    child_seed: int = None
    ''' Offset in the random number table for child particles, to get a different randomized result

    :type: int
    '''

    cloth: 'ClothModifier' = None
    ''' Cloth dynamics for hair

    :type: 'ClothModifier'
    '''

    dt_frac: float = None
    ''' The current simulation time step size, as a fraction of a frame

    :type: float
    '''

    has_multiple_caches: bool = None
    ''' Particle system has multiple point caches

    :type: bool
    '''

    invert_vertex_group_clump: bool = None
    ''' Negate the effect of the clump vertex group

    :type: bool
    '''

    invert_vertex_group_density: bool = None
    ''' Negate the effect of the density vertex group

    :type: bool
    '''

    invert_vertex_group_field: bool = None
    ''' Negate the effect of the field vertex group

    :type: bool
    '''

    invert_vertex_group_kink: bool = None
    ''' Negate the effect of the kink vertex group

    :type: bool
    '''

    invert_vertex_group_length: bool = None
    ''' Negate the effect of the length vertex group

    :type: bool
    '''

    invert_vertex_group_rotation: bool = None
    ''' Negate the effect of the rotation vertex group

    :type: bool
    '''

    invert_vertex_group_roughness_1: bool = None
    ''' Negate the effect of the roughness 1 vertex group

    :type: bool
    '''

    invert_vertex_group_roughness_2: bool = None
    ''' Negate the effect of the roughness 2 vertex group

    :type: bool
    '''

    invert_vertex_group_roughness_end: bool = None
    ''' Negate the effect of the roughness end vertex group

    :type: bool
    '''

    invert_vertex_group_size: bool = None
    ''' Negate the effect of the size vertex group

    :type: bool
    '''

    invert_vertex_group_tangent: bool = None
    ''' Negate the effect of the tangent vertex group

    :type: bool
    '''

    invert_vertex_group_twist: bool = None
    ''' Negate the effect of the twist vertex group

    :type: bool
    '''

    invert_vertex_group_velocity: bool = None
    ''' Negate the effect of the velocity vertex group

    :type: bool
    '''

    is_editable: bool = None
    ''' Particle system can be edited in particle mode

    :type: bool
    '''

    is_edited: bool = None
    ''' Particle system has been edited in particle mode

    :type: bool
    '''

    is_global_hair: bool = None
    ''' Hair keys are in global coordinate space

    :type: bool
    '''

    name: str = None
    ''' Particle system name

    :type: str
    '''

    parent: 'Object' = None
    ''' Use this object's coordinate system instead of global coordinate system

    :type: 'Object'
    '''

    particles: typing.Union[typing.Dict[str, 'Particle'], typing.
                            List['Particle'], 'bpy_prop_collection'] = None
    ''' Particles generated by the particle system

    :type: typing.Union[typing.Dict[str, 'Particle'], typing.List['Particle'], 'bpy_prop_collection']
    '''

    point_cache: 'PointCache' = None
    ''' 

    :type: 'PointCache'
    '''

    reactor_target_object: 'Object' = None
    ''' For reactor systems, the object that has the target particle system (empty if same object)

    :type: 'Object'
    '''

    reactor_target_particle_system: int = None
    ''' For reactor systems, index of particle system on the target object

    :type: int
    '''

    seed: int = None
    ''' Offset in the random number table, to get a different randomized result

    :type: int
    '''

    settings: 'ParticleSettings' = None
    ''' Particle system settings

    :type: 'ParticleSettings'
    '''

    targets: typing.Union[typing.Dict[str, 'ParticleTarget'], typing.
                          List['ParticleTarget'], 'bpy_prop_collection'] = None
    ''' Target particle systems

    :type: typing.Union[typing.Dict[str, 'ParticleTarget'], typing.List['ParticleTarget'], 'bpy_prop_collection']
    '''

    use_hair_dynamics: bool = None
    ''' Enable hair dynamics using cloth simulation

    :type: bool
    '''

    use_keyed_timing: bool = None
    ''' Use key times

    :type: bool
    '''

    vertex_group_clump: str = None
    ''' Vertex group to control clump

    :type: str
    '''

    vertex_group_density: str = None
    ''' Vertex group to control density

    :type: str
    '''

    vertex_group_field: str = None
    ''' Vertex group to control field

    :type: str
    '''

    vertex_group_kink: str = None
    ''' Vertex group to control kink

    :type: str
    '''

    vertex_group_length: str = None
    ''' Vertex group to control length

    :type: str
    '''

    vertex_group_rotation: str = None
    ''' Vertex group to control rotation

    :type: str
    '''

    vertex_group_roughness_1: str = None
    ''' Vertex group to control roughness 1

    :type: str
    '''

    vertex_group_roughness_2: str = None
    ''' Vertex group to control roughness 2

    :type: str
    '''

    vertex_group_roughness_end: str = None
    ''' Vertex group to control roughness end

    :type: str
    '''

    vertex_group_size: str = None
    ''' Vertex group to control size

    :type: str
    '''

    vertex_group_tangent: str = None
    ''' Vertex group to control tangent

    :type: str
    '''

    vertex_group_twist: str = None
    ''' Vertex group to control twist

    :type: str
    '''

    vertex_group_velocity: str = None
    ''' Vertex group to control velocity

    :type: str
    '''

    def co_hair(self, object: 'Object', particle_no: int = 0,
                step: int = 0) -> typing.List[float]:
        ''' Obtain cache hair data

        :param object: Object
        :type object: 'Object'
        :param particle_no: Particle no
        :type particle_no: int
        :param step: step no
        :type step: int
        :rtype: typing.List[float]
        :return: Co, Exported hairkey location
        '''
        pass

    def uv_on_emitter(self,
                      modifier: 'ParticleSystemModifier',
                      particle: 'Particle',
                      particle_no: int = 0,
                      uv_no: int = 0) -> typing.List[float]:
        ''' Obtain uv for all particles

        :param modifier: Particle modifier
        :type modifier: 'ParticleSystemModifier'
        :param particle: Particle
        :type particle: 'Particle'
        :param particle_no: Particle no
        :type particle_no: int
        :param uv_no: UV no
        :type uv_no: int
        :rtype: typing.List[float]
        :return: uv
        '''
        pass

    def mcol_on_emitter(self,
                        modifier: 'ParticleSystemModifier',
                        particle: 'Particle',
                        particle_no: int = 0,
                        vcol_no: int = 0) -> typing.List[float]:
        ''' Obtain mcol for all particles

        :param modifier: Particle modifier
        :type modifier: 'ParticleSystemModifier'
        :param particle: Particle
        :type particle: 'Particle'
        :param particle_no: Particle no
        :type particle_no: int
        :param vcol_no: vcol no
        :type vcol_no: int
        :rtype: typing.List[float]
        :return: mcol
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleSystems(bpy_struct):
    ''' Collection of particle systems
    '''

    active: 'ParticleSystem' = None
    ''' Active particle system being displayed

    :type: 'ParticleSystem'
    '''

    active_index: int = None
    ''' Index of active particle system slot

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleTarget(bpy_struct):
    ''' Target particle system
    '''

    alliance: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    duration: float = None
    ''' 

    :type: float
    '''

    is_valid: bool = None
    ''' Keyed particles target is valid

    :type: bool
    '''

    name: str = None
    ''' Particle target name

    :type: str
    '''

    object: 'Object' = None
    ''' The object that has the target particle system (empty if same object)

    :type: 'Object'
    '''

    system: int = None
    ''' The index of particle system on the target object

    :type: int
    '''

    time: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PathCompare(bpy_struct):
    ''' Match paths against this value
    '''

    path: str = None
    ''' 

    :type: str
    '''

    use_glob: bool = None
    ''' Enable wildcard globbing

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PathCompareCollection(bpy_struct):
    ''' Collection of paths
    '''

    @classmethod
    def new(cls):
        ''' Add a new path

        '''
        pass

    @classmethod
    def remove(cls, pathcmp: 'PathCompare'):
        ''' Remove path

        :param pathcmp: 
        :type pathcmp: 'PathCompare'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Point(bpy_struct):
    ''' Point in a point cloud
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    index: int = None
    ''' Index of this points

    :type: int
    '''

    radius: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PointCache(bpy_struct):
    ''' Active point cache for physics simulations
    '''

    compression: typing.Union[int, str] = None
    ''' Compression method to be used * NO None -- No compression. * LIGHT Lite -- Fast but not so effective compression. * HEAVY Heavy -- Effective but slow compression.

    :type: typing.Union[int, str]
    '''

    filepath: str = None
    ''' Cache file path

    :type: str
    '''

    frame_end: int = None
    ''' Frame on which the simulation stops

    :type: int
    '''

    frame_start: int = None
    ''' Frame on which the simulation starts

    :type: int
    '''

    frame_step: int = None
    ''' Number of frames between cached frames

    :type: int
    '''

    index: int = None
    ''' Index number of cache files

    :type: int
    '''

    info: str = None
    ''' Info on current cache status

    :type: str
    '''

    is_baked: bool = None
    ''' The cache is baked

    :type: bool
    '''

    is_baking: bool = None
    ''' The cache is being baked

    :type: bool
    '''

    is_frame_skip: bool = None
    ''' Some frames were skipped while baking/saving that cache

    :type: bool
    '''

    is_outdated: bool = None
    ''' 

    :type: bool
    '''

    name: str = None
    ''' Cache name

    :type: str
    '''

    point_caches: typing.Union[typing.Dict[str, 'PointCacheItem'], typing.
                               List['PointCacheItem'], 'bpy_prop_collection',
                               'PointCaches'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'PointCacheItem'], typing.List['PointCacheItem'], 'bpy_prop_collection', 'PointCaches']
    '''

    use_disk_cache: bool = None
    ''' Save cache files to disk (.blend file must be saved first)

    :type: bool
    '''

    use_external: bool = None
    ''' Read cache from an external location

    :type: bool
    '''

    use_library_path: bool = None
    ''' Use this file's path for the disk cache when library linked into another file (for local bakes per scene file, disable this option)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PointCacheItem(bpy_struct):
    ''' Point cache for physics simulations
    '''

    compression: typing.Union[int, str] = None
    ''' Compression method to be used * NO None -- No compression. * LIGHT Lite -- Fast but not so effective compression. * HEAVY Heavy -- Effective but slow compression.

    :type: typing.Union[int, str]
    '''

    filepath: str = None
    ''' Cache file path

    :type: str
    '''

    frame_end: int = None
    ''' Frame on which the simulation stops

    :type: int
    '''

    frame_start: int = None
    ''' Frame on which the simulation starts

    :type: int
    '''

    frame_step: int = None
    ''' Number of frames between cached frames

    :type: int
    '''

    index: int = None
    ''' Index number of cache files

    :type: int
    '''

    info: str = None
    ''' Info on current cache status

    :type: str
    '''

    is_baked: bool = None
    ''' The cache is baked

    :type: bool
    '''

    is_baking: bool = None
    ''' The cache is being baked

    :type: bool
    '''

    is_frame_skip: bool = None
    ''' Some frames were skipped while baking/saving that cache

    :type: bool
    '''

    is_outdated: bool = None
    ''' 

    :type: bool
    '''

    name: str = None
    ''' Cache name

    :type: str
    '''

    use_disk_cache: bool = None
    ''' Save cache files to disk (.blend file must be saved first)

    :type: bool
    '''

    use_external: bool = None
    ''' Read cache from an external location

    :type: bool
    '''

    use_library_path: bool = None
    ''' Use this file's path for the disk cache when library linked into another file (for local bakes per scene file, disable this option)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PointCaches(bpy_struct):
    ''' Collection of point caches
    '''

    active_index: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PolygonFloatProperties(bpy_struct):
    ''' Collection of float properties
    '''

    def new(self, name: str = "Float Prop") -> 'MeshPolygonFloatPropertyLayer':
        ''' Add a float property layer to Mesh

        :param name: Float property name
        :type name: str
        :rtype: 'MeshPolygonFloatPropertyLayer'
        :return: The newly created layer
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PolygonIntProperties(bpy_struct):
    ''' Collection of int properties
    '''

    def new(self, name: str = "Int Prop") -> 'MeshPolygonIntPropertyLayer':
        ''' Add a integer property layer to Mesh

        :param name: Int property name
        :type name: str
        :rtype: 'MeshPolygonIntPropertyLayer'
        :return: The newly created layer
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PolygonStringProperties(bpy_struct):
    ''' Collection of string properties
    '''

    def new(self,
            name: str = "String Prop") -> 'MeshPolygonStringPropertyLayer':
        ''' Add a string property layer to Mesh

        :param name: String property name
        :type name: str
        :rtype: 'MeshPolygonStringPropertyLayer'
        :return: The newly created layer
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Pose(bpy_struct):
    ''' A collection of pose channels, including settings for animating bones
    '''

    animation_visualization: 'AnimViz' = None
    ''' Animation data for this data-block

    :type: 'AnimViz'
    '''

    bone_groups: typing.Union[typing.Dict[str, 'BoneGroup'], typing.
                              List['BoneGroup'], 'bpy_prop_collection',
                              'BoneGroups'] = None
    ''' Groups of the bones

    :type: typing.Union[typing.Dict[str, 'BoneGroup'], typing.List['BoneGroup'], 'bpy_prop_collection', 'BoneGroups']
    '''

    bones: typing.Union[typing.Dict[str, 'PoseBone'], typing.
                        List['PoseBone'], 'bpy_prop_collection'] = None
    ''' Individual pose bones for the armature

    :type: typing.Union[typing.Dict[str, 'PoseBone'], typing.List['PoseBone'], 'bpy_prop_collection']
    '''

    ik_param: 'IKParam' = None
    ''' Parameters for IK solver

    :type: 'IKParam'
    '''

    ik_solver: typing.Union[int, str] = None
    ''' Selection of IK solver for IK chain * LEGACY Standard -- Original IK solver. * ITASC iTaSC -- Multi constraint, stateful IK solver.

    :type: typing.Union[int, str]
    '''

    use_auto_ik: bool = None
    ''' Add temporary IK constraints while grabbing bones in Pose Mode

    :type: bool
    '''

    use_mirror_relative: bool = None
    ''' Apply relative transformations in X-mirror mode (not supported with Auto IK)

    :type: bool
    '''

    use_mirror_x: bool = None
    ''' Apply changes to matching bone on opposite side of X-Axis

    :type: bool
    '''

    @classmethod
    def apply_pose_from_action(cls,
                               action: 'Action',
                               evaluation_time: float = 0.0):
        ''' Apply the given action to this pose by evaluating it at a specific time. Only updates the pose of selected bones, or all bones if none are selected.

        :param action: Action, The Action containing the pose
        :type action: 'Action'
        :param evaluation_time: Evaluation Time, Time at which the given action is evaluated to obtain the pose
        :type evaluation_time: float
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PoseBone(bpy_struct):
    ''' Channel defining pose data for a bone in a Pose
    '''

    bbone_curveinx: float = None
    ''' X-axis handle offset for start of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveinz: float = None
    ''' Z-axis handle offset for start of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveoutx: float = None
    ''' X-axis handle offset for end of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_curveoutz: float = None
    ''' Z-axis handle offset for end of the B-Bone's curve, adjusts curvature

    :type: float
    '''

    bbone_custom_handle_end: 'PoseBone' = None
    ''' Bone that serves as the end handle for the B-Bone curve

    :type: 'PoseBone'
    '''

    bbone_custom_handle_start: 'PoseBone' = None
    ''' Bone that serves as the start handle for the B-Bone curve

    :type: 'PoseBone'
    '''

    bbone_easein: float = None
    ''' Length of first Bezier Handle (for B-Bones only)

    :type: float
    '''

    bbone_easeout: float = None
    ''' Length of second Bezier Handle (for B-Bones only)

    :type: float
    '''

    bbone_rollin: float = None
    ''' Roll offset for the start of the B-Bone, adjusts twist

    :type: float
    '''

    bbone_rollout: float = None
    ''' Roll offset for the end of the B-Bone, adjusts twist

    :type: float
    '''

    bbone_scalein: typing.List[float] = None
    ''' Scale factors for the start of the B-Bone, adjusts thickness (for tapering effects)

    :type: typing.List[float]
    '''

    bbone_scaleout: typing.List[float] = None
    ''' Scale factors for the end of the B-Bone, adjusts thickness (for tapering effects)

    :type: typing.List[float]
    '''

    bone: 'Bone' = None
    ''' Bone associated with this PoseBone

    :type: 'Bone'
    '''

    bone_group: 'BoneGroup' = None
    ''' Bone group this pose channel belongs to

    :type: 'BoneGroup'
    '''

    bone_group_index: int = None
    ''' Bone group this pose channel belongs to (0 means no group)

    :type: int
    '''

    child: 'PoseBone' = None
    ''' Child of this pose bone

    :type: 'PoseBone'
    '''

    constraints: typing.Union[typing.Dict[str, 'Constraint'], typing.
                              List['Constraint'], 'bpy_prop_collection',
                              'PoseBoneConstraints'] = None
    ''' Constraints that act on this pose channel

    :type: typing.Union[typing.Dict[str, 'Constraint'], typing.List['Constraint'], 'bpy_prop_collection', 'PoseBoneConstraints']
    '''

    custom_shape: 'Object' = None
    ''' Object that defines custom display shape for this bone

    :type: 'Object'
    '''

    custom_shape_rotation_euler: typing.List[float] = None
    ''' Adjust the rotation of the custom shape

    :type: typing.List[float]
    '''

    custom_shape_scale_xyz: typing.List[float] = None
    ''' Adjust the size of the custom shape

    :type: typing.List[float]
    '''

    custom_shape_transform: 'PoseBone' = None
    ''' Bone that defines the display transform of this custom shape

    :type: 'PoseBone'
    '''

    custom_shape_translation: typing.List[float] = None
    ''' Adjust the location of the custom shape

    :type: typing.List[float]
    '''

    head: typing.List[float] = None
    ''' Location of head of the channel's bone

    :type: typing.List[float]
    '''

    ik_linear_weight: float = None
    ''' Weight of scale constraint for IK

    :type: float
    '''

    ik_max_x: float = None
    ''' Maximum angles for IK Limit

    :type: float
    '''

    ik_max_y: float = None
    ''' Maximum angles for IK Limit

    :type: float
    '''

    ik_max_z: float = None
    ''' Maximum angles for IK Limit

    :type: float
    '''

    ik_min_x: float = None
    ''' Minimum angles for IK Limit

    :type: float
    '''

    ik_min_y: float = None
    ''' Minimum angles for IK Limit

    :type: float
    '''

    ik_min_z: float = None
    ''' Minimum angles for IK Limit

    :type: float
    '''

    ik_rotation_weight: float = None
    ''' Weight of rotation constraint for IK

    :type: float
    '''

    ik_stiffness_x: float = None
    ''' IK stiffness around the X axis

    :type: float
    '''

    ik_stiffness_y: float = None
    ''' IK stiffness around the Y axis

    :type: float
    '''

    ik_stiffness_z: float = None
    ''' IK stiffness around the Z axis

    :type: float
    '''

    ik_stretch: float = None
    ''' Allow scaling of the bone for IK

    :type: float
    '''

    is_in_ik_chain: bool = None
    ''' Is part of an IK chain

    :type: bool
    '''

    length: float = None
    ''' Length of the bone

    :type: float
    '''

    location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    lock_ik_x: bool = None
    ''' Disallow movement around the X axis

    :type: bool
    '''

    lock_ik_y: bool = None
    ''' Disallow movement around the Y axis

    :type: bool
    '''

    lock_ik_z: bool = None
    ''' Disallow movement around the Z axis

    :type: bool
    '''

    lock_location: typing.List[bool] = None
    ''' Lock editing of location when transforming

    :type: typing.List[bool]
    '''

    lock_rotation: typing.List[bool] = None
    ''' Lock editing of rotation when transforming

    :type: typing.List[bool]
    '''

    lock_rotation_w: bool = None
    ''' Lock editing of 'angle' component of four-component rotations when transforming

    :type: bool
    '''

    lock_rotations_4d: bool = None
    ''' Lock editing of four component rotations by components (instead of as Eulers)

    :type: bool
    '''

    lock_scale: typing.List[bool] = None
    ''' Lock editing of scale when transforming

    :type: typing.List[bool]
    '''

    matrix: typing.List[float] = None
    ''' Final 4x4 matrix after constraints and drivers are applied (object space)

    :type: typing.List[float]
    '''

    matrix_basis: typing.List[float] = None
    ''' Alternative access to location/scale/rotation relative to the parent and own rest bone

    :type: typing.List[float]
    '''

    matrix_channel: typing.List[float] = None
    ''' 4x4 matrix, before constraints

    :type: typing.List[float]
    '''

    motion_path: 'MotionPath' = None
    ''' Motion Path for this element

    :type: 'MotionPath'
    '''

    name: str = None
    ''' 

    :type: str
    '''

    parent: 'PoseBone' = None
    ''' Parent of this pose bone

    :type: 'PoseBone'
    '''

    rotation_axis_angle: typing.List[float] = None
    ''' Angle of Rotation for Axis-Angle rotation representation

    :type: typing.List[float]
    '''

    rotation_euler: typing.List[float] = None
    ''' Rotation in Eulers

    :type: typing.List[float]
    '''

    rotation_mode: typing.Union[int, str] = None
    ''' * QUATERNION Quaternion (WXYZ) -- No Gimbal Lock. * XYZ XYZ Euler -- XYZ Rotation Order - prone to Gimbal Lock (default). * XZY XZY Euler -- XZY Rotation Order - prone to Gimbal Lock. * YXZ YXZ Euler -- YXZ Rotation Order - prone to Gimbal Lock. * YZX YZX Euler -- YZX Rotation Order - prone to Gimbal Lock. * ZXY ZXY Euler -- ZXY Rotation Order - prone to Gimbal Lock. * ZYX ZYX Euler -- ZYX Rotation Order - prone to Gimbal Lock. * AXIS_ANGLE Axis Angle -- Axis Angle (W+XYZ), defines a rotation around some axis defined by 3D-Vector.

    :type: typing.Union[int, str]
    '''

    rotation_quaternion: typing.List[float] = None
    ''' Rotation in Quaternions

    :type: typing.List[float]
    '''

    scale: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    tail: typing.List[float] = None
    ''' Location of tail of the channel's bone

    :type: typing.List[float]
    '''

    use_custom_shape_bone_size: bool = None
    ''' Scale the custom object by the bone length

    :type: bool
    '''

    use_ik_limit_x: bool = None
    ''' Limit movement around the X axis

    :type: bool
    '''

    use_ik_limit_y: bool = None
    ''' Limit movement around the Y axis

    :type: bool
    '''

    use_ik_limit_z: bool = None
    ''' Limit movement around the Z axis

    :type: bool
    '''

    use_ik_linear_control: bool = None
    ''' Apply channel size as IK constraint if stretching is enabled

    :type: bool
    '''

    use_ik_rotation_control: bool = None
    ''' Apply channel rotation as IK constraint

    :type: bool
    '''

    basename = None
    ''' The name of this bone before any '.' character (readonly)'''

    center = None
    ''' The midpoint between the head and the tail. (readonly)'''

    children = None
    ''' (readonly)'''

    children_recursive = None
    ''' A list of all children from this bone. .. note:: Takes O(len(bones)**2) time. (readonly)'''

    children_recursive_basename = None
    ''' Returns a chain of children with the same base name as this bone. Only direct chains are supported, forks caused by multiple children with matching base names will terminate the function and not be returned. (readonly)'''

    parent_recursive = None
    ''' A list of parents, starting with the immediate parent (readonly)'''

    vector = None
    ''' The direction this bone is pointing. Utility function for (tail - head) (readonly)'''

    x_axis = None
    ''' Vector pointing down the x-axis of the bone. (readonly)'''

    y_axis = None
    ''' Vector pointing down the y-axis of the bone. (readonly)'''

    z_axis = None
    ''' Vector pointing down the z-axis of the bone. (readonly)'''

    def evaluate_envelope(self, point: typing.List[float]) -> float:
        ''' Calculate bone envelope at given point

        :param point: Point, Position in 3d space to evaluate
        :type point: typing.List[float]
        :rtype: float
        :return: Factor, Envelope factor
        '''
        pass

    def bbone_segment_matrix(self, index: int,
                             rest: bool = False) -> typing.List[float]:
        ''' Retrieve the matrix of the joint between B-Bone segments if available

        :param index: Index of the segment endpoint
        :type index: int
        :param rest: Return the rest pose matrix
        :type rest: bool
        :rtype: typing.List[float]
        :return: The resulting matrix in bone local space
        '''
        pass

    def compute_bbone_handles(self,
                              rest: bool = False,
                              ease: bool = False,
                              offsets: bool = False):
        ''' Retrieve the vectors and rolls coming from B-Bone custom handles

        :param rest: Return the rest pose state
        :type rest: bool
        :param ease: Apply scale from ease values
        :type ease: bool
        :param offsets: Apply roll and curve offsets from bone properties
        :type offsets: bool
        '''
        pass

    def parent_index(self, parent_test):
        ''' The same as 'bone in other_bone.parent_recursive' but saved generating a list.

        '''
        pass

    def translate(self, vec):
        ''' Utility function to add *vec* to the head and tail of this bone

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PoseBoneConstraints(bpy_struct):
    ''' Collection of pose bone constraints
    '''

    active: 'Constraint' = None
    ''' Active PoseChannel constraint

    :type: 'Constraint'
    '''

    def new(self, type: typing.Union[int, str]) -> 'Constraint':
        ''' Add a constraint to this object

        :param type: Constraint type to add * CAMERA_SOLVER Camera Solver. * FOLLOW_TRACK Follow Track. * OBJECT_SOLVER Object Solver. * COPY_LOCATION Copy Location -- Copy the location of a target (with an optional offset), so that they move together. * COPY_ROTATION Copy Rotation -- Copy the rotation of a target (with an optional offset), so that they rotate together. * COPY_SCALE Copy Scale -- Copy the scale factors of a target (with an optional offset), so that they are scaled by the same amount. * COPY_TRANSFORMS Copy Transforms -- Copy all the transformations of a target, so that they move together. * LIMIT_DISTANCE Limit Distance -- Restrict movements to within a certain distance of a target (at the time of constraint evaluation only). * LIMIT_LOCATION Limit Location -- Restrict movement along each axis within given ranges. * LIMIT_ROTATION Limit Rotation -- Restrict rotation along each axis within given ranges. * LIMIT_SCALE Limit Scale -- Restrict scaling along each axis with given ranges. * MAINTAIN_VOLUME Maintain Volume -- Compensate for scaling one axis by applying suitable scaling to the other two axes. * TRANSFORM Transformation -- Use one transform property from target to control another (or same) property on owner. * TRANSFORM_CACHE Transform Cache -- Look up the transformation matrix from an external file. * CLAMP_TO Clamp To -- Restrict movements to lie along a curve by remapping location along curve's longest axis. * DAMPED_TRACK Damped Track -- Point towards a target by performing the smallest rotation necessary. * IK Inverse Kinematics -- Control a chain of bones by specifying the endpoint target (Bones only). * LOCKED_TRACK Locked Track -- Rotate around the specified ('locked') axis to point towards a target. * SPLINE_IK Spline IK -- Align chain of bones along a curve (Bones only). * STRETCH_TO Stretch To -- Stretch along Y-Axis to point towards a target. * TRACK_TO Track To -- Legacy tracking constraint prone to twisting artifacts. * ACTION Action -- Use transform property of target to look up pose for owner from an Action. * ARMATURE Armature -- Apply weight-blended transformation from multiple bones like the Armature modifier. * CHILD_OF Child Of -- Make target the 'detachable' parent of owner. * FLOOR Floor -- Use position (and optionally rotation) of target to define a 'wall' or 'floor' that the owner can not cross. * FOLLOW_PATH Follow Path -- Use to animate an object/bone following a path. * PIVOT Pivot -- Change pivot point for transforms (buggy). * SHRINKWRAP Shrinkwrap -- Restrict movements to surface of target mesh.
        :type type: typing.Union[int, str]
        :rtype: 'Constraint'
        :return: New constraint
        '''
        pass

    def remove(self, constraint: 'Constraint'):
        ''' Remove a constraint from this object

        :param constraint: Removed constraint
        :type constraint: 'Constraint'
        '''
        pass

    def move(self, from_index: int, to_index: int):
        ''' Move a constraint to a different position

        :param from_index: From Index, Index to move
        :type from_index: int
        :param to_index: To Index, Target index
        :type to_index: int
        '''
        pass

    def copy(self, constraint: 'Constraint') -> 'Constraint':
        ''' Add a new constraint that is a copy of the given one

        :param constraint: Constraint to copy - may belong to a different object
        :type constraint: 'Constraint'
        :rtype: 'Constraint'
        :return: New constraint
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Preferences(bpy_struct):
    ''' Global preferences
    '''

    active_section: typing.Union[int, str] = None
    ''' Active section of the preferences shown in the user interface

    :type: typing.Union[int, str]
    '''

    addons: typing.Union[typing.Dict[str, 'Addon'], typing.
                         List['Addon'], 'bpy_prop_collection', 'Addons'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Addon'], typing.List['Addon'], 'bpy_prop_collection', 'Addons']
    '''

    app_template: str = None
    ''' 

    :type: str
    '''

    apps: 'PreferencesApps' = None
    ''' Preferences that work only for apps

    :type: 'PreferencesApps'
    '''

    autoexec_paths: typing.Union[typing.Dict[str, 'PathCompare'], typing.
                                 List['PathCompare'], 'bpy_prop_collection',
                                 'PathCompareCollection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'PathCompare'], typing.List['PathCompare'], 'bpy_prop_collection', 'PathCompareCollection']
    '''

    edit: 'PreferencesEdit' = None
    ''' Settings for interacting with Blender data

    :type: 'PreferencesEdit'
    '''

    experimental: 'PreferencesExperimental' = None
    ''' Settings for features that are still early in their development stage

    :type: 'PreferencesExperimental'
    '''

    filepaths: 'PreferencesFilePaths' = None
    ''' Default paths for external files

    :type: 'PreferencesFilePaths'
    '''

    inputs: 'PreferencesInput' = None
    ''' Settings for input devices

    :type: 'PreferencesInput'
    '''

    is_dirty: bool = None
    ''' Preferences have changed

    :type: bool
    '''

    keymap: 'PreferencesKeymap' = None
    ''' Shortcut setup for keyboards and other input devices

    :type: 'PreferencesKeymap'
    '''

    studio_lights: typing.Union[typing.Dict[str, 'StudioLight'], typing.
                                List['StudioLight'], 'bpy_prop_collection',
                                'StudioLights'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'StudioLight'], typing.List['StudioLight'], 'bpy_prop_collection', 'StudioLights']
    '''

    system: 'PreferencesSystem' = None
    ''' Graphics driver and operating system settings

    :type: 'PreferencesSystem'
    '''

    themes: typing.Union[typing.Dict[str, 'Theme'], typing.
                         List['Theme'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Theme'], typing.List['Theme'], 'bpy_prop_collection']
    '''

    ui_styles: typing.Union[typing.Dict[str, 'ThemeStyle'], typing.
                            List['ThemeStyle'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ThemeStyle'], typing.List['ThemeStyle'], 'bpy_prop_collection']
    '''

    use_preferences_save: bool = None
    ''' Save preferences on exit when modified (unless factory settings have been loaded)

    :type: bool
    '''

    version: typing.List[int] = None
    ''' Version of Blender the userpref.blend was saved with

    :type: typing.List[int]
    '''

    view: 'PreferencesView' = None
    ''' Preferences related to viewing data

    :type: 'PreferencesView'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesApps(bpy_struct):
    ''' Preferences that work only for apps
    '''

    show_corner_split: bool = None
    ''' Split and join editors by dragging from corners

    :type: bool
    '''

    show_edge_resize: bool = None
    ''' Resize editors by dragging from the edges

    :type: bool
    '''

    show_regions_visibility_toggle: bool = None
    ''' Header and side bars visibility toggles

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesEdit(bpy_struct):
    ''' Settings for interacting with Blender data
    '''

    auto_keying_mode: typing.Union[int, str] = None
    ''' Mode of automatic keyframe insertion for Objects and Bones (default setting used for new Scenes)

    :type: typing.Union[int, str]
    '''

    collection_instance_empty_size: float = None
    ''' Display size of the empty when new collection instances are created

    :type: float
    '''

    fcurve_new_auto_smoothing: typing.Union[int, str] = None
    ''' Auto Handle Smoothing mode used for newly added F-Curves * NONE None -- Automatic handles only take immediately adjacent keys into account. * CONT_ACCEL Continuous Acceleration -- Automatic handles are adjusted to avoid jumps in acceleration, resulting in smoother curves. However, key changes may affect interpolation over a larger stretch of the curve.

    :type: typing.Union[int, str]
    '''

    fcurve_unselected_alpha: float = None
    ''' The opacity of unselected F-Curves against the background of the Graph Editor

    :type: float
    '''

    grease_pencil_default_color: typing.List[float] = None
    ''' Color of new annotation layers

    :type: typing.List[float]
    '''

    grease_pencil_eraser_radius: int = None
    ''' Radius of eraser 'brush'

    :type: int
    '''

    grease_pencil_euclidean_distance: int = None
    ''' Distance moved by mouse when drawing stroke to include

    :type: int
    '''

    grease_pencil_manhattan_distance: int = None
    ''' Pixels moved by mouse per axis when drawing stroke

    :type: int
    '''

    keyframe_new_handle_type: typing.Union[int, str] = None
    ''' Handle type for handles of new keyframes * FREE Free -- Completely independent manually set handle. * ALIGNED Aligned -- Manually set handle with rotation locked together with its pair. * VECTOR Vector -- Automatic handles that create straight lines. * AUTO Automatic -- Automatic handles that create smooth curves. * AUTO_CLAMPED Auto Clamped -- Automatic handles that create smooth curves which only change direction at keyframes.

    :type: typing.Union[int, str]
    '''

    keyframe_new_interpolation_type: typing.Union[int, str] = None
    ''' Interpolation mode used for first keyframe on newly added F-Curves (subsequent keyframes take interpolation from preceding keyframe) * CONSTANT Constant -- No interpolation, value of A gets held until B is encountered. * LINEAR Linear -- Straight-line interpolation between A and B (i.e. no ease in/out). * BEZIER Bezier -- Smooth interpolation between A and B, with some control over curve shape. * SINE Sinusoidal -- Sinusoidal easing (weakest, almost linear but with a slight curvature). * QUAD Quadratic -- Quadratic easing. * CUBIC Cubic -- Cubic easing. * QUART Quartic -- Quartic easing. * QUINT Quintic -- Quintic easing. * EXPO Exponential -- Exponential easing (dramatic). * CIRC Circular -- Circular easing (strongest and most dynamic). * BACK Back -- Cubic easing with overshoot and settle. * BOUNCE Bounce -- Exponentially decaying parabolic bounce, like when objects collide. * ELASTIC Elastic -- Exponentially decaying sine wave, like an elastic band.

    :type: typing.Union[int, str]
    '''

    material_link: typing.Union[int, str] = None
    ''' Toggle whether the material is linked to object data or the object block * OBDATA Object Data -- Toggle whether the material is linked to object data or the object block. * OBJECT Object -- Toggle whether the material is linked to object data or the object block.

    :type: typing.Union[int, str]
    '''

    node_margin: int = None
    ''' Minimum distance between nodes for Auto-offsetting nodes

    :type: int
    '''

    object_align: typing.Union[int, str] = None
    ''' When adding objects from a 3D View menu, either align them with that view or with the world * WORLD World -- Align newly added objects to the world coordinate system. * VIEW View -- Align newly added objects to the active 3D View direction. * CURSOR 3D Cursor -- Align newly added objects to the 3D Cursor's rotation.

    :type: typing.Union[int, str]
    '''

    sculpt_paint_overlay_color: typing.List[float] = None
    ''' Color of texture overlay

    :type: typing.List[float]
    '''

    undo_memory_limit: int = None
    ''' Maximum memory usage in megabytes (0 means unlimited)

    :type: int
    '''

    undo_steps: int = None
    ''' Number of undo steps available (smaller values conserve memory)

    :type: int
    '''

    use_anim_channel_group_colors: bool = None
    ''' Use animation channel group colors; generally this is used to show bone group colors

    :type: bool
    '''

    use_auto_keying: bool = None
    ''' Automatic keyframe insertion for Objects and Bones (default setting used for new Scenes)

    :type: bool
    '''

    use_auto_keying_warning: bool = None
    ''' Show warning indicators when transforming objects and bones if auto keying is enabled

    :type: bool
    '''

    use_cursor_lock_adjust: bool = None
    ''' Place the cursor without 'jumping' to the new location (when lock-to-cursor is used)

    :type: bool
    '''

    use_duplicate_action: bool = None
    ''' Causes actions to be duplicated with the data-blocks

    :type: bool
    '''

    use_duplicate_armature: bool = None
    ''' Causes armature data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_camera: bool = None
    ''' Causes camera data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_curve: bool = None
    ''' Causes curve data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_grease_pencil: bool = None
    ''' Causes grease pencil data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_hair: bool = None
    ''' Causes hair data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_lattice: bool = None
    ''' Causes lattice data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_light: bool = None
    ''' Causes light data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_lightprobe: bool = None
    ''' Causes light probe data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_material: bool = None
    ''' Causes material data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_mesh: bool = None
    ''' Causes mesh data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_metaball: bool = None
    ''' Causes metaball data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_particle: bool = None
    ''' Causes particle systems to be duplicated with the object

    :type: bool
    '''

    use_duplicate_pointcloud: bool = None
    ''' Causes point cloud data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_speaker: bool = None
    ''' Causes speaker data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_surface: bool = None
    ''' Causes surface data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_text: bool = None
    ''' Causes text data to be duplicated with the object

    :type: bool
    '''

    use_duplicate_volume: bool = None
    ''' Causes volume data to be duplicated with the object

    :type: bool
    '''

    use_enter_edit_mode: bool = None
    ''' Enter Edit Mode automatically after adding a new object

    :type: bool
    '''

    use_global_undo: bool = None
    ''' Global undo works by keeping a full copy of the file itself in memory, so takes extra memory

    :type: bool
    '''

    use_insertkey_xyz_to_rgb: bool = None
    ''' Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis

    :type: bool
    '''

    use_keyframe_insert_available: bool = None
    ''' Automatic keyframe insertion in available F-Curves

    :type: bool
    '''

    use_keyframe_insert_needed: bool = None
    ''' Keyframe insertion only when keyframe needed

    :type: bool
    '''

    use_mouse_depth_cursor: bool = None
    ''' Use the surface depth for cursor placement

    :type: bool
    '''

    use_negative_frames: bool = None
    ''' Current frame number can be manually set to a negative value

    :type: bool
    '''

    use_text_edit_auto_close: bool = None
    ''' Auto close relevant characters inside the text editor

    :type: bool
    '''

    use_visual_keying: bool = None
    ''' Use Visual keying automatically for constrained objects

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesExperimental(bpy_struct):
    ''' Experimental features
    '''

    override_auto_resync: bool = None
    ''' Enable library overrides automatic resync detection and process on file load. Disable when dealing with older .blend files that need manual Resync (Enforce) handling

    :type: bool
    '''

    proxy_to_override_auto_conversion: bool = None
    ''' Enable automatic conversion of proxies to library overrides on file load

    :type: bool
    '''

    show_asset_debug_info: bool = None
    ''' Enable some extra fields in the Asset Browser to aid in debugging

    :type: bool
    '''

    use_cycles_debug: bool = None
    ''' Enable Cycles debugging options for developers

    :type: bool
    '''

    use_extended_asset_browser: bool = None
    ''' Enable Asset Browser editor and operators to manage regular data-blocks as assets, not just poses

    :type: bool
    '''

    use_full_frame_compositor: bool = None
    ''' Enable compositor full frame execution mode option (no tiling, reduces execution time and memory usage)

    :type: bool
    '''

    use_geometry_nodes_legacy: bool = None
    ''' Enable legacy geometry nodes in the menu

    :type: bool
    '''

    use_new_hair_type: bool = None
    ''' Enable the new hair type in the ui

    :type: bool
    '''

    use_new_point_cloud_type: bool = None
    ''' Enable the new point cloud type in the ui

    :type: bool
    '''

    use_override_templates: bool = None
    ''' Enable library override template in the python API

    :type: bool
    '''

    use_sculpt_tools_tilt: bool = None
    ''' Support for pen tablet tilt events in Sculpt Mode

    :type: bool
    '''

    use_sculpt_vertex_colors: bool = None
    ''' Use the new Vertex Painting system

    :type: bool
    '''

    use_undo_legacy: bool = None
    ''' Use legacy undo (slower than the new default one, but may be more stable in some cases)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesFilePaths(bpy_struct):
    ''' Default paths for external files
    '''

    animation_player: str = None
    ''' Path to a custom animation/frame sequence player

    :type: str
    '''

    animation_player_preset: typing.Union[int, str] = None
    ''' Preset configs for external animation players * INTERNAL Internal -- Built-in animation player. * DJV DJV -- Open source frame player. * FRAMECYCLER FrameCycler -- Frame player from IRIDAS. * RV RV -- Frame player from Tweak Software. * MPLAYER MPlayer -- Media player for video and PNG/JPEG/SGI image sequences. * CUSTOM Custom -- Custom animation player executable path.

    :type: typing.Union[int, str]
    '''

    asset_libraries: typing.Union[typing.Dict[str, 'UserAssetLibrary'], typing.
                                  List['UserAssetLibrary'],
                                  'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'UserAssetLibrary'], typing.List['UserAssetLibrary'], 'bpy_prop_collection']
    '''

    auto_save_time: int = None
    ''' The time (in minutes) to wait between automatic temporary saves

    :type: int
    '''

    file_preview_type: typing.Union[int, str] = None
    ''' What type of blend preview to create * NONE None -- Do not create blend previews. * AUTO Auto -- Automatically select best preview type. * SCREENSHOT Screenshot -- Capture the entire window. * CAMERA Camera View -- Workbench render of scene.

    :type: typing.Union[int, str]
    '''

    font_directory: str = None
    ''' The default directory to search for loading fonts

    :type: str
    '''

    i18n_branches_directory: str = None
    ''' The path to the '/branches' directory of your local svn-translation copy, to allow translating from the UI

    :type: str
    '''

    image_editor: str = None
    ''' Path to an image editor

    :type: str
    '''

    recent_files: int = None
    ''' Maximum number of recently opened files to remember

    :type: int
    '''

    render_cache_directory: str = None
    ''' Where to cache raw render results

    :type: str
    '''

    render_output_directory: str = None
    ''' The default directory for rendering output, for new scenes

    :type: str
    '''

    save_version: int = None
    ''' The number of old versions to maintain in the current directory, when manually saving

    :type: int
    '''

    script_directory: str = None
    ''' Alternate script path, matching the default layout with subdirectories: startup, add-ons, modules, and presets (requires restart)

    :type: str
    '''

    show_hidden_files_datablocks: bool = None
    ''' Show files and data-blocks that are normally hidden

    :type: bool
    '''

    show_recent_locations: bool = None
    ''' Show Recent locations list in the File Browser

    :type: bool
    '''

    show_system_bookmarks: bool = None
    ''' Show System locations list in the File Browser

    :type: bool
    '''

    sound_directory: str = None
    ''' The default directory to search for sounds

    :type: str
    '''

    temporary_directory: str = None
    ''' The directory for storing temporary save files

    :type: str
    '''

    texture_directory: str = None
    ''' The default directory to search for textures

    :type: str
    '''

    use_auto_save_temporary_files: bool = None
    ''' Automatic saving of temporary files in temp directory, uses process ID. Warning: Sculpt and edit mode data won't be saved

    :type: bool
    '''

    use_file_compression: bool = None
    ''' Enable file compression when saving .blend files

    :type: bool
    '''

    use_filter_files: bool = None
    ''' Enable filtering of files in the File Browser

    :type: bool
    '''

    use_load_ui: bool = None
    ''' Load user interface setup when loading .blend files

    :type: bool
    '''

    use_relative_paths: bool = None
    ''' Default relative path option for the file selector, when no path is defined yet

    :type: bool
    '''

    use_scripts_auto_execute: bool = None
    ''' Allow any .blend file to run scripts automatically (unsafe with blend files from an untrusted source)

    :type: bool
    '''

    use_tabs_as_spaces: bool = None
    ''' Automatically convert all new tabs into spaces for new and loaded text files

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesInput(bpy_struct):
    ''' Settings for input devices
    '''

    drag_threshold: int = None
    ''' Number of pixels to drag before a drag event is triggered for keyboard and other non mouse/tablet input (otherwise click events are detected)

    :type: int
    '''

    drag_threshold_mouse: int = None
    ''' Number of pixels to drag before a tweak/drag event is triggered for mouse/trackpad input (otherwise click events are detected)

    :type: int
    '''

    drag_threshold_tablet: int = None
    ''' Number of pixels to drag before a tweak/drag event is triggered for tablet input (otherwise click events are detected)

    :type: int
    '''

    invert_mouse_zoom: bool = None
    ''' Invert the axis of mouse movement for zooming

    :type: bool
    '''

    invert_zoom_wheel: bool = None
    ''' Swap the Mouse Wheel zoom direction

    :type: bool
    '''

    mouse_double_click_time: int = None
    ''' Time/delay (in ms) for a double click

    :type: int
    '''

    mouse_emulate_3_button_modifier: typing.Union[int, str] = None
    ''' Hold this modifier to emulate the middle mouse button

    :type: typing.Union[int, str]
    '''

    move_threshold: int = None
    ''' Number of pixels to before the cursor is considered to have moved (used for cycling selected items on successive clicks)

    :type: int
    '''

    navigation_mode: typing.Union[int, str] = None
    ''' Which method to use for viewport navigation * WALK Walk -- Interactively walk or free navigate around the scene. * FLY Fly -- Use fly dynamics to navigate the scene.

    :type: typing.Union[int, str]
    '''

    ndof_deadzone: float = None
    ''' Threshold of initial movement needed from the device's rest position

    :type: float
    '''

    ndof_fly_helicopter: bool = None
    ''' Device up/down directly controls the Z position of the 3D viewport

    :type: bool
    '''

    ndof_lock_horizon: bool = None
    ''' Keep horizon level while flying with 3D Mouse

    :type: bool
    '''

    ndof_orbit_sensitivity: float = None
    ''' Overall sensitivity of the 3D Mouse for orbiting

    :type: float
    '''

    ndof_pan_yz_swap_axis: bool = None
    ''' Pan using up/down on the device (otherwise forward/backward)

    :type: bool
    '''

    ndof_panx_invert_axis: bool = None
    ''' 

    :type: bool
    '''

    ndof_pany_invert_axis: bool = None
    ''' 

    :type: bool
    '''

    ndof_panz_invert_axis: bool = None
    ''' 

    :type: bool
    '''

    ndof_rotx_invert_axis: bool = None
    ''' 

    :type: bool
    '''

    ndof_roty_invert_axis: bool = None
    ''' 

    :type: bool
    '''

    ndof_rotz_invert_axis: bool = None
    ''' 

    :type: bool
    '''

    ndof_sensitivity: float = None
    ''' Overall sensitivity of the 3D Mouse for panning

    :type: float
    '''

    ndof_show_guide: bool = None
    ''' Display the center and axis during rotation

    :type: bool
    '''

    ndof_view_navigate_method: typing.Union[int, str] = None
    ''' Navigation style in the viewport * FREE Free -- Use full 6 degrees of freedom by default. * ORBIT Orbit -- Orbit about the view center by default.

    :type: typing.Union[int, str]
    '''

    ndof_view_rotate_method: typing.Union[int, str] = None
    ''' Rotation style in the viewport * TURNTABLE Turntable -- Use turntable style rotation in the viewport. * TRACKBALL Trackball -- Use trackball style rotation in the viewport.

    :type: typing.Union[int, str]
    '''

    ndof_zoom_invert: bool = None
    ''' Zoom using opposite direction

    :type: bool
    '''

    pressure_softness: float = None
    ''' Adjusts softness of the low pressure response onset using a gamma curve

    :type: float
    '''

    pressure_threshold_max: float = None
    ''' Raw input pressure value that is interpreted as 100% by Blender

    :type: float
    '''

    tablet_api: typing.Union[int, str] = None
    ''' Select the tablet API to use for pressure sensitivity (may require restarting Blender for changes to take effect) * AUTOMATIC Automatic -- Automatically choose Wintab or Windows Ink depending on the device. * WINDOWS_INK Windows Ink -- Use native Windows Ink API, for modern tablet and pen devices. Requires Windows 8 or newer. * WINTAB Wintab -- Use Wintab driver for older tablets and Windows versions.

    :type: typing.Union[int, str]
    '''

    use_auto_perspective: bool = None
    ''' Automatically switch between orthographic and perspective when changing from top/front/side views

    :type: bool
    '''

    use_drag_immediately: bool = None
    ''' Moving things with a mouse drag confirms when releasing the button

    :type: bool
    '''

    use_emulate_numpad: bool = None
    ''' Main 1 to 0 keys act as the numpad ones (useful for laptops)

    :type: bool
    '''

    use_mouse_continuous: bool = None
    ''' Let the mouse wrap around the view boundaries so mouse movements are not limited by the screen size (used by transform, dragging of UI controls, etc.)

    :type: bool
    '''

    use_mouse_depth_navigate: bool = None
    ''' Use the depth under the mouse to improve view pan/rotate/zoom functionality

    :type: bool
    '''

    use_mouse_emulate_3_button: bool = None
    ''' Emulate Middle Mouse with Alt+Left Mouse

    :type: bool
    '''

    use_ndof: bool = None
    ''' 

    :type: bool
    '''

    use_numeric_input_advanced: bool = None
    ''' When entering numbers while transforming, default to advanced mode for full math expression evaluation

    :type: bool
    '''

    use_rotate_around_active: bool = None
    ''' Use selection as the pivot point

    :type: bool
    '''

    use_zoom_to_mouse: bool = None
    ''' Zoom in towards the mouse pointer's position in the 3D view, rather than the 2D window center

    :type: bool
    '''

    view_rotate_method: typing.Union[int, str] = None
    ''' Orbit method in the viewport * TURNTABLE Turntable -- Turntable keeps the Z-axis upright while orbiting. * TRACKBALL Trackball -- Trackball allows you to tumble your view at any angle.

    :type: typing.Union[int, str]
    '''

    view_rotate_sensitivity_trackball: float = None
    ''' Scale trackball orbit sensitivity

    :type: float
    '''

    view_rotate_sensitivity_turntable: float = None
    ''' Rotation amount per pixel to control how fast the viewport orbits

    :type: float
    '''

    view_zoom_axis: typing.Union[int, str] = None
    ''' Axis of mouse movement to zoom in or out on * VERTICAL Vertical -- Zoom in and out based on vertical mouse movement. * HORIZONTAL Horizontal -- Zoom in and out based on horizontal mouse movement.

    :type: typing.Union[int, str]
    '''

    view_zoom_method: typing.Union[int, str] = None
    ''' Which style to use for viewport scaling * CONTINUE Continue -- Continuous zooming. The zoom direction and speed depends on how far along the set Zoom Axis the mouse has moved. * DOLLY Dolly -- Zoom in and out based on mouse movement along the set Zoom Axis. * SCALE Scale -- Zoom in and out as if you are scaling the view, mouse movements relative to center.

    :type: typing.Union[int, str]
    '''

    walk_navigation: 'WalkNavigation' = None
    ''' Settings for walk navigation mode

    :type: 'WalkNavigation'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesKeymap(bpy_struct):
    ''' Shortcut setup for keyboards and other input devices
    '''

    active_keyconfig: str = None
    ''' The name of the active key configuration

    :type: str
    '''

    show_ui_keyconfig: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesSystem(bpy_struct):
    ''' Graphics driver and operating system settings
    '''

    anisotropic_filter: typing.Union[int, str] = None
    ''' Quality of the anisotropic filtering (values greater than 1.0 enable anisotropic filtering)

    :type: typing.Union[int, str]
    '''

    audio_channels: typing.Union[int, str] = None
    ''' Audio channel count * MONO Mono -- Set audio channels to mono. * STEREO Stereo -- Set audio channels to stereo. * SURROUND4 4 Channels -- Set audio channels to 4 channels. * SURROUND51 5.1 Surround -- Set audio channels to 5.1 surround sound. * SURROUND71 7.1 Surround -- Set audio channels to 7.1 surround sound.

    :type: typing.Union[int, str]
    '''

    audio_device: typing.Union[int, str] = None
    ''' Audio output device * None None -- No device - there will be no audio output.

    :type: typing.Union[int, str]
    '''

    audio_mixing_buffer: typing.Union[int, str] = None
    ''' Number of samples used by the audio mixing buffer * SAMPLES_256 256 Samples -- Set audio mixing buffer size to 256 samples. * SAMPLES_512 512 Samples -- Set audio mixing buffer size to 512 samples. * SAMPLES_1024 1024 Samples -- Set audio mixing buffer size to 1024 samples. * SAMPLES_2048 2048 Samples -- Set audio mixing buffer size to 2048 samples. * SAMPLES_4096 4096 Samples -- Set audio mixing buffer size to 4096 samples. * SAMPLES_8192 8192 Samples -- Set audio mixing buffer size to 8192 samples. * SAMPLES_16384 16384 Samples -- Set audio mixing buffer size to 16384 samples. * SAMPLES_32768 32768 Samples -- Set audio mixing buffer size to 32768 samples.

    :type: typing.Union[int, str]
    '''

    audio_sample_format: typing.Union[int, str] = None
    ''' Audio sample format * U8 8-bit Unsigned -- Set audio sample format to 8-bit unsigned integer. * S16 16-bit Signed -- Set audio sample format to 16-bit signed integer. * S24 24-bit Signed -- Set audio sample format to 24-bit signed integer. * S32 32-bit Signed -- Set audio sample format to 32-bit signed integer. * FLOAT 32-bit Float -- Set audio sample format to 32-bit float. * DOUBLE 64-bit Float -- Set audio sample format to 64-bit float.

    :type: typing.Union[int, str]
    '''

    audio_sample_rate: typing.Union[int, str] = None
    ''' Audio sample rate * RATE_44100 44.1 kHz -- Set audio sampling rate to 44100 samples per second. * RATE_48000 48 kHz -- Set audio sampling rate to 48000 samples per second. * RATE_96000 96 kHz -- Set audio sampling rate to 96000 samples per second. * RATE_192000 192 kHz -- Set audio sampling rate to 192000 samples per second.

    :type: typing.Union[int, str]
    '''

    dpi: int = None
    ''' 

    :type: int
    '''

    gl_clip_alpha: float = None
    ''' Clip alpha below this threshold in the 3D textured view

    :type: float
    '''

    gl_texture_limit: typing.Union[int, str] = None
    ''' Limit the texture size to save graphics memory

    :type: typing.Union[int, str]
    '''

    image_draw_method: typing.Union[int, str] = None
    ''' Method used for displaying images on the screen * AUTO Automatic -- Automatically choose method based on GPU and image. * 2DTEXTURE 2D Texture -- Use CPU for display transform and display image with 2D texture. * GLSL GLSL -- Use GLSL shaders for display transform and display image with 2D texture.

    :type: typing.Union[int, str]
    '''

    legacy_compute_device_type: int = None
    ''' For backwards compatibility only

    :type: int
    '''

    light_ambient: typing.List[float] = None
    ''' Color of the ambient light that uniformly lit the scene

    :type: typing.List[float]
    '''

    memory_cache_limit: int = None
    ''' Memory cache limit (in megabytes)

    :type: int
    '''

    opensubdiv_compute_type: typing.Union[int, str] = None
    ''' Type of computer back-end used with OpenSubdiv

    :type: typing.Union[int, str]
    '''

    pixel_size: float = None
    ''' 

    :type: float
    '''

    scrollback: int = None
    ''' Maximum number of lines to store for the console buffer

    :type: int
    '''

    sequencer_disk_cache_compression: typing.Union[int, str] = None
    ''' Smaller compression will result in larger files, but less decoding overhead * NONE None -- Requires fast storage, but uses minimum CPU resources. * LOW Low -- Doesn't require fast storage and uses less CPU resources. * HIGH High -- Works on slower storage devices and uses most CPU resources.

    :type: typing.Union[int, str]
    '''

    sequencer_disk_cache_dir: str = None
    ''' Override default directory

    :type: str
    '''

    sequencer_disk_cache_size_limit: int = None
    ''' Disk cache limit (in gigabytes)

    :type: int
    '''

    sequencer_proxy_setup: typing.Union[int, str] = None
    ''' When and how proxies are created * MANUAL Manual -- Set up proxies manually. * AUTOMATIC Automatic -- Build proxies for added movie and image strips in each preview size.

    :type: typing.Union[int, str]
    '''

    solid_lights: typing.Union[typing.Dict[str, 'UserSolidLight'], typing.
                               List['UserSolidLight'],
                               'bpy_prop_collection'] = None
    ''' Lights used to display objects in solid shading mode

    :type: typing.Union[typing.Dict[str, 'UserSolidLight'], typing.List['UserSolidLight'], 'bpy_prop_collection']
    '''

    texture_collection_rate: int = None
    ''' Number of seconds between each run of the GL texture garbage collector

    :type: int
    '''

    texture_time_out: int = None
    ''' Time since last access of a GL texture in seconds after which it is freed (set to 0 to keep textures allocated)

    :type: int
    '''

    ui_line_width: float = None
    ''' Suggested line thickness and point size in pixels, for add-ons displaying custom user interface elements, based on operating system settings and Blender UI scale

    :type: float
    '''

    ui_scale: float = None
    ''' Size multiplier to use when displaying custom user interface elements, so that they are scaled correctly on screens with different DPI. This value is based on operating system DPI settings and Blender display scale

    :type: float
    '''

    use_edit_mode_smooth_wire: bool = None
    ''' Enable Edit-Mode edge smoothing, reducing aliasing, requires restart

    :type: bool
    '''

    use_overlay_smooth_wire: bool = None
    ''' Enable overlay smooth wires, reducing aliasing

    :type: bool
    '''

    use_region_overlap: bool = None
    ''' Display tool/property regions over the main region

    :type: bool
    '''

    use_select_pick_depth: bool = None
    ''' Use the depth buffer for picking 3D View selection (without this the front most object may not be selected first)

    :type: bool
    '''

    use_sequencer_disk_cache: bool = None
    ''' Store cached images to disk

    :type: bool
    '''

    use_studio_light_edit: bool = None
    ''' View the result of the studio light editor in the viewport

    :type: bool
    '''

    vbo_collection_rate: int = None
    ''' Number of seconds between each run of the GL Vertex buffer object garbage collector

    :type: int
    '''

    vbo_time_out: int = None
    ''' Time since last access of a GL Vertex buffer object in seconds after which it is freed (set to 0 to keep vbo allocated)

    :type: int
    '''

    viewport_aa: typing.Union[int, str] = None
    ''' Method of anti-aliasing in 3d viewport * OFF No Anti-Aliasing -- Scene will be rendering without any anti-aliasing. * FXAA Single Pass Anti-Aliasing -- Scene will be rendered using a single pass anti-aliasing method (FXAA). * 5 5 Samples -- Scene will be rendered using 5 anti-aliasing samples. * 8 8 Samples -- Scene will be rendered using 8 anti-aliasing samples. * 11 11 Samples -- Scene will be rendered using 11 anti-aliasing samples. * 16 16 Samples -- Scene will be rendered using 16 anti-aliasing samples. * 32 32 Samples -- Scene will be rendered using 32 anti-aliasing samples.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PreferencesView(bpy_struct):
    ''' Preferences related to viewing data
    '''

    color_picker_type: typing.Union[int, str] = None
    ''' Different styles of displaying the color picker widget * CIRCLE_HSV Circle (HSV) -- A circular Hue/Saturation color wheel, with Value slider. * CIRCLE_HSL Circle (HSL) -- A circular Hue/Saturation color wheel, with Lightness slider. * SQUARE_SV Square (SV + H) -- A square showing Saturation/Value, with Hue slider. * SQUARE_HS Square (HS + V) -- A square showing Hue/Saturation, with Value slider. * SQUARE_HV Square (HV + S) -- A square showing Hue/Value, with Saturation slider.

    :type: typing.Union[int, str]
    '''

    factor_display_type: typing.Union[int, str] = None
    ''' How factor values are displayed * FACTOR Factor -- Display factors as values between 0 and 1. * PERCENTAGE Percentage -- Display factors as percentages.

    :type: typing.Union[int, str]
    '''

    filebrowser_display_type: typing.Union[int, str] = None
    ''' Default location where the File Editor will be displayed in * SCREEN Maximized Area -- Open the temporary editor in a maximized screen. * WINDOW New Window -- Open the temporary editor in a new window.

    :type: typing.Union[int, str]
    '''

    font_path_ui: str = None
    ''' Path to interface font

    :type: str
    '''

    font_path_ui_mono: str = None
    ''' Path to interface monospaced Font

    :type: str
    '''

    gizmo_size: int = None
    ''' Diameter of the gizmo

    :type: int
    '''

    gizmo_size_navigate_v3d: int = None
    ''' The Navigate Gizmo size

    :type: int
    '''

    header_align: typing.Union[int, str] = None
    ''' Default header position for new space-types * NONE Keep Existing -- Keep existing header alignment. * TOP Top -- Top aligned on load. * BOTTOM Bottom -- Bottom align on load (except for property editors).

    :type: typing.Union[int, str]
    '''

    language: typing.Union[int, str] = None
    ''' Language used for translation * DEFAULT Automatic (Automatic) -- Automatically choose system's defined language if available, or fall-back to English.

    :type: typing.Union[int, str]
    '''

    lookdev_sphere_size: int = None
    ''' Diameter of the HDRI preview spheres

    :type: int
    '''

    mini_axis_brightness: int = None
    ''' Brightness of the icon

    :type: int
    '''

    mini_axis_size: int = None
    ''' The axes icon's size

    :type: int
    '''

    mini_axis_type: typing.Union[int, str] = None
    ''' Show a small rotating 3D axes in the top right corner of the 3D View

    :type: typing.Union[int, str]
    '''

    open_sublevel_delay: int = None
    ''' Time delay in 1/10 seconds before automatically opening sub level menus

    :type: int
    '''

    open_toplevel_delay: int = None
    ''' Time delay in 1/10 seconds before automatically opening top level menus

    :type: int
    '''

    pie_animation_timeout: int = None
    ''' Time needed to fully animate the pie to unfolded state (in 1/100ths of sec)

    :type: int
    '''

    pie_initial_timeout: int = None
    ''' Pie menus will use the initial mouse position as center for this amount of time (in 1/100ths of sec)

    :type: int
    '''

    pie_menu_confirm: int = None
    ''' Distance threshold after which selection is made (zero to disable)

    :type: int
    '''

    pie_menu_radius: int = None
    ''' Pie menu size in pixels

    :type: int
    '''

    pie_menu_threshold: int = None
    ''' Distance from center needed before a selection can be made

    :type: int
    '''

    pie_tap_timeout: int = None
    ''' Pie menu button held longer than this will dismiss menu on release.(in 1/100ths of sec)

    :type: int
    '''

    render_display_type: typing.Union[int, str] = None
    ''' Default location where rendered images will be displayed in * NONE Keep User Interface -- Images are rendered without changing the user interface. * SCREEN Maximized Area -- Images are rendered in a maximized Image Editor. * AREA Image Editor -- Images are rendered in an Image Editor. * WINDOW New Window -- Images are rendered in a new window.

    :type: typing.Union[int, str]
    '''

    rotation_angle: float = None
    ''' Rotation step for numerical pad keys (2 4 6 8)

    :type: float
    '''

    show_addons_enabled_only: bool = None
    ''' Only show enabled add-ons. Un-check to see all installed add-ons

    :type: bool
    '''

    show_column_layout: bool = None
    ''' Use a column layout for toolbox

    :type: bool
    '''

    show_developer_ui: bool = None
    ''' Show options for developers (edit source in context menu, geometry indices)

    :type: bool
    '''

    show_gizmo: bool = None
    ''' Use transform gizmos by default

    :type: bool
    '''

    show_navigate_ui: bool = None
    ''' Show navigation controls in 2D and 3D views which do not have scroll bars

    :type: bool
    '''

    show_object_info: bool = None
    ''' Display objects name and frame number in 3D view

    :type: bool
    '''

    show_playback_fps: bool = None
    ''' Show the frames per second screen refresh rate, while animation is played back

    :type: bool
    '''

    show_splash: bool = None
    ''' Display splash screen on startup

    :type: bool
    '''

    show_statusbar_memory: bool = None
    ''' Show Blender memory usage

    :type: bool
    '''

    show_statusbar_stats: bool = None
    ''' Show scene statistics

    :type: bool
    '''

    show_statusbar_version: bool = None
    ''' Show Blender version string

    :type: bool
    '''

    show_statusbar_vram: bool = None
    ''' Show GPU video memory usage

    :type: bool
    '''

    show_tooltips: bool = None
    ''' Display tooltips (when off hold Alt to force display)

    :type: bool
    '''

    show_tooltips_python: bool = None
    ''' Show Python references in tooltips

    :type: bool
    '''

    show_view_name: bool = None
    ''' Show the name of the view's direction in each 3D View

    :type: bool
    '''

    smooth_view: int = None
    ''' Time to animate the view in milliseconds, zero to disable

    :type: int
    '''

    text_hinting: typing.Union[int, str] = None
    ''' Method for making user interface text render sharp

    :type: typing.Union[int, str]
    '''

    timecode_style: typing.Union[int, str] = None
    ''' Format of Time Codes displayed when not displaying timing in terms of frames * MINIMAL Minimal Info -- Most compact representation, uses '+' as separator for sub-second frame numbers, with left and right truncation of the timecode as necessary. * SMPTE SMPTE (Full) -- Full SMPTE timecode (format is HH:MM:SS:FF). * SMPTE_COMPACT SMPTE (Compact) -- SMPTE timecode showing minutes, seconds, and frames only - hours are also shown if necessary, but not by default. * MILLISECONDS Compact with Milliseconds -- Similar to SMPTE (Compact), except that instead of frames, milliseconds are shown instead. * SECONDS_ONLY Only Seconds -- Direct conversion of frame numbers to seconds.

    :type: typing.Union[int, str]
    '''

    ui_line_width: typing.Union[int, str] = None
    ''' Changes the thickness of widget outlines, lines and dots in the interface * THIN Thin -- Thinner lines than the default. * AUTO Default -- Automatic line width based on UI scale. * THICK Thick -- Thicker lines than the default.

    :type: typing.Union[int, str]
    '''

    ui_scale: float = None
    ''' Changes the size of the fonts and widgets in the interface

    :type: float
    '''

    use_directional_menus: bool = None
    ''' Otherwise menus, etc will always be top to bottom, left to right, no matter opening direction

    :type: bool
    '''

    use_mouse_over_open: bool = None
    ''' Open menu buttons and pulldowns automatically when the mouse is hovering

    :type: bool
    '''

    use_save_prompt: bool = None
    ''' Ask for confirmation when quitting with unsaved changes

    :type: bool
    '''

    use_text_antialiasing: bool = None
    ''' Smooth jagged edges of user interface text

    :type: bool
    '''

    use_translate_interface: bool = None
    ''' Translate all labels in menus, buttons and panels (note that this might make it hard to follow tutorials or the manual)

    :type: bool
    '''

    use_translate_new_dataname: bool = None
    ''' Translate the names of new data-blocks (objects, materials...)

    :type: bool
    '''

    use_translate_tooltips: bool = None
    ''' Translate the descriptions when hovering UI elements (recommended)

    :type: bool
    '''

    use_weight_color_range: bool = None
    ''' Enable color range used for weight visualization in weight painting mode

    :type: bool
    '''

    view2d_grid_spacing_min: int = None
    ''' Minimum number of pixels between each gridline in 2D Viewports

    :type: int
    '''

    view_frame_keyframes: int = None
    ''' Keyframes around cursor that we zoom around

    :type: int
    '''

    view_frame_seconds: float = None
    ''' Seconds around cursor that we zoom around

    :type: float
    '''

    view_frame_type: typing.Union[int, str] = None
    ''' How zooming to frame focuses around current frame

    :type: typing.Union[int, str]
    '''

    weight_color_range: 'ColorRamp' = None
    ''' Color range used for weight visualization in weight painting mode

    :type: 'ColorRamp'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Property(bpy_struct):
    ''' RNA property definition
    '''

    description: str = None
    ''' Description of the property for tooltips

    :type: str
    '''

    icon: typing.Union[int, str] = None
    ''' Icon of the item

    :type: typing.Union[int, str]
    '''

    identifier: str = None
    ''' Unique name used in the code and scripting

    :type: str
    '''

    is_animatable: bool = None
    ''' Property is animatable through RNA

    :type: bool
    '''

    is_argument_optional: bool = None
    ''' True when the property is optional in a Python function implementing an RNA function

    :type: bool
    '''

    is_enum_flag: bool = None
    ''' True when multiple enums

    :type: bool
    '''

    is_hidden: bool = None
    ''' True when the property is hidden

    :type: bool
    '''

    is_library_editable: bool = None
    ''' Property is editable from linked instances (changes not saved)

    :type: bool
    '''

    is_never_none: bool = None
    ''' True when this value can't be set to None

    :type: bool
    '''

    is_output: bool = None
    ''' True when this property is an output value from an RNA function

    :type: bool
    '''

    is_overridable: bool = None
    ''' Property is overridable through RNA

    :type: bool
    '''

    is_readonly: bool = None
    ''' Property is editable through RNA

    :type: bool
    '''

    is_registered: bool = None
    ''' Property is registered as part of type registration

    :type: bool
    '''

    is_registered_optional: bool = None
    ''' Property is optionally registered as part of type registration

    :type: bool
    '''

    is_required: bool = None
    ''' False when this property is an optional argument in an RNA function

    :type: bool
    '''

    is_runtime: bool = None
    ''' Property has been dynamically created at runtime

    :type: bool
    '''

    is_skip_save: bool = None
    ''' True when the property is not saved in presets

    :type: bool
    '''

    name: str = None
    ''' Human readable name

    :type: str
    '''

    srna: 'Struct' = None
    ''' Struct definition used for properties assigned to this item

    :type: 'Struct'
    '''

    subtype: typing.Union[int, str] = None
    ''' Semantic interpretation of the property * NONE None. * FILEPATH File Path. * DIRPATH Directory Path. * FILENAME File Name. * BYTESTRING Byte String. * PASSWORD Password -- A string that is displayed hidden ('\*\*\*\*\*\*\*\*'). * PIXEL Pixel. * UNSIGNED Unsigned. * PERCENTAGE Percentage. * FACTOR Factor. * ANGLE Angle. * TIME Time (Scene Relative) -- Time specified in frames, converted to seconds based on scene frame rate. * TIME_ABSOLUTE Time (Absolute) -- Time specified in seconds, independent of the scene. * DISTANCE Distance. * DISTANCE_CAMERA Camera Distance. * POWER Power. * TEMPERATURE Temperature. * COLOR Color. * TRANSLATION Translation. * DIRECTION Direction. * VELOCITY Velocity. * ACCELERATION Acceleration. * MATRIX Matrix. * EULER Euler Angles. * QUATERNION Quaternion. * AXISANGLE Axis-Angle. * XYZ XYZ. * XYZ_LENGTH XYZ Length. * COLOR_GAMMA Color. * COORDS Coordinates. * LAYER Layer. * LAYER_MEMBER Layer Member.

    :type: typing.Union[int, str]
    '''

    tags: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Subset of tags (defined in parent struct) that are set for this property

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    translation_context: str = None
    ''' Translation context of the property's name

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Data type of the property

    :type: typing.Union[int, str]
    '''

    unit: typing.Union[int, str] = None
    ''' Type of units for this property

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PropertyGroup(bpy_struct):
    ''' Group of ID properties
    '''

    name: str = None
    ''' Unique name used in the code and scripting

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PropertyGroupItem(bpy_struct):
    ''' Property that stores arbitrary, user defined properties
    '''

    collection: typing.Union[typing.Dict[str, 'PropertyGroup'], typing.
                             List['PropertyGroup'],
                             'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'PropertyGroup'], typing.List['PropertyGroup'], 'bpy_prop_collection']
    '''

    double: float = None
    ''' 

    :type: float
    '''

    double_array: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    float: float = None
    ''' 

    :type: float
    '''

    float_array: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    group: 'PropertyGroup' = None
    ''' 

    :type: 'PropertyGroup'
    '''

    id: 'ID' = None
    ''' 

    :type: 'ID'
    '''

    idp_array: typing.Union[typing.Dict[str, 'PropertyGroup'], typing.
                            List['PropertyGroup'],
                            'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'PropertyGroup'], typing.List['PropertyGroup'], 'bpy_prop_collection']
    '''

    int: int = None
    ''' 

    :type: int
    '''

    int_array: typing.List[int] = None
    ''' 

    :type: typing.List[int]
    '''

    string: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Region(bpy_struct):
    ''' Region in a subdivided screen area
    '''

    alignment: typing.Union[int, str] = None
    ''' Alignment of the region within the area * NONE None -- Don't use any fixed alignment, fill available space. * TOP Top. * BOTTOM Bottom. * LEFT Left. * RIGHT Right. * HORIZONTAL_SPLIT Horizontal Split. * VERTICAL_SPLIT Vertical Split. * FLOAT Float -- Region floats on screen, doesn't use any fixed alignment. * QUAD_SPLIT Quad Split -- Region is split horizontally and vertically.

    :type: typing.Union[int, str]
    '''

    data: 'AnyType' = None
    ''' Region specific data (the type depends on the region type)

    :type: 'AnyType'
    '''

    height: int = None
    ''' Region height

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Type of this region

    :type: typing.Union[int, str]
    '''

    view2d: 'View2D' = None
    ''' 2D view of the region

    :type: 'View2D'
    '''

    width: int = None
    ''' Region width

    :type: int
    '''

    x: int = None
    ''' The window relative vertical location of the region

    :type: int
    '''

    y: int = None
    ''' The window relative horizontal location of the region

    :type: int
    '''

    def tag_redraw(self):
        ''' tag_redraw

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RegionView3D(bpy_struct):
    ''' 3D View region data
    '''

    clip_planes: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    is_orthographic_side_view: bool = None
    ''' Is current view an orthographic side view

    :type: bool
    '''

    is_perspective: bool = None
    ''' 

    :type: bool
    '''

    lock_rotation: bool = None
    ''' Lock view rotation of side views to Top/Front/Right

    :type: bool
    '''

    perspective_matrix: typing.List[float] = None
    ''' Current perspective matrix ( window_matrix * view_matrix )

    :type: typing.List[float]
    '''

    show_sync_view: bool = None
    ''' Sync view position between side views

    :type: bool
    '''

    use_box_clip: bool = None
    ''' Clip view contents based on what is visible in other side views

    :type: bool
    '''

    use_clip_planes: bool = None
    ''' 

    :type: bool
    '''

    view_camera_offset: typing.List[float] = None
    ''' View shift in camera view

    :type: typing.List[float]
    '''

    view_camera_zoom: float = None
    ''' Zoom factor in camera view

    :type: float
    '''

    view_distance: float = None
    ''' Distance to the view location

    :type: float
    '''

    view_location: typing.List[float] = None
    ''' View pivot location

    :type: typing.List[float]
    '''

    view_matrix: typing.List[float] = None
    ''' Current view matrix

    :type: typing.List[float]
    '''

    view_perspective: typing.Union[int, str] = None
    ''' View Perspective

    :type: typing.Union[int, str]
    '''

    view_rotation: typing.List[float] = None
    ''' Rotation in quaternions (keep normalized)

    :type: typing.List[float]
    '''

    window_matrix: typing.List[float] = None
    ''' Current window matrix

    :type: typing.List[float]
    '''

    def update(self):
        ''' Recalculate the view matrices

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderEngine(bpy_struct):
    ''' Render engine
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    bl_label: str = None
    ''' 

    :type: str
    '''

    bl_use_alembic_procedural: bool = None
    ''' Support loading Alembic data at render time

    :type: bool
    '''

    bl_use_custom_freestyle: bool = None
    ''' Handles freestyle rendering on its own, instead of delegating it to EEVEE

    :type: bool
    '''

    bl_use_eevee_viewport: bool = None
    ''' Uses Eevee for viewport shading in LookDev shading mode

    :type: bool
    '''

    bl_use_gpu_context: bool = None
    ''' Enable OpenGL context for the render method, for engines that render using OpenGL

    :type: bool
    '''

    bl_use_image_save: bool = None
    ''' Save images/movie to disk while rendering an animation. Disabling image saving is only supported when bl_use_postprocess is also disabled

    :type: bool
    '''

    bl_use_postprocess: bool = None
    ''' Apply compositing on render results

    :type: bool
    '''

    bl_use_preview: bool = None
    ''' Render engine supports being used for rendering previews of materials, lights and worlds

    :type: bool
    '''

    bl_use_shading_nodes_custom: bool = None
    ''' Don't expose Cycles and Eevee shading nodes in the node editor user interface, so own nodes can be used instead

    :type: bool
    '''

    bl_use_spherical_stereo: bool = None
    ''' Support spherical stereo camera models

    :type: bool
    '''

    bl_use_stereo_viewport: bool = None
    ''' Support rendering stereo 3D viewport

    :type: bool
    '''

    camera_override: 'Object' = None
    ''' 

    :type: 'Object'
    '''

    is_animation: bool = None
    ''' 

    :type: bool
    '''

    is_preview: bool = None
    ''' 

    :type: bool
    '''

    layer_override: typing.List[bool] = None
    ''' 

    :type: typing.List[bool]
    '''

    render: 'RenderSettings' = None
    ''' 

    :type: 'RenderSettings'
    '''

    resolution_x: int = None
    ''' 

    :type: int
    '''

    resolution_y: int = None
    ''' 

    :type: int
    '''

    use_highlight_tiles: bool = None
    ''' 

    :type: bool
    '''

    def update(self, data: 'BlendData' = None, depsgraph: 'Depsgraph' = None):
        ''' Export scene data for render

        :param data: 
        :type data: 'BlendData'
        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def render(self, depsgraph: 'Depsgraph'):
        ''' Render scene into an image

        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def render_frame_finish(self):
        ''' Perform finishing operations after all view layers in a frame were rendered

        '''
        pass

    def draw(self, context: 'Context', depsgraph: 'Depsgraph'):
        ''' Draw render image

        :param context: 
        :type context: 'Context'
        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def bake(self, depsgraph: 'Depsgraph', object: 'Object',
             pass_type: typing.Union[int, str], pass_filter: int, width: int,
             height: int):
        ''' Bake passes

        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        :param object: 
        :type object: 'Object'
        :param pass_type: Pass, Pass to bake
        :type pass_type: typing.Union[int, str]
        :param pass_filter: Pass Filter, Filter to combined, diffuse, glossy and transmission passes
        :type pass_filter: int
        :param width: Width, Image width
        :type width: int
        :param height: Height, Image height
        :type height: int
        '''
        pass

    def view_update(self, context: 'Context', depsgraph: 'Depsgraph'):
        ''' Update on data changes for viewport render

        :param context: 
        :type context: 'Context'
        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def view_draw(self, context: 'Context', depsgraph: 'Depsgraph'):
        ''' Draw viewport render

        :param context: 
        :type context: 'Context'
        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def update_script_node(self, node: 'Node' = None):
        ''' Compile shader script node

        :param node: 
        :type node: 'Node'
        '''
        pass

    def update_render_passes(self,
                             scene: 'Scene' = None,
                             renderlayer: 'ViewLayer' = None):
        ''' Update the render passes that will be generated

        :param scene: 
        :type scene: 'Scene'
        :param renderlayer: 
        :type renderlayer: 'ViewLayer'
        '''
        pass

    def tag_redraw(self):
        ''' Request redraw for viewport rendering

        '''
        pass

    def tag_update(self):
        ''' Request update call for viewport rendering

        '''
        pass

    def begin_result(self,
                     x: int,
                     y: int,
                     w: int,
                     h: int,
                     layer: str = "",
                     view: str = "") -> 'RenderResult':
        ''' Create render result to write linear floating-point render layers and passes

        :param x: X
        :type x: int
        :param y: Y
        :type y: int
        :param w: Width
        :type w: int
        :param h: Height
        :type h: int
        :param layer: Layer, Single layer to get render result for
        :type layer: str
        :param view: View, Single view to get render result for
        :type view: str
        :rtype: 'RenderResult'
        :return: Result
        '''
        pass

    def update_result(self, result: 'RenderResult'):
        ''' Signal that pixels have been updated and can be redrawn in the user interface

        :param result: Result
        :type result: 'RenderResult'
        '''
        pass

    def end_result(self,
                   result: 'RenderResult',
                   cancel: bool = False,
                   highlight: bool = False,
                   do_merge_results: bool = False):
        ''' All pixels in the render result have been set and are final

        :param result: Result
        :type result: 'RenderResult'
        :param cancel: Cancel, Don't mark tile as done, don't merge results unless forced
        :type cancel: bool
        :param highlight: Highlight, Don't mark tile as done yet
        :type highlight: bool
        :param do_merge_results: Merge Results, Merge results even if cancel=true
        :type do_merge_results: bool
        '''
        pass

    def add_pass(self, name: str, channels: int, chan_id: str,
                 layer: str = ""):
        ''' Add a pass to the render layer

        :param name: Name, Name of the Pass, without view or channel tag
        :type name: str
        :param channels: Channels
        :type channels: int
        :param chan_id: Channel IDs, Channel names, one character per channel
        :type chan_id: str
        :param layer: Layer, Single layer to add render pass to
        :type layer: str
        '''
        pass

    def get_result(self) -> 'RenderResult':
        ''' Get final result for non-pixel operations

        :rtype: 'RenderResult'
        :return: Result
        '''
        pass

    def test_break(self) -> bool:
        ''' Test if the render operation should been canceled, this is a fast call that should be used regularly for responsiveness

        :rtype: bool
        :return: Break
        '''
        pass

    def pass_by_index_get(self, layer: str, index: int) -> 'RenderPass':
        ''' pass_by_index_get

        :param layer: Layer, Name of render layer to get pass for
        :type layer: str
        :param index: Index, Index of pass to get
        :type index: int
        :rtype: 'RenderPass'
        :return: Index, Index of pass to get
        '''
        pass

    def active_view_get(self) -> str:
        ''' active_view_get

        :rtype: str
        :return: View, Single view active
        '''
        pass

    def active_view_set(self, view: str):
        ''' active_view_set

        :param view: View, Single view to set as active
        :type view: str
        '''
        pass

    def camera_shift_x(self,
                       camera: 'Object',
                       use_spherical_stereo: bool = False) -> float:
        ''' camera_shift_x

        :param camera: 
        :type camera: 'Object'
        :param use_spherical_stereo: Spherical Stereo
        :type use_spherical_stereo: bool
        :rtype: float
        :return: Shift X
        '''
        pass

    def camera_model_matrix(self,
                            camera: 'Object',
                            use_spherical_stereo: bool = False
                            ) -> typing.List[float]:
        ''' camera_model_matrix

        :param camera: 
        :type camera: 'Object'
        :param use_spherical_stereo: Spherical Stereo
        :type use_spherical_stereo: bool
        :rtype: typing.List[float]
        :return: Model Matrix, Normalized camera model matrix
        '''
        pass

    def use_spherical_stereo(self, camera: 'Object') -> bool:
        ''' use_spherical_stereo

        :param camera: 
        :type camera: 'Object'
        :rtype: bool
        :return: Spherical Stereo
        '''
        pass

    def update_stats(self, stats: str, info: str):
        ''' Update and signal to redraw render status text

        :param stats: Stats
        :type stats: str
        :param info: Info
        :type info: str
        '''
        pass

    def frame_set(self, frame: int, subframe: float):
        ''' Evaluate scene at a different frame (for motion blur)

        :param frame: Frame
        :type frame: int
        :param subframe: Subframe
        :type subframe: float
        '''
        pass

    def update_progress(self, progress: float):
        ''' Update progress percentage of render

        :param progress: Percentage of render that's done
        :type progress: float
        '''
        pass

    def update_memory_stats(self,
                            memory_used: float = 0.0,
                            memory_peak: float = 0.0):
        ''' Update memory usage statistics

        :param memory_used: Current memory usage in megabytes
        :type memory_used: float
        :param memory_peak: Peak memory usage in megabytes
        :type memory_peak: float
        '''
        pass

    def report(self, type: typing.Union[typing.Set[int], typing.Set[str]],
               message: str):
        ''' Report info, warning or error messages

        :param type: Type
        :type type: typing.Union[typing.Set[int], typing.Set[str]]
        :param message: Report Message
        :type message: str
        '''
        pass

    def error_set(self, message: str):
        ''' Set error message displaying after the render is finished

        :param message: Report Message
        :type message: str
        '''
        pass

    def bind_display_space_shader(self, scene: 'Scene'):
        ''' Bind GLSL fragment shader that converts linear colors to display space colors using scene color management settings

        :param scene: 
        :type scene: 'Scene'
        '''
        pass

    def unbind_display_space_shader(self):
        ''' Unbind GLSL display space shader, must always be called after binding the shader

        '''
        pass

    def support_display_space_shader(self, scene: 'Scene') -> bool:
        ''' Test if GLSL display space shader is supported for the combination of graphics card and scene settings

        :param scene: 
        :type scene: 'Scene'
        :rtype: bool
        :return: Supported
        '''
        pass

    def get_preview_pixel_size(self, scene: 'Scene') -> int:
        ''' Get the pixel size that should be used for preview rendering

        :param scene: 
        :type scene: 'Scene'
        :rtype: int
        :return: Pixel Size
        '''
        pass

    def free_blender_memory(self):
        ''' Free Blender side memory of render engine

        '''
        pass

    def tile_highlight_set(self, x: int, y: int, width: int, height: int,
                           highlight: bool):
        ''' Set highlighted state of the given tile

        :param x: X
        :type x: int
        :param y: Y
        :type y: int
        :param width: Width
        :type width: int
        :param height: Height
        :type height: int
        :param highlight: Highlight
        :type highlight: bool
        '''
        pass

    def tile_highlight_clear_all(self):
        ''' Clear highlight from all tiles

        '''
        pass

    def register_pass(self, scene: 'Scene', view_layer: 'ViewLayer', name: str,
                      channels: int, chanid: str,
                      type: typing.Union[int, str]):
        ''' Register a render pass that will be part of the render with the current settings

        :param scene: 
        :type scene: 'Scene'
        :param view_layer: 
        :type view_layer: 'ViewLayer'
        :param name: Name
        :type name: str
        :param channels: Channels
        :type channels: int
        :param chanid: Channel IDs
        :type chanid: str
        :param type: Type
        :type type: typing.Union[int, str]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderLayer(bpy_struct):
    name: str = None
    ''' View layer name

    :type: str
    '''

    passes: typing.Union[typing.Dict[str, 'RenderPass'], typing.
                         List['RenderPass'], 'bpy_prop_collection',
                         'RenderPasses'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'RenderPass'], typing.List['RenderPass'], 'bpy_prop_collection', 'RenderPasses']
    '''

    use_ao: bool = None
    ''' Render Ambient Occlusion in this Layer

    :type: bool
    '''

    use_motion_blur: bool = None
    ''' Render motion blur in this Layer, if enabled in the scene

    :type: bool
    '''

    use_pass_ambient_occlusion: bool = None
    ''' Deliver Ambient Occlusion pass

    :type: bool
    '''

    use_pass_combined: bool = None
    ''' Deliver full combined RGBA buffer

    :type: bool
    '''

    use_pass_diffuse_color: bool = None
    ''' Deliver diffuse color pass

    :type: bool
    '''

    use_pass_diffuse_direct: bool = None
    ''' Deliver diffuse direct pass

    :type: bool
    '''

    use_pass_diffuse_indirect: bool = None
    ''' Deliver diffuse indirect pass

    :type: bool
    '''

    use_pass_emit: bool = None
    ''' Deliver emission pass

    :type: bool
    '''

    use_pass_environment: bool = None
    ''' Deliver environment lighting pass

    :type: bool
    '''

    use_pass_glossy_color: bool = None
    ''' Deliver glossy color pass

    :type: bool
    '''

    use_pass_glossy_direct: bool = None
    ''' Deliver glossy direct pass

    :type: bool
    '''

    use_pass_glossy_indirect: bool = None
    ''' Deliver glossy indirect pass

    :type: bool
    '''

    use_pass_material_index: bool = None
    ''' Deliver material index pass

    :type: bool
    '''

    use_pass_mist: bool = None
    ''' Deliver mist factor pass (0.0 to 1.0)

    :type: bool
    '''

    use_pass_normal: bool = None
    ''' Deliver normal pass

    :type: bool
    '''

    use_pass_object_index: bool = None
    ''' Deliver object index pass

    :type: bool
    '''

    use_pass_position: bool = None
    ''' Deliver position pass

    :type: bool
    '''

    use_pass_shadow: bool = None
    ''' Deliver shadow pass

    :type: bool
    '''

    use_pass_subsurface_color: bool = None
    ''' Deliver subsurface color pass

    :type: bool
    '''

    use_pass_subsurface_direct: bool = None
    ''' Deliver subsurface direct pass

    :type: bool
    '''

    use_pass_subsurface_indirect: bool = None
    ''' Deliver subsurface indirect pass

    :type: bool
    '''

    use_pass_transmission_color: bool = None
    ''' Deliver transmission color pass

    :type: bool
    '''

    use_pass_transmission_direct: bool = None
    ''' Deliver transmission direct pass

    :type: bool
    '''

    use_pass_transmission_indirect: bool = None
    ''' Deliver transmission indirect pass

    :type: bool
    '''

    use_pass_uv: bool = None
    ''' Deliver texture UV pass

    :type: bool
    '''

    use_pass_vector: bool = None
    ''' Deliver speed vector pass

    :type: bool
    '''

    use_pass_z: bool = None
    ''' Deliver Z values pass

    :type: bool
    '''

    use_sky: bool = None
    ''' Render Sky in this Layer

    :type: bool
    '''

    use_solid: bool = None
    ''' Render Solid faces in this Layer

    :type: bool
    '''

    use_strand: bool = None
    ''' Render Strands in this Layer

    :type: bool
    '''

    use_volumes: bool = None
    ''' Render volumes in this Layer

    :type: bool
    '''

    def load_from_file(self, filename: str, x: int = 0, y: int = 0):
        ''' Copies the pixels of this renderlayer from an image file

        :param filename: Filename, Filename to load into this render tile, must be no smaller than the renderlayer
        :type filename: str
        :param x: Offset X, Offset the position to copy from if the image is larger than the render layer
        :type x: int
        :param y: Offset Y, Offset the position to copy from if the image is larger than the render layer
        :type y: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderPass(bpy_struct):
    channel_id: str = None
    ''' 

    :type: str
    '''

    channels: int = None
    ''' 

    :type: int
    '''

    fullname: str = None
    ''' 

    :type: str
    '''

    name: str = None
    ''' 

    :type: str
    '''

    rect: float = None
    ''' 

    :type: float
    '''

    view_id: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderPasses(bpy_struct):
    ''' Collection of render passes
    '''

    def find_by_type(self, pass_type: typing.Union[int, str],
                     view: str) -> 'RenderPass':
        ''' Get the render pass for a given type and view

        :param pass_type: Pass
        :type pass_type: typing.Union[int, str]
        :param view: View, Render view to get pass from
        :type view: str
        :rtype: 'RenderPass'
        :return: The matching render pass
        '''
        pass

    def find_by_name(self, name: str, view: str) -> 'RenderPass':
        ''' Get the render pass for a given name and view

        :param name: Pass
        :type name: str
        :param view: View, Render view to get pass from
        :type view: str
        :rtype: 'RenderPass'
        :return: The matching render pass
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderResult(bpy_struct):
    ''' Result of rendering, including all layers and passes
    '''

    layers: typing.Union[typing.Dict[str, 'RenderLayer'], typing.
                         List['RenderLayer'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'RenderLayer'], typing.List['RenderLayer'], 'bpy_prop_collection']
    '''

    resolution_x: int = None
    ''' 

    :type: int
    '''

    resolution_y: int = None
    ''' 

    :type: int
    '''

    views: typing.Union[typing.Dict[str, 'RenderView'], typing.
                        List['RenderView'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'RenderView'], typing.List['RenderView'], 'bpy_prop_collection']
    '''

    def load_from_file(self, filename: str):
        ''' Copies the pixels of this render result from an image file

        :param filename: File Name, Filename to load into this render tile, must be no smaller than the render result
        :type filename: str
        '''
        pass

    def stamp_data_add_field(self, field: str, value: str):
        ''' Add engine-specific stamp data to the result

        :param field: Field, Name of the stamp field to add
        :type field: str
        :param value: Value, Value of the stamp data
        :type value: str
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderSettings(bpy_struct):
    ''' Rendering settings for a Scene data-block
    '''

    bake: 'BakeSettings' = None
    ''' 

    :type: 'BakeSettings'
    '''

    bake_bias: float = None
    ''' Bias towards faces further away from the object (in blender units)

    :type: float
    '''

    bake_margin: int = None
    ''' Extends the baked result as a post process filter

    :type: int
    '''

    bake_samples: int = None
    ''' Number of samples used for ambient occlusion baking from multires

    :type: int
    '''

    bake_type: typing.Union[int, str] = None
    ''' Choose shading information to bake into the image * NORMALS Normals -- Bake normals. * DISPLACEMENT Displacement -- Bake displacement.

    :type: typing.Union[int, str]
    '''

    bake_user_scale: float = None
    ''' Instead of automatically normalizing to the range 0 to 1, apply a user scale to the derivative map

    :type: float
    '''

    border_max_x: float = None
    ''' Maximum X value for the render region

    :type: float
    '''

    border_max_y: float = None
    ''' Maximum Y value for the render region

    :type: float
    '''

    border_min_x: float = None
    ''' Minimum X value for the render region

    :type: float
    '''

    border_min_y: float = None
    ''' Minimum Y value for the render region

    :type: float
    '''

    dither_intensity: float = None
    ''' Amount of dithering noise added to the rendered image to break up banding

    :type: float
    '''

    engine: typing.Union[int, str] = None
    ''' Engine to use for rendering

    :type: typing.Union[int, str]
    '''

    ffmpeg: 'FFmpegSettings' = None
    ''' FFmpeg related settings for the scene

    :type: 'FFmpegSettings'
    '''

    file_extension: str = None
    ''' The file extension used for saving renders

    :type: str
    '''

    filepath: str = None
    ''' Directory/name to save animations, # characters defines the position and length of frame numbers

    :type: str
    '''

    film_transparent: bool = None
    ''' World background is transparent, for compositing the render over another background

    :type: bool
    '''

    filter_size: float = None
    ''' Width over which the reconstruction filter combines samples

    :type: float
    '''

    fps: int = None
    ''' Framerate, expressed in frames per second

    :type: int
    '''

    fps_base: float = None
    ''' Framerate base

    :type: float
    '''

    frame_map_new: int = None
    ''' How many frames the Map Old will last

    :type: int
    '''

    frame_map_old: int = None
    ''' Old mapping value in frames

    :type: int
    '''

    hair_subdiv: int = None
    ''' Additional subdivision along the hair

    :type: int
    '''

    hair_type: typing.Union[int, str] = None
    ''' Hair shape type

    :type: typing.Union[int, str]
    '''

    has_multiple_engines: bool = None
    ''' More than one rendering engine is available

    :type: bool
    '''

    image_settings: 'ImageFormatSettings' = None
    ''' 

    :type: 'ImageFormatSettings'
    '''

    is_movie_format: bool = None
    ''' When true the format is a movie

    :type: bool
    '''

    line_thickness: float = None
    ''' Line thickness in pixels

    :type: float
    '''

    line_thickness_mode: typing.Union[int, str] = None
    ''' Line thickness mode for Freestyle line drawing * ABSOLUTE Absolute -- Specify unit line thickness in pixels. * RELATIVE Relative -- Unit line thickness is scaled by the proportion of the present vertical image resolution to 480 pixels.

    :type: typing.Union[int, str]
    '''

    metadata_input: typing.Union[int, str] = None
    ''' Where to take the metadata from * SCENE Scene -- Use metadata from the current scene. * STRIPS Sequencer Strips -- Use metadata from the strips in the sequencer.

    :type: typing.Union[int, str]
    '''

    motion_blur_shutter: float = None
    ''' Time taken in frames between shutter open and close

    :type: float
    '''

    motion_blur_shutter_curve: 'CurveMapping' = None
    ''' Curve defining the shutter's openness over time

    :type: 'CurveMapping'
    '''

    pixel_aspect_x: float = None
    ''' Horizontal aspect ratio - for anamorphic or non-square pixel output

    :type: float
    '''

    pixel_aspect_y: float = None
    ''' Vertical aspect ratio - for anamorphic or non-square pixel output

    :type: float
    '''

    preview_pixel_size: typing.Union[int, str] = None
    ''' Pixel size for viewport rendering * AUTO Automatic -- Automatic pixel size, depends on the user interface scale. * 1 1x -- Render at full resolution. * 2 2x -- Render at 50% resolution. * 4 4x -- Render at 25% resolution. * 8 8x -- Render at 12.5% resolution.

    :type: typing.Union[int, str]
    '''

    resolution_percentage: int = None
    ''' Percentage scale for render resolution

    :type: int
    '''

    resolution_x: int = None
    ''' Number of horizontal pixels in the rendered image

    :type: int
    '''

    resolution_y: int = None
    ''' Number of vertical pixels in the rendered image

    :type: int
    '''

    sequencer_gl_preview: typing.Union[int, str] = None
    ''' Display method used in the sequencer view * WIREFRAME Wireframe -- Display the object as wire edges. * SOLID Solid -- Display in solid mode. * MATERIAL Material Preview -- Display in Material Preview mode. * RENDERED Rendered -- Display render preview.

    :type: typing.Union[int, str]
    '''

    simplify_child_particles: float = None
    ''' Global child particles percentage

    :type: float
    '''

    simplify_child_particles_render: float = None
    ''' Global child particles percentage during rendering

    :type: float
    '''

    simplify_gpencil: bool = None
    ''' Simplify Grease Pencil drawing

    :type: bool
    '''

    simplify_gpencil_antialiasing: bool = None
    ''' Use Antialiasing to smooth stroke edges

    :type: bool
    '''

    simplify_gpencil_modifier: bool = None
    ''' Display modifiers

    :type: bool
    '''

    simplify_gpencil_onplay: bool = None
    ''' Simplify Grease Pencil only during animation playback

    :type: bool
    '''

    simplify_gpencil_shader_fx: bool = None
    ''' Display Shader Effects

    :type: bool
    '''

    simplify_gpencil_tint: bool = None
    ''' Display layer tint

    :type: bool
    '''

    simplify_gpencil_view_fill: bool = None
    ''' Display fill strokes in the viewport

    :type: bool
    '''

    simplify_subdivision: int = None
    ''' Global maximum subdivision level

    :type: int
    '''

    simplify_subdivision_render: int = None
    ''' Global maximum subdivision level during rendering

    :type: int
    '''

    simplify_volumes: float = None
    ''' Resolution percentage of volume objects in viewport

    :type: float
    '''

    stamp_background: typing.List[float] = None
    ''' Color to use behind stamp text

    :type: typing.List[float]
    '''

    stamp_font_size: int = None
    ''' Size of the font used when rendering stamp text

    :type: int
    '''

    stamp_foreground: typing.List[float] = None
    ''' Color to use for stamp text

    :type: typing.List[float]
    '''

    stamp_note_text: str = None
    ''' Custom text to appear in the stamp note

    :type: str
    '''

    stereo_views: typing.Union[typing.Dict[str, 'SceneRenderView'], typing.
                               List['SceneRenderView'],
                               'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'SceneRenderView'], typing.List['SceneRenderView'], 'bpy_prop_collection']
    '''

    threads: int = None
    ''' Maximum number of CPU cores to use simultaneously while rendering (for multi-core/CPU systems)

    :type: int
    '''

    threads_mode: typing.Union[int, str] = None
    ''' Determine the amount of render threads used * AUTO Auto-Detect -- Automatically determine the number of threads, based on CPUs. * FIXED Fixed -- Manually determine the number of threads.

    :type: typing.Union[int, str]
    '''

    use_bake_clear: bool = None
    ''' Clear Images before baking

    :type: bool
    '''

    use_bake_lores_mesh: bool = None
    ''' Calculate heights against unsubdivided low resolution mesh

    :type: bool
    '''

    use_bake_multires: bool = None
    ''' Bake directly from multires object

    :type: bool
    '''

    use_bake_selected_to_active: bool = None
    ''' Bake shading on the surface of selected objects to the active object

    :type: bool
    '''

    use_bake_user_scale: bool = None
    ''' Use a user scale for the derivative map

    :type: bool
    '''

    use_border: bool = None
    ''' Render a user-defined render region, within the frame size

    :type: bool
    '''

    use_compositing: bool = None
    ''' Process the render result through the compositing pipeline, if compositing nodes are enabled

    :type: bool
    '''

    use_crop_to_border: bool = None
    ''' Crop the rendered frame to the defined render region size

    :type: bool
    '''

    use_file_extension: bool = None
    ''' Add the file format extensions to the rendered file name (eg: filename + .jpg)

    :type: bool
    '''

    use_freestyle: bool = None
    ''' Draw stylized strokes using Freestyle

    :type: bool
    '''

    use_high_quality_normals: bool = None
    ''' Use high quality tangent space at the cost of lower performance

    :type: bool
    '''

    use_lock_interface: bool = None
    ''' Lock interface during rendering in favor of giving more memory to the renderer

    :type: bool
    '''

    use_motion_blur: bool = None
    ''' Use multi-sampled 3D scene motion blur

    :type: bool
    '''

    use_multiview: bool = None
    ''' Use multiple views in the scene

    :type: bool
    '''

    use_overwrite: bool = None
    ''' Overwrite existing files while rendering

    :type: bool
    '''

    use_persistent_data: bool = None
    ''' Keep render data around for faster re-renders and animation renders, at the cost of increased memory usage

    :type: bool
    '''

    use_placeholder: bool = None
    ''' Create empty placeholder files while rendering frames (similar to Unix 'touch')

    :type: bool
    '''

    use_render_cache: bool = None
    ''' Save render cache to EXR files (useful for heavy compositing, Note: affects indirectly rendered scenes)

    :type: bool
    '''

    use_sequencer: bool = None
    ''' Process the render (and composited) result through the video sequence editor pipeline, if sequencer strips exist

    :type: bool
    '''

    use_sequencer_override_scene_strip: bool = None
    ''' Use workbench render settings from the sequencer scene, instead of each individual scene used in the strip

    :type: bool
    '''

    use_simplify: bool = None
    ''' Enable simplification of scene for quicker preview renders

    :type: bool
    '''

    use_single_layer: bool = None
    ''' Only render the active layer. Only affects rendering from the interface, ignored for rendering from command line

    :type: bool
    '''

    use_spherical_stereo: bool = None
    ''' Active render engine supports spherical stereo rendering

    :type: bool
    '''

    use_stamp: bool = None
    ''' Render the stamp info text in the rendered image

    :type: bool
    '''

    use_stamp_camera: bool = None
    ''' Include the name of the active camera in image metadata

    :type: bool
    '''

    use_stamp_date: bool = None
    ''' Include the current date in image/video metadata

    :type: bool
    '''

    use_stamp_filename: bool = None
    ''' Include the .blend filename in image/video metadata

    :type: bool
    '''

    use_stamp_frame: bool = None
    ''' Include the frame number in image metadata

    :type: bool
    '''

    use_stamp_frame_range: bool = None
    ''' Include the rendered frame range in image/video metadata

    :type: bool
    '''

    use_stamp_hostname: bool = None
    ''' Include the hostname of the machine that rendered the frame

    :type: bool
    '''

    use_stamp_labels: bool = None
    ''' Display stamp labels ("Camera" in front of camera name, etc.)

    :type: bool
    '''

    use_stamp_lens: bool = None
    ''' Include the active camera's lens in image metadata

    :type: bool
    '''

    use_stamp_marker: bool = None
    ''' Include the name of the last marker in image metadata

    :type: bool
    '''

    use_stamp_memory: bool = None
    ''' Include the peak memory usage in image metadata

    :type: bool
    '''

    use_stamp_note: bool = None
    ''' Include a custom note in image/video metadata

    :type: bool
    '''

    use_stamp_render_time: bool = None
    ''' Include the render time in image metadata

    :type: bool
    '''

    use_stamp_scene: bool = None
    ''' Include the name of the active scene in image/video metadata

    :type: bool
    '''

    use_stamp_sequencer_strip: bool = None
    ''' Include the name of the foreground sequence strip in image metadata

    :type: bool
    '''

    use_stamp_time: bool = None
    ''' Include the rendered frame timecode as HH:MM:SS.FF in image metadata

    :type: bool
    '''

    views: typing.Union[typing.Dict[str, 'SceneRenderView'], typing.
                        List['SceneRenderView'], 'bpy_prop_collection',
                        'RenderViews'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'SceneRenderView'], typing.List['SceneRenderView'], 'bpy_prop_collection', 'RenderViews']
    '''

    views_format: typing.Union[int, str] = None
    ''' * STEREO_3D Stereo 3D -- Single stereo camera system, adjust the stereo settings in the camera panel. * MULTIVIEW Multi-View -- Multi camera system, adjust the cameras individually.

    :type: typing.Union[int, str]
    '''

    def frame_path(self,
                   frame: int = -2147483648,
                   preview: bool = False,
                   view: str = "") -> str:
        ''' Return the absolute path to the filename to be written for a given frame

        :param frame: Frame number to use, if unset the current frame will be used
        :type frame: int
        :param preview: Preview, Use preview range
        :type preview: bool
        :param view: View, The name of the view to use to replace the "%" chars
        :type view: str
        :rtype: str
        :return: File Path, The resulting filepath from the scenes render settings
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderSlot(bpy_struct):
    ''' Parameters defining the render slot
    '''

    name: str = None
    ''' Render slot name

    :type: str
    '''

    def clear(self, iuser: 'ImageUser'):
        ''' Clear the render slot

        :param iuser: ImageUser
        :type iuser: 'ImageUser'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderSlots(bpy_struct):
    ''' Collection of render layers
    '''

    active: 'RenderSlot' = None
    ''' Active render slot of the image

    :type: 'RenderSlot'
    '''

    active_index: int = None
    ''' Active render slot of the image

    :type: int
    '''

    def new(self, name: str = "") -> 'RenderSlot':
        ''' Add a render slot to the image

        :param name: Name, New name for the render slot
        :type name: str
        :rtype: 'RenderSlot'
        :return: Newly created render layer
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderView(bpy_struct):
    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RenderViews(bpy_struct):
    ''' Collection of render views
    '''

    active: 'SceneRenderView' = None
    ''' Active Render View

    :type: 'SceneRenderView'
    '''

    active_index: int = None
    ''' Active index in render view array

    :type: int
    '''

    def new(self, name: str) -> 'SceneRenderView':
        ''' Add a render view to scene

        :param name: New name for the marker (not unique)
        :type name: str
        :rtype: 'SceneRenderView'
        :return: Newly created render view
        '''
        pass

    def remove(self, view: 'SceneRenderView'):
        ''' Remove a render view

        :param view: Render view to remove
        :type view: 'SceneRenderView'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RigidBodyConstraint(bpy_struct):
    ''' Constraint influencing Objects inside Rigid Body Simulation
    '''

    breaking_threshold: float = None
    ''' Impulse threshold that must be reached for the constraint to break

    :type: float
    '''

    disable_collisions: bool = None
    ''' Disable collisions between constrained rigid bodies

    :type: bool
    '''

    enabled: bool = None
    ''' Enable this constraint

    :type: bool
    '''

    limit_ang_x_lower: float = None
    ''' Lower limit of X axis rotation

    :type: float
    '''

    limit_ang_x_upper: float = None
    ''' Upper limit of X axis rotation

    :type: float
    '''

    limit_ang_y_lower: float = None
    ''' Lower limit of Y axis rotation

    :type: float
    '''

    limit_ang_y_upper: float = None
    ''' Upper limit of Y axis rotation

    :type: float
    '''

    limit_ang_z_lower: float = None
    ''' Lower limit of Z axis rotation

    :type: float
    '''

    limit_ang_z_upper: float = None
    ''' Upper limit of Z axis rotation

    :type: float
    '''

    limit_lin_x_lower: float = None
    ''' Lower limit of X axis translation

    :type: float
    '''

    limit_lin_x_upper: float = None
    ''' Upper limit of X axis translation

    :type: float
    '''

    limit_lin_y_lower: float = None
    ''' Lower limit of Y axis translation

    :type: float
    '''

    limit_lin_y_upper: float = None
    ''' Upper limit of Y axis translation

    :type: float
    '''

    limit_lin_z_lower: float = None
    ''' Lower limit of Z axis translation

    :type: float
    '''

    limit_lin_z_upper: float = None
    ''' Upper limit of Z axis translation

    :type: float
    '''

    motor_ang_max_impulse: float = None
    ''' Maximum angular motor impulse

    :type: float
    '''

    motor_ang_target_velocity: float = None
    ''' Target angular motor velocity

    :type: float
    '''

    motor_lin_max_impulse: float = None
    ''' Maximum linear motor impulse

    :type: float
    '''

    motor_lin_target_velocity: float = None
    ''' Target linear motor velocity

    :type: float
    '''

    object1: 'Object' = None
    ''' First Rigid Body Object to be constrained

    :type: 'Object'
    '''

    object2: 'Object' = None
    ''' Second Rigid Body Object to be constrained

    :type: 'Object'
    '''

    solver_iterations: int = None
    ''' Number of constraint solver iterations made per simulation step (higher values are more accurate but slower)

    :type: int
    '''

    spring_damping_ang_x: float = None
    ''' Damping on the X rotational axis

    :type: float
    '''

    spring_damping_ang_y: float = None
    ''' Damping on the Y rotational axis

    :type: float
    '''

    spring_damping_ang_z: float = None
    ''' Damping on the Z rotational axis

    :type: float
    '''

    spring_damping_x: float = None
    ''' Damping on the X axis

    :type: float
    '''

    spring_damping_y: float = None
    ''' Damping on the Y axis

    :type: float
    '''

    spring_damping_z: float = None
    ''' Damping on the Z axis

    :type: float
    '''

    spring_stiffness_ang_x: float = None
    ''' Stiffness on the X rotational axis

    :type: float
    '''

    spring_stiffness_ang_y: float = None
    ''' Stiffness on the Y rotational axis

    :type: float
    '''

    spring_stiffness_ang_z: float = None
    ''' Stiffness on the Z rotational axis

    :type: float
    '''

    spring_stiffness_x: float = None
    ''' Stiffness on the X axis

    :type: float
    '''

    spring_stiffness_y: float = None
    ''' Stiffness on the Y axis

    :type: float
    '''

    spring_stiffness_z: float = None
    ''' Stiffness on the Z axis

    :type: float
    '''

    spring_type: typing.Union[int, str] = None
    ''' Which implementation of spring to use * SPRING1 Blender 2.7 -- Spring implementation used in blender 2.7. Damping is capped at 1.0. * SPRING2 Blender 2.8 -- New implementation available since 2.8.

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' Type of Rigid Body Constraint * FIXED Fixed -- Glue rigid bodies together. * POINT Point -- Constrain rigid bodies to move around common pivot point. * HINGE Hinge -- Restrict rigid body rotation to one axis. * SLIDER Slider -- Restrict rigid body translation to one axis. * PISTON Piston -- Restrict rigid body translation and rotation to one axis. * GENERIC Generic -- Restrict translation and rotation to specified axes. * GENERIC_SPRING Generic Spring -- Restrict translation and rotation to specified axes with springs. * MOTOR Motor -- Drive rigid body around or along an axis.

    :type: typing.Union[int, str]
    '''

    use_breaking: bool = None
    ''' Constraint can be broken if it receives an impulse above the threshold

    :type: bool
    '''

    use_limit_ang_x: bool = None
    ''' Limit rotation around X axis

    :type: bool
    '''

    use_limit_ang_y: bool = None
    ''' Limit rotation around Y axis

    :type: bool
    '''

    use_limit_ang_z: bool = None
    ''' Limit rotation around Z axis

    :type: bool
    '''

    use_limit_lin_x: bool = None
    ''' Limit translation on X axis

    :type: bool
    '''

    use_limit_lin_y: bool = None
    ''' Limit translation on Y axis

    :type: bool
    '''

    use_limit_lin_z: bool = None
    ''' Limit translation on Z axis

    :type: bool
    '''

    use_motor_ang: bool = None
    ''' Enable angular motor

    :type: bool
    '''

    use_motor_lin: bool = None
    ''' Enable linear motor

    :type: bool
    '''

    use_override_solver_iterations: bool = None
    ''' Override the number of solver iterations for this constraint

    :type: bool
    '''

    use_spring_ang_x: bool = None
    ''' Enable spring on X rotational axis

    :type: bool
    '''

    use_spring_ang_y: bool = None
    ''' Enable spring on Y rotational axis

    :type: bool
    '''

    use_spring_ang_z: bool = None
    ''' Enable spring on Z rotational axis

    :type: bool
    '''

    use_spring_x: bool = None
    ''' Enable spring on X axis

    :type: bool
    '''

    use_spring_y: bool = None
    ''' Enable spring on Y axis

    :type: bool
    '''

    use_spring_z: bool = None
    ''' Enable spring on Z axis

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RigidBodyObject(bpy_struct):
    ''' Settings for object participating in Rigid Body Simulation
    '''

    angular_damping: float = None
    ''' Amount of angular velocity that is lost over time

    :type: float
    '''

    collision_collections: typing.List[bool] = None
    ''' Collision collections rigid body belongs to

    :type: typing.List[bool]
    '''

    collision_margin: float = None
    ''' Threshold of distance near surface where collisions are still considered (best results when non-zero)

    :type: float
    '''

    collision_shape: typing.Union[int, str] = None
    ''' Collision Shape of object in Rigid Body Simulations * BOX Box -- Box-like shapes (i.e. cubes), including planes (i.e. ground planes). * SPHERE Sphere. * CAPSULE Capsule. * CYLINDER Cylinder. * CONE Cone. * CONVEX_HULL Convex Hull -- A mesh-like surface encompassing (i.e. shrinkwrap over) all vertices (best results with fewer vertices). * MESH Mesh -- Mesh consisting of triangles only, allowing for more detailed interactions than convex hulls. * COMPOUND Compound Parent -- Combines all of its direct rigid body children into one rigid object.

    :type: typing.Union[int, str]
    '''

    deactivate_angular_velocity: float = None
    ''' Angular Velocity below which simulation stops simulating object

    :type: float
    '''

    deactivate_linear_velocity: float = None
    ''' Linear Velocity below which simulation stops simulating object

    :type: float
    '''

    enabled: bool = None
    ''' Rigid Body actively participates to the simulation

    :type: bool
    '''

    friction: float = None
    ''' Resistance of object to movement

    :type: float
    '''

    kinematic: bool = None
    ''' Allow rigid body to be controlled by the animation system

    :type: bool
    '''

    linear_damping: float = None
    ''' Amount of linear velocity that is lost over time

    :type: float
    '''

    mass: float = None
    ''' How much the object 'weighs' irrespective of gravity

    :type: float
    '''

    mesh_source: typing.Union[int, str] = None
    ''' Source of the mesh used to create collision shape * BASE Base -- Base mesh. * DEFORM Deform -- Deformations (shape keys, deform modifiers). * FINAL Final -- All modifiers.

    :type: typing.Union[int, str]
    '''

    restitution: float = None
    ''' Tendency of object to bounce after colliding with another (0 = stays still, 1 = perfectly elastic)

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Role of object in Rigid Body Simulations * ACTIVE Active -- Object is directly controlled by simulation results. * PASSIVE Passive -- Object is directly controlled by animation system.

    :type: typing.Union[int, str]
    '''

    use_deactivation: bool = None
    ''' Enable deactivation of resting rigid bodies (increases performance and stability but can cause glitches)

    :type: bool
    '''

    use_deform: bool = None
    ''' Rigid body deforms during simulation

    :type: bool
    '''

    use_margin: bool = None
    ''' Use custom collision margin (some shapes will have a visible gap around them)

    :type: bool
    '''

    use_start_deactivated: bool = None
    ''' Deactivate rigid body at the start of the simulation

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RigidBodyWorld(bpy_struct):
    ''' Self-contained rigid body simulation environment and settings
    '''

    collection: 'Collection' = None
    ''' Collection containing objects participating in this simulation

    :type: 'Collection'
    '''

    constraints: 'Collection' = None
    ''' Collection containing rigid body constraint objects

    :type: 'Collection'
    '''

    effector_weights: 'EffectorWeights' = None
    ''' 

    :type: 'EffectorWeights'
    '''

    enabled: bool = None
    ''' Simulation will be evaluated

    :type: bool
    '''

    point_cache: 'PointCache' = None
    ''' 

    :type: 'PointCache'
    '''

    solver_iterations: int = None
    ''' Number of constraint solver iterations made per simulation step (higher values are more accurate but slower)

    :type: int
    '''

    substeps_per_frame: int = None
    ''' Number of simulation steps taken per frame (higher values are more accurate but slower)

    :type: int
    '''

    time_scale: float = None
    ''' Change the speed of the simulation

    :type: float
    '''

    use_split_impulse: bool = None
    ''' Reduce extra velocity that can build up when objects collide (lowers simulation stability a little so use only when necessary)

    :type: bool
    '''

    def convex_sweep_test(self, object: 'Object', start: typing.List[float],
                          end: typing.List[float]):
        ''' Sweep test convex rigidbody against the current rigidbody world

        :param object: Rigidbody object with a convex collision shape
        :type object: 'Object'
        :param start: 
        :type start: typing.List[float]
        :param end: 
        :type end: typing.List[float]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SPHFluidSettings(bpy_struct):
    ''' Settings for particle fluids physics
    '''

    buoyancy: float = None
    ''' Artificial buoyancy force in negative gravity direction based on pressure differences inside the fluid

    :type: float
    '''

    fluid_radius: float = None
    ''' Fluid interaction radius

    :type: float
    '''

    linear_viscosity: float = None
    ''' Linear viscosity

    :type: float
    '''

    plasticity: float = None
    ''' How much the spring rest length can change after the elastic limit is crossed

    :type: float
    '''

    repulsion: float = None
    ''' How strongly the fluid tries to keep from clustering (factor of stiffness)

    :type: float
    '''

    rest_density: float = None
    ''' Fluid rest density

    :type: float
    '''

    rest_length: float = None
    ''' Spring rest length (factor of particle radius)

    :type: float
    '''

    solver: typing.Union[int, str] = None
    ''' The code used to calculate internal forces on particles * DDR Double-Density -- An artistic solver with strong surface tension effects (original). * CLASSICAL Classical -- A more physically-accurate solver.

    :type: typing.Union[int, str]
    '''

    spring_force: float = None
    ''' Spring force

    :type: float
    '''

    spring_frames: int = None
    ''' Create springs for this number of frames since particles birth (0 is always)

    :type: int
    '''

    stiff_viscosity: float = None
    ''' Creates viscosity for expanding fluid

    :type: float
    '''

    stiffness: float = None
    ''' How incompressible the fluid is (speed of sound)

    :type: float
    '''

    use_factor_density: bool = None
    ''' Density is calculated as a factor of default density (depends on particle size)

    :type: bool
    '''

    use_factor_radius: bool = None
    ''' Interaction radius is a factor of 4 * particle size

    :type: bool
    '''

    use_factor_repulsion: bool = None
    ''' Repulsion is a factor of stiffness

    :type: bool
    '''

    use_factor_rest_length: bool = None
    ''' Spring rest length is a factor of 2 * particle size

    :type: bool
    '''

    use_factor_stiff_viscosity: bool = None
    ''' Stiff viscosity is a factor of normal viscosity

    :type: bool
    '''

    use_initial_rest_length: bool = None
    ''' Use the initial length as spring rest length instead of 2 * particle size

    :type: bool
    '''

    use_viscoelastic_springs: bool = None
    ''' Use viscoelastic springs instead of Hooke's springs

    :type: bool
    '''

    yield_ratio: float = None
    ''' How much the spring has to be stretched/compressed in order to change its rest length

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SceneDisplay(bpy_struct):
    ''' Scene display settings for 3D viewport
    '''

    light_direction: typing.List[float] = None
    ''' Direction of the light for shadows and highlights

    :type: typing.List[float]
    '''

    matcap_ssao_attenuation: float = None
    ''' Attenuation constant

    :type: float
    '''

    matcap_ssao_distance: float = None
    ''' Distance of object that contribute to the Cavity/Edge effect

    :type: float
    '''

    matcap_ssao_samples: int = None
    ''' Number of samples

    :type: int
    '''

    render_aa: typing.Union[int, str] = None
    ''' Method of anti-aliasing when rendering final image * OFF No Anti-Aliasing -- Scene will be rendering without any anti-aliasing. * FXAA Single Pass Anti-Aliasing -- Scene will be rendered using a single pass anti-aliasing method (FXAA). * 5 5 Samples -- Scene will be rendered using 5 anti-aliasing samples. * 8 8 Samples -- Scene will be rendered using 8 anti-aliasing samples. * 11 11 Samples -- Scene will be rendered using 11 anti-aliasing samples. * 16 16 Samples -- Scene will be rendered using 16 anti-aliasing samples. * 32 32 Samples -- Scene will be rendered using 32 anti-aliasing samples.

    :type: typing.Union[int, str]
    '''

    shading: 'View3DShading' = None
    ''' Shading settings for OpenGL render engine

    :type: 'View3DShading'
    '''

    shadow_focus: float = None
    ''' Shadow factor hardness

    :type: float
    '''

    shadow_shift: float = None
    ''' Shadow termination angle

    :type: float
    '''

    viewport_aa: typing.Union[int, str] = None
    ''' Method of anti-aliasing when rendering 3d viewport * OFF No Anti-Aliasing -- Scene will be rendering without any anti-aliasing. * FXAA Single Pass Anti-Aliasing -- Scene will be rendered using a single pass anti-aliasing method (FXAA). * 5 5 Samples -- Scene will be rendered using 5 anti-aliasing samples. * 8 8 Samples -- Scene will be rendered using 8 anti-aliasing samples. * 11 11 Samples -- Scene will be rendered using 11 anti-aliasing samples. * 16 16 Samples -- Scene will be rendered using 16 anti-aliasing samples. * 32 32 Samples -- Scene will be rendered using 32 anti-aliasing samples.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SceneEEVEE(bpy_struct):
    ''' Scene display settings for 3D viewport
    '''

    bloom_clamp: float = None
    ''' Maximum intensity a bloom pixel can have (0 to disabled)

    :type: float
    '''

    bloom_color: typing.List[float] = None
    ''' Color applied to the bloom effect

    :type: typing.List[float]
    '''

    bloom_intensity: float = None
    ''' Blend factor

    :type: float
    '''

    bloom_knee: float = None
    ''' Makes transition between under/over-threshold gradual

    :type: float
    '''

    bloom_radius: float = None
    ''' Bloom spread distance

    :type: float
    '''

    bloom_threshold: float = None
    ''' Filters out pixels under this level of brightness

    :type: float
    '''

    bokeh_denoise_fac: float = None
    ''' Amount of flicker removal applied to bokeh highlights

    :type: float
    '''

    bokeh_max_size: float = None
    ''' Max size of the bokeh shape for the depth of field (lower is faster)

    :type: float
    '''

    bokeh_neighbor_max: float = None
    ''' Maximum brightness to consider when rejecting bokeh sprites based on neighborhood (lower is faster)

    :type: float
    '''

    bokeh_overblur: float = None
    ''' Apply blur to each jittered sample to reduce under-sampling artifacts

    :type: float
    '''

    bokeh_threshold: float = None
    ''' Brightness threshold for using sprite base depth of field

    :type: float
    '''

    gi_auto_bake: bool = None
    ''' Auto bake indirect lighting when editing probes

    :type: bool
    '''

    gi_cache_info: str = None
    ''' Info on current cache status

    :type: str
    '''

    gi_cubemap_display_size: float = None
    ''' Size of the cubemap spheres to debug captured light

    :type: float
    '''

    gi_cubemap_resolution: typing.Union[int, str] = None
    ''' Size of every cubemaps

    :type: typing.Union[int, str]
    '''

    gi_diffuse_bounces: int = None
    ''' Number of time the light is reinjected inside light grids, 0 disable indirect diffuse light

    :type: int
    '''

    gi_filter_quality: float = None
    ''' Take more samples during cubemap filtering to remove artifacts

    :type: float
    '''

    gi_glossy_clamp: float = None
    ''' Clamp pixel intensity to reduce noise inside glossy reflections from reflection cubemaps (0 to disabled)

    :type: float
    '''

    gi_irradiance_display_size: float = None
    ''' Size of the irradiance sample spheres to debug captured light

    :type: float
    '''

    gi_irradiance_smoothing: float = None
    ''' Smoother irradiance interpolation but introduce light bleeding

    :type: float
    '''

    gi_show_cubemaps: bool = None
    ''' Display captured cubemaps in the viewport

    :type: bool
    '''

    gi_show_irradiance: bool = None
    ''' Display irradiance samples in the viewport

    :type: bool
    '''

    gi_visibility_resolution: typing.Union[int, str] = None
    ''' Size of the shadow map applied to each irradiance sample

    :type: typing.Union[int, str]
    '''

    gtao_distance: float = None
    ''' Distance of object that contribute to the ambient occlusion effect

    :type: float
    '''

    gtao_factor: float = None
    ''' Factor for ambient occlusion blending

    :type: float
    '''

    gtao_quality: float = None
    ''' Precision of the horizon search

    :type: float
    '''

    light_threshold: float = None
    ''' Minimum light intensity for a light to contribute to the lighting

    :type: float
    '''

    motion_blur_depth_scale: float = None
    ''' Lower values will reduce background bleeding onto foreground elements

    :type: float
    '''

    motion_blur_max: int = None
    ''' Maximum blur distance a pixel can spread over

    :type: int
    '''

    motion_blur_position: typing.Union[int, str] = None
    ''' Offset for the shutter's time interval, allows to change the motion blur trails * START Start on Frame -- The shutter opens at the current frame. * CENTER Center on Frame -- The shutter is open during the current frame. * END End on Frame -- The shutter closes at the current frame.

    :type: typing.Union[int, str]
    '''

    motion_blur_shutter: float = None
    ''' Time taken in frames between shutter open and close

    :type: float
    '''

    motion_blur_steps: int = None
    ''' Controls accuracy of motion blur, more steps means longer render time

    :type: int
    '''

    overscan_size: float = None
    ''' Percentage of render size to add as overscan to the internal render buffers

    :type: float
    '''

    shadow_cascade_size: typing.Union[int, str] = None
    ''' Size of sun light shadow maps

    :type: typing.Union[int, str]
    '''

    shadow_cube_size: typing.Union[int, str] = None
    ''' Size of point and area light shadow maps

    :type: typing.Union[int, str]
    '''

    ssr_border_fade: float = None
    ''' Screen percentage used to fade the SSR

    :type: float
    '''

    ssr_firefly_fac: float = None
    ''' Clamp pixel intensity to remove noise (0 to disabled)

    :type: float
    '''

    ssr_max_roughness: float = None
    ''' Do not raytrace reflections for roughness above this value

    :type: float
    '''

    ssr_quality: float = None
    ''' Precision of the screen space raytracing

    :type: float
    '''

    ssr_thickness: float = None
    ''' Pixel thickness used to detect intersection

    :type: float
    '''

    sss_jitter_threshold: float = None
    ''' Rotate samples that are below this threshold

    :type: float
    '''

    sss_samples: int = None
    ''' Number of samples to compute the scattering effect

    :type: int
    '''

    taa_render_samples: int = None
    ''' Number of samples per pixels for rendering

    :type: int
    '''

    taa_samples: int = None
    ''' Number of samples, unlimited if 0

    :type: int
    '''

    use_bloom: bool = None
    ''' High brightness pixels generate a glowing effect

    :type: bool
    '''

    use_bokeh_high_quality_slight_defocus: bool = None
    ''' Sample all pixels in almost in-focus regions to eliminate noise

    :type: bool
    '''

    use_bokeh_jittered: bool = None
    ''' Jitter camera position to create accurate blurring using render samples

    :type: bool
    '''

    use_gtao: bool = None
    ''' Enable ambient occlusion to simulate medium scale indirect shadowing

    :type: bool
    '''

    use_gtao_bent_normals: bool = None
    ''' Compute main non occluded direction to sample the environment

    :type: bool
    '''

    use_gtao_bounce: bool = None
    ''' An approximation to simulate light bounces giving less occlusion on brighter objects

    :type: bool
    '''

    use_motion_blur: bool = None
    ''' Enable motion blur effect (only in camera view)

    :type: bool
    '''

    use_overscan: bool = None
    ''' Internally render past the image border to avoid screen-space effects disappearing

    :type: bool
    '''

    use_shadow_high_bitdepth: bool = None
    ''' Use 32-bit shadows

    :type: bool
    '''

    use_soft_shadows: bool = None
    ''' Randomize shadowmaps origin to create soft shadows

    :type: bool
    '''

    use_ssr: bool = None
    ''' Enable screen space reflection

    :type: bool
    '''

    use_ssr_halfres: bool = None
    ''' Raytrace at a lower resolution

    :type: bool
    '''

    use_ssr_refraction: bool = None
    ''' Enable screen space Refractions

    :type: bool
    '''

    use_taa_reprojection: bool = None
    ''' Denoise image using temporal reprojection (can leave some ghosting)

    :type: bool
    '''

    use_volumetric_lights: bool = None
    ''' Enable scene light interactions with volumetrics

    :type: bool
    '''

    use_volumetric_shadows: bool = None
    ''' Generate shadows from volumetric material (Very expensive)

    :type: bool
    '''

    volumetric_end: float = None
    ''' End distance of the volumetric effect

    :type: float
    '''

    volumetric_light_clamp: float = None
    ''' Maximum light contribution, reducing noise

    :type: float
    '''

    volumetric_sample_distribution: float = None
    ''' Distribute more samples closer to the camera

    :type: float
    '''

    volumetric_samples: int = None
    ''' Number of samples to compute volumetric effects

    :type: int
    '''

    volumetric_shadow_samples: int = None
    ''' Number of samples to compute volumetric shadowing

    :type: int
    '''

    volumetric_start: float = None
    ''' Start distance of the volumetric effect

    :type: float
    '''

    volumetric_tile_size: typing.Union[int, str] = None
    ''' Control the quality of the volumetric effects (lower size increase vram usage and quality)

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SceneGpencil(bpy_struct):
    ''' Render settings
    '''

    antialias_threshold: float = None
    ''' Threshold for edge detection algorithm (higher values might over-blur some part of the image)

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SceneObjects(bpy_struct):
    ''' All of the scene objects
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SceneRenderView(bpy_struct):
    ''' Render viewpoint for 3D stereo and multiview rendering
    '''

    camera_suffix: str = None
    ''' Suffix to identify the cameras to use, and added to the render images for this view

    :type: str
    '''

    file_suffix: str = None
    ''' Suffix added to the render images for this view

    :type: str
    '''

    name: str = None
    ''' Render view name

    :type: str
    '''

    use: bool = None
    ''' Disable or enable the render view

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Scopes(bpy_struct):
    ''' Scopes for statistical view of an image
    '''

    accuracy: float = None
    ''' Proportion of original image source pixel lines to sample

    :type: float
    '''

    histogram: 'Histogram' = None
    ''' Histogram for viewing image statistics

    :type: 'Histogram'
    '''

    use_full_resolution: bool = None
    ''' Sample every pixel of the image

    :type: bool
    '''

    vectorscope_alpha: float = None
    ''' Opacity of the points

    :type: float
    '''

    waveform_alpha: float = None
    ''' Opacity of the points

    :type: float
    '''

    waveform_mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Sequence(bpy_struct):
    ''' Sequence strip in the sequence editor
    '''

    blend_alpha: float = None
    ''' Percentage of how much the strip's colors affect other strips

    :type: float
    '''

    blend_type: typing.Union[int, str] = None
    ''' Method for controlling how the strip combines with other strips

    :type: typing.Union[int, str]
    '''

    channel: int = None
    ''' Y position of the sequence strip

    :type: int
    '''

    color_tag: typing.Union[int, str] = None
    ''' Color tag for a strip * NONE None -- Assign no color tag to the collection. * COLOR_01 Color 01. * COLOR_02 Color 02. * COLOR_03 Color 03. * COLOR_04 Color 04. * COLOR_05 Color 05. * COLOR_06 Color 06. * COLOR_07 Color 07. * COLOR_08 Color 08. * COLOR_09 Color 09.

    :type: typing.Union[int, str]
    '''

    effect_fader: float = None
    ''' Custom fade value

    :type: float
    '''

    frame_duration: int = None
    ''' The length of the contents of this strip before the handles are applied

    :type: int
    '''

    frame_final_duration: int = None
    ''' The length of the contents of this strip after the handles are applied

    :type: int
    '''

    frame_final_end: int = None
    ''' End frame displayed in the sequence editor after offsets are applied

    :type: int
    '''

    frame_final_start: int = None
    ''' Start frame displayed in the sequence editor after offsets are applied, setting this is equivalent to moving the handle, not the actual start frame

    :type: int
    '''

    frame_offset_end: int = None
    ''' 

    :type: int
    '''

    frame_offset_start: int = None
    ''' 

    :type: int
    '''

    frame_start: int = None
    ''' X position where the strip begins

    :type: int
    '''

    frame_still_end: int = None
    ''' 

    :type: int
    '''

    frame_still_start: int = None
    ''' 

    :type: int
    '''

    lock: bool = None
    ''' Lock strip so that it cannot be transformed

    :type: bool
    '''

    modifiers: typing.Union[typing.Dict[str, 'SequenceModifier'], typing.
                            List['SequenceModifier'], 'bpy_prop_collection',
                            'SequenceModifiers'] = None
    ''' Modifiers affecting this strip

    :type: typing.Union[typing.Dict[str, 'SequenceModifier'], typing.List['SequenceModifier'], 'bpy_prop_collection', 'SequenceModifiers']
    '''

    mute: bool = None
    ''' Disable strip so that it cannot be viewed in the output

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    override_cache_settings: bool = None
    ''' Override global cache settings

    :type: bool
    '''

    select: bool = None
    ''' 

    :type: bool
    '''

    select_left_handle: bool = None
    ''' 

    :type: bool
    '''

    select_right_handle: bool = None
    ''' 

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_cache_composite: bool = None
    ''' Cache intermediate composited images, for faster tweaking of stacked strips at the cost of memory usage

    :type: bool
    '''

    use_cache_preprocessed: bool = None
    ''' Cache preprocessed images, for faster tweaking of effects at the cost of memory usage

    :type: bool
    '''

    use_cache_raw: bool = None
    ''' Cache raw images read from disk, for faster tweaking of strip parameters at the cost of memory usage

    :type: bool
    '''

    use_default_fade: bool = None
    ''' Fade effect using the built-in default (usually make transition as long as effect strip)

    :type: bool
    '''

    use_linear_modifiers: bool = None
    ''' Calculate modifiers in linear space instead of sequencer's space

    :type: bool
    '''

    def update(self, data: bool = False):
        ''' Update the strip dimensions

        :param data: Data, Update strip data
        :type data: bool
        '''
        pass

    def strip_elem_from_frame(self, frame: int) -> 'SequenceElement':
        ''' Return the strip element from a given frame or None

        :param frame: Frame, The frame to get the strip element from
        :type frame: int
        :rtype: 'SequenceElement'
        :return: strip element of the current frame
        '''
        pass

    def swap(self, other: 'Sequence'):
        ''' swap

        :param other: Other
        :type other: 'Sequence'
        '''
        pass

    def move_to_meta(self, meta_sequence: 'Sequence'):
        ''' move_to_meta

        :param meta_sequence: Destination Meta Sequence, Meta to move the strip into
        :type meta_sequence: 'Sequence'
        '''
        pass

    def parent_meta(self) -> 'Sequence':
        ''' Parent meta

        :rtype: 'Sequence'
        :return: Parent Meta
        '''
        pass

    def invalidate_cache(self, type: typing.Union[int, str]):
        ''' Invalidate cached images for strip and all dependent strips

        :param type: Type, Cache Type
        :type type: typing.Union[int, str]
        '''
        pass

    def split(self, frame: int,
              split_method: typing.Union[int, str]) -> 'Sequence':
        ''' Split Sequence

        :param frame: Frame where to split the strip
        :type frame: int
        :param split_method: 
        :type split_method: typing.Union[int, str]
        :rtype: 'Sequence'
        :return: Right side Sequence
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceColorBalanceData(bpy_struct):
    ''' Color balance parameters for a sequence strip and its modifiers
    '''

    correction_method: typing.Union[int, str] = None
    ''' * LIFT_GAMMA_GAIN Lift/Gamma/Gain. * OFFSET_POWER_SLOPE Offset/Power/Slope (ASC-CDL) -- ASC-CDL standard color correction.

    :type: typing.Union[int, str]
    '''

    gain: typing.List[float] = None
    ''' Color balance gain (highlights)

    :type: typing.List[float]
    '''

    gamma: typing.List[float] = None
    ''' Color balance gamma (midtones)

    :type: typing.List[float]
    '''

    invert_gain: bool = None
    ''' Invert the gain color

    :type: bool
    '''

    invert_gamma: bool = None
    ''' Invert the gamma color

    :type: bool
    '''

    invert_lift: bool = None
    ''' Invert the lift color

    :type: bool
    '''

    invert_offset: bool = None
    ''' Invert the offset color

    :type: bool
    '''

    invert_power: bool = None
    ''' Invert the power color

    :type: bool
    '''

    invert_slope: bool = None
    ''' Invert the slope color

    :type: bool
    '''

    lift: typing.List[float] = None
    ''' Color balance lift (shadows)

    :type: typing.List[float]
    '''

    offset: typing.List[float] = None
    ''' Correction for entire tonal range

    :type: typing.List[float]
    '''

    power: typing.List[float] = None
    ''' Correction for midtones

    :type: typing.List[float]
    '''

    slope: typing.List[float] = None
    ''' Correction for highlights

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceCrop(bpy_struct):
    ''' Cropping parameters for a sequence strip
    '''

    max_x: int = None
    ''' Number of pixels to crop from the right side

    :type: int
    '''

    max_y: int = None
    ''' Number of pixels to crop from the top

    :type: int
    '''

    min_x: int = None
    ''' Number of pixels to crop from the left side

    :type: int
    '''

    min_y: int = None
    ''' Number of pixels to crop from the bottom

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceEditor(bpy_struct):
    ''' Sequence editing data for a Scene data-block
    '''

    active_strip: 'Sequence' = None
    ''' Sequencer's active strip

    :type: 'Sequence'
    '''

    meta_stack: typing.Union[typing.Dict[str, 'Sequence'], typing.
                             List['Sequence'], 'bpy_prop_collection'] = None
    ''' Meta strip stack, last is currently edited meta strip

    :type: typing.Union[typing.Dict[str, 'Sequence'], typing.List['Sequence'], 'bpy_prop_collection']
    '''

    overlay_frame: int = None
    ''' Number of frames to offset

    :type: int
    '''

    proxy_dir: str = None
    ''' 

    :type: str
    '''

    proxy_storage: typing.Union[int, str] = None
    ''' How to store proxies for this project * PER_STRIP Per Strip -- Store proxies using per strip settings. * PROJECT Project -- Store proxies using project directory.

    :type: typing.Union[int, str]
    '''

    sequences: typing.Union[typing.Dict[str, 'Sequence'], typing.
                            List['Sequence'], 'bpy_prop_collection',
                            'SequencesTopLevel'] = None
    ''' Top-level strips only

    :type: typing.Union[typing.Dict[str, 'Sequence'], typing.List['Sequence'], 'bpy_prop_collection', 'SequencesTopLevel']
    '''

    sequences_all: typing.Union[typing.Dict[str, 'Sequence'], typing.
                                List['Sequence'], 'bpy_prop_collection'] = None
    ''' All strips, recursively including those inside metastrips

    :type: typing.Union[typing.Dict[str, 'Sequence'], typing.List['Sequence'], 'bpy_prop_collection']
    '''

    show_cache: bool = None
    ''' Visualize cached images on the timeline

    :type: bool
    '''

    show_cache_composite: bool = None
    ''' Visualize cached composite images

    :type: bool
    '''

    show_cache_final_out: bool = None
    ''' Visualize cached complete frames

    :type: bool
    '''

    show_cache_preprocessed: bool = None
    ''' Visualize cached pre-processed images

    :type: bool
    '''

    show_cache_raw: bool = None
    ''' Visualize cached raw images

    :type: bool
    '''

    show_overlay_frame: bool = None
    ''' Partial overlay on top of the sequencer with a frame offset

    :type: bool
    '''

    use_cache_composite: bool = None
    ''' Cache intermediate composited images, for faster tweaking of stacked strips at the cost of memory usage

    :type: bool
    '''

    use_cache_final: bool = None
    ''' Cache final image for each frame

    :type: bool
    '''

    use_cache_preprocessed: bool = None
    ''' Cache pre-processed images, for faster tweaking of effects at the cost of memory usage

    :type: bool
    '''

    use_cache_raw: bool = None
    ''' Cache raw images read from disk, for faster tweaking of strip parameters at the cost of memory usage

    :type: bool
    '''

    use_overlay_frame_lock: bool = None
    ''' 

    :type: bool
    '''

    use_prefetch: bool = None
    ''' Render frames ahead of current frame in the background for faster playback

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceElement(bpy_struct):
    ''' Sequence strip data for a single frame
    '''

    filename: str = None
    ''' Name of the source file

    :type: str
    '''

    orig_fps: float = None
    ''' Original frames per second

    :type: float
    '''

    orig_height: int = None
    ''' Original image height

    :type: int
    '''

    orig_width: int = None
    ''' Original image width

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceElements(bpy_struct):
    ''' Collection of SequenceElement
    '''

    def append(self, filename: str) -> 'SequenceElement':
        ''' Push an image from ImageSequence.directory

        :param filename: Filepath to image
        :type filename: str
        :rtype: 'SequenceElement'
        :return: New SequenceElement
        '''
        pass

    def pop(self, index: int):
        ''' Pop an image off the collection

        :param index: Index of image to remove
        :type index: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceModifier(bpy_struct):
    ''' Modifier for sequence strip
    '''

    input_mask_id: 'Mask' = None
    ''' Mask ID used as mask input for the modifier

    :type: 'Mask'
    '''

    input_mask_strip: 'Sequence' = None
    ''' Strip used as mask input for the modifier

    :type: 'Sequence'
    '''

    input_mask_type: typing.Union[int, str] = None
    ''' Type of input data used for mask * STRIP Strip -- Use sequencer strip as mask input. * ID Mask -- Use mask ID as mask input.

    :type: typing.Union[int, str]
    '''

    mask_time: typing.Union[int, str] = None
    ''' Time to use for the Mask animation * RELATIVE Relative -- Mask animation is offset to start of strip. * ABSOLUTE Absolute -- Mask animation is in sync with scene frame.

    :type: typing.Union[int, str]
    '''

    mute: bool = None
    ''' Mute this modifier

    :type: bool
    '''

    name: str = None
    ''' 

    :type: str
    '''

    show_expanded: bool = None
    ''' Mute expanded settings for the modifier

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceModifiers(bpy_struct):
    ''' Collection of strip modifiers
    '''

    def new(self, name: str,
            type: typing.Union[int, str]) -> 'SequenceModifier':
        ''' Add a new modifier

        :param name: New name for the modifier
        :type name: str
        :param type: Modifier type to add
        :type type: typing.Union[int, str]
        :rtype: 'SequenceModifier'
        :return: Newly created modifier
        '''
        pass

    def remove(self, modifier: 'SequenceModifier'):
        ''' Remove an existing modifier from the sequence

        :param modifier: Modifier to remove
        :type modifier: 'SequenceModifier'
        '''
        pass

    def clear(self):
        ''' Remove all modifiers from the sequence

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceProxy(bpy_struct):
    ''' Proxy parameters for a sequence strip
    '''

    build_100: bool = None
    ''' Build 100% proxy resolution

    :type: bool
    '''

    build_25: bool = None
    ''' Build 25% proxy resolution

    :type: bool
    '''

    build_50: bool = None
    ''' Build 50% proxy resolution

    :type: bool
    '''

    build_75: bool = None
    ''' Build 75% proxy resolution

    :type: bool
    '''

    build_free_run: bool = None
    ''' Build free run time code index

    :type: bool
    '''

    build_free_run_rec_date: bool = None
    ''' Build free run time code index using Record Date/Time

    :type: bool
    '''

    build_record_run: bool = None
    ''' Build record run time code index

    :type: bool
    '''

    directory: str = None
    ''' Location to store the proxy files

    :type: str
    '''

    filepath: str = None
    ''' Location of custom proxy file

    :type: str
    '''

    quality: int = None
    ''' Quality of proxies to build

    :type: int
    '''

    timecode: typing.Union[int, str] = None
    ''' Method for reading the inputs timecode * NONE None. * RECORD_RUN Record Run -- Use images in the order as they are recorded. * FREE_RUN Free Run -- Use global timestamp written by recording device. * FREE_RUN_REC_DATE Free Run (rec date) -- Interpolate a global timestamp using the record date and time written by recording device. * RECORD_RUN_NO_GAPS Record Run No Gaps -- Like record run, but ignore timecode, changes in framerate or dropouts.

    :type: typing.Union[int, str]
    '''

    use_overwrite: bool = None
    ''' Overwrite existing proxy files when building

    :type: bool
    '''

    use_proxy_custom_directory: bool = None
    ''' Use a custom directory to store data

    :type: bool
    '''

    use_proxy_custom_file: bool = None
    ''' Use a custom file to read proxy data from

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceTransform(bpy_struct):
    ''' Transform parameters for a sequence strip
    '''

    offset_x: int = None
    ''' Move along X axis

    :type: int
    '''

    offset_y: int = None
    ''' Move along Y axis

    :type: int
    '''

    origin: typing.List[float] = None
    ''' Origin of image for transformation

    :type: typing.List[float]
    '''

    rotation: float = None
    ''' Rotate around image center

    :type: float
    '''

    scale_x: float = None
    ''' Scale along X axis

    :type: float
    '''

    scale_y: float = None
    ''' Scale along Y axis

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequencerPreviewOverlay(bpy_struct):
    show_annotation: bool = None
    ''' Show annotations for this view

    :type: bool
    '''

    show_cursor: bool = None
    ''' 

    :type: bool
    '''

    show_image_outline: bool = None
    ''' 

    :type: bool
    '''

    show_metadata: bool = None
    ''' Show metadata of first visible strip

    :type: bool
    '''

    show_safe_areas: bool = None
    ''' Show TV title safe and action safe areas in preview

    :type: bool
    '''

    show_safe_center: bool = None
    ''' Show safe areas to fit content in a different aspect ratio

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequencerTimelineOverlay(bpy_struct):
    show_fcurves: bool = None
    ''' Display strip opacity/volume curve

    :type: bool
    '''

    show_grid: bool = None
    ''' Show vertical grid lines

    :type: bool
    '''

    show_strip_duration: bool = None
    ''' 

    :type: bool
    '''

    show_strip_name: bool = None
    ''' 

    :type: bool
    '''

    show_strip_offset: bool = None
    ''' Display strip in/out offsets

    :type: bool
    '''

    show_strip_source: bool = None
    ''' Display path to source file, or name of source datablock

    :type: bool
    '''

    show_strip_tag_color: bool = None
    ''' Display the strip color tags in the sequencer

    :type: bool
    '''

    show_thumbnails: bool = None
    ''' Show strip thumbnails

    :type: bool
    '''

    waveform_display_type: typing.Union[int, str] = None
    ''' How Waveforms are displayed * NO_WAVEFORMS Waveforms Off -- Don't display waveforms for any sound strips. * ALL_WAVEFORMS Waveforms On -- Display waveforms for all sound strips. * DEFAULT_WAVEFORMS Use Strip Option -- Display waveforms depending on strip setting.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequencerToolSettings(bpy_struct):
    fit_method: typing.Union[int, str] = None
    ''' Scale fit method * FIT Scale to Fit -- Scale image to fit within the canvas. * FILL Scale to Fill -- Scale image to completely fill the canvas. * STRETCH Stretch to Fill -- Stretch image to fill the canvas. * ORIGINAL Use Original Size -- Keep image at its original size.

    :type: typing.Union[int, str]
    '''

    overlap_mode: typing.Union[int, str] = None
    ''' How to resolve overlap after transformation * EXPAND Expand -- Move strips so transformed strips fits. * OVERWRITE Overwrite -- Trim or split strips to resolve overlap. * SHUFFLE Shuffle -- Move transformed strips to nearest free space to resolve overlap.

    :type: typing.Union[int, str]
    '''

    pivot_point: typing.Union[int, str] = None
    ''' Rotation or scaling pivot point * CENTER Bounding Box Center. * MEDIAN Median Point. * CURSOR 2D Cursor -- Pivot around the 2D cursor. * INDIVIDUAL_ORIGINS Individual Origins -- Pivot around each selected island's own median point.

    :type: typing.Union[int, str]
    '''

    snap_distance: int = None
    ''' Maximum distance for snapping in pixels

    :type: int
    '''

    snap_ignore_muted: bool = None
    ''' Don't snap to hidden strips

    :type: bool
    '''

    snap_ignore_sound: bool = None
    ''' Don't snap to sound strips

    :type: bool
    '''

    snap_to_current_frame: bool = None
    ''' Snap to current frame

    :type: bool
    '''

    snap_to_hold_offset: bool = None
    ''' Snap to strip hold offsets

    :type: bool
    '''

    use_snap_current_frame_to_strips: bool = None
    ''' Snap current frame to strip start or end

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequencesMeta(bpy_struct):
    ''' Collection of Sequences
    '''

    def new_clip(self, name: str, clip: 'MovieClip', channel: int,
                 frame_start: int) -> 'Sequence':
        ''' Add a new movie clip sequence

        :param name: Name for the new sequence
        :type name: str
        :param clip: Movie clip to add
        :type clip: 'MovieClip'
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_mask(self, name: str, mask: 'Mask', channel: int,
                 frame_start: int) -> 'Sequence':
        ''' Add a new mask sequence

        :param name: Name for the new sequence
        :type name: str
        :param mask: Mask to add
        :type mask: 'Mask'
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_scene(self, name: str, scene: 'Scene', channel: int,
                  frame_start: int) -> 'Sequence':
        ''' Add a new scene sequence

        :param name: Name for the new sequence
        :type name: str
        :param scene: Scene to add
        :type scene: 'Scene'
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_image(
            self,
            name: str,
            filepath: str,
            channel: int,
            frame_start: int,
            fit_method: typing.Union[int, str] = 'ORIGINAL') -> 'Sequence':
        ''' Add a new image sequence

        :param name: Name for the new sequence
        :type name: str
        :param filepath: Filepath to image
        :type filepath: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :param fit_method: Image Fit Method * FIT Scale to Fit -- Scale image so fits in preview. * FILL Scale to Fill -- Scale image so it fills preview completely. * STRETCH Stretch to Fill -- Stretch image so it fills preview. * ORIGINAL Use Original Size -- Don't scale the image.
        :type fit_method: typing.Union[int, str]
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_movie(
            self,
            name: str,
            filepath: str,
            channel: int,
            frame_start: int,
            fit_method: typing.Union[int, str] = 'ORIGINAL') -> 'Sequence':
        ''' Add a new movie sequence

        :param name: Name for the new sequence
        :type name: str
        :param filepath: Filepath to movie
        :type filepath: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :param fit_method: Image Fit Method * FIT Scale to Fit -- Scale image so fits in preview. * FILL Scale to Fill -- Scale image so it fills preview completely. * STRETCH Stretch to Fill -- Stretch image so it fills preview. * ORIGINAL Use Original Size -- Don't scale the image.
        :type fit_method: typing.Union[int, str]
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_sound(self, name: str, filepath: str, channel: int,
                  frame_start: int) -> 'Sequence':
        ''' Add a new sound sequence

        :param name: Name for the new sequence
        :type name: str
        :param filepath: Filepath to movie
        :type filepath: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_meta(self, name: str, channel: int,
                 frame_start: int) -> 'Sequence':
        ''' Add a new meta sequence

        :param name: Name for the new sequence
        :type name: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_effect(self,
                   name: str,
                   type: typing.Union[int, str],
                   channel: int,
                   frame_start: int,
                   frame_end: int = 0,
                   seq1: 'Sequence' = None,
                   seq2: 'Sequence' = None,
                   seq3: 'Sequence' = None) -> 'Sequence':
        ''' Add a new effect sequence

        :param name: Name for the new sequence
        :type name: str
        :param type: Type, type for the new sequence
        :type type: typing.Union[int, str]
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :param frame_end: The end frame for the new sequence
        :type frame_end: int
        :param seq1: Sequence 1 for effect
        :type seq1: 'Sequence'
        :param seq2: Sequence 2 for effect
        :type seq2: 'Sequence'
        :param seq3: Sequence 3 for effect
        :type seq3: 'Sequence'
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def remove(self, sequence: 'Sequence'):
        ''' Remove a Sequence

        :param sequence: Sequence to remove
        :type sequence: 'Sequence'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequencesTopLevel(bpy_struct):
    ''' Collection of Sequences
    '''

    def new_clip(self, name: str, clip: 'MovieClip', channel: int,
                 frame_start: int) -> 'Sequence':
        ''' Add a new movie clip sequence

        :param name: Name for the new sequence
        :type name: str
        :param clip: Movie clip to add
        :type clip: 'MovieClip'
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_mask(self, name: str, mask: 'Mask', channel: int,
                 frame_start: int) -> 'Sequence':
        ''' Add a new mask sequence

        :param name: Name for the new sequence
        :type name: str
        :param mask: Mask to add
        :type mask: 'Mask'
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_scene(self, name: str, scene: 'Scene', channel: int,
                  frame_start: int) -> 'Sequence':
        ''' Add a new scene sequence

        :param name: Name for the new sequence
        :type name: str
        :param scene: Scene to add
        :type scene: 'Scene'
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_image(
            self,
            name: str,
            filepath: str,
            channel: int,
            frame_start: int,
            fit_method: typing.Union[int, str] = 'ORIGINAL') -> 'Sequence':
        ''' Add a new image sequence

        :param name: Name for the new sequence
        :type name: str
        :param filepath: Filepath to image
        :type filepath: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :param fit_method: Image Fit Method * FIT Scale to Fit -- Scale image so fits in preview. * FILL Scale to Fill -- Scale image so it fills preview completely. * STRETCH Stretch to Fill -- Stretch image so it fills preview. * ORIGINAL Use Original Size -- Don't scale the image.
        :type fit_method: typing.Union[int, str]
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_movie(
            self,
            name: str,
            filepath: str,
            channel: int,
            frame_start: int,
            fit_method: typing.Union[int, str] = 'ORIGINAL') -> 'Sequence':
        ''' Add a new movie sequence

        :param name: Name for the new sequence
        :type name: str
        :param filepath: Filepath to movie
        :type filepath: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :param fit_method: Image Fit Method * FIT Scale to Fit -- Scale image so fits in preview. * FILL Scale to Fill -- Scale image so it fills preview completely. * STRETCH Stretch to Fill -- Stretch image so it fills preview. * ORIGINAL Use Original Size -- Don't scale the image.
        :type fit_method: typing.Union[int, str]
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_sound(self, name: str, filepath: str, channel: int,
                  frame_start: int) -> 'Sequence':
        ''' Add a new sound sequence

        :param name: Name for the new sequence
        :type name: str
        :param filepath: Filepath to movie
        :type filepath: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_meta(self, name: str, channel: int,
                 frame_start: int) -> 'Sequence':
        ''' Add a new meta sequence

        :param name: Name for the new sequence
        :type name: str
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def new_effect(self,
                   name: str,
                   type: typing.Union[int, str],
                   channel: int,
                   frame_start: int,
                   frame_end: int = 0,
                   seq1: 'Sequence' = None,
                   seq2: 'Sequence' = None,
                   seq3: 'Sequence' = None) -> 'Sequence':
        ''' Add a new effect sequence

        :param name: Name for the new sequence
        :type name: str
        :param type: Type, type for the new sequence
        :type type: typing.Union[int, str]
        :param channel: Channel, The channel for the new sequence
        :type channel: int
        :param frame_start: The start frame for the new sequence
        :type frame_start: int
        :param frame_end: The end frame for the new sequence
        :type frame_end: int
        :param seq1: Sequence 1 for effect
        :type seq1: 'Sequence'
        :param seq2: Sequence 2 for effect
        :type seq2: 'Sequence'
        :param seq3: Sequence 3 for effect
        :type seq3: 'Sequence'
        :rtype: 'Sequence'
        :return: New Sequence
        '''
        pass

    def remove(self, sequence: 'Sequence'):
        ''' Remove a Sequence

        :param sequence: Sequence to remove
        :type sequence: 'Sequence'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFx(bpy_struct):
    ''' Effect affecting the grease pencil object
    '''

    name: str = None
    ''' Effect name

    :type: str
    '''

    show_expanded: bool = None
    ''' Set effect expansion in the user interface

    :type: bool
    '''

    show_in_editmode: bool = None
    ''' Display effect in Edit mode

    :type: bool
    '''

    show_render: bool = None
    ''' Use effect during render

    :type: bool
    '''

    show_viewport: bool = None
    ''' Display effect in viewport

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' * FX_BLUR Blur -- Apply Gaussian Blur to object. * FX_COLORIZE Colorize -- Apply different tint effects. * FX_FLIP Flip -- Flip image. * FX_GLOW Glow -- Create a glow effect. * FX_PIXEL Pixelate -- Pixelate image. * FX_RIM Rim -- Add a rim to the image. * FX_SHADOW Shadow -- Create a shadow effect. * FX_SWIRL Swirl -- Create a rotation distortion. * FX_WAVE Wave Distortion -- Apply sinusoidal deformation.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShapeKey(bpy_struct):
    ''' Shape key in a shape keys data-block
    '''

    data: typing.Union[typing.Dict[str, 'UnknownType'], typing.
                       List['UnknownType'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'UnknownType'], typing.List['UnknownType'], 'bpy_prop_collection']
    '''

    frame: float = None
    ''' Frame for absolute keys

    :type: float
    '''

    interpolation: typing.Union[int, str] = None
    ''' Interpolation type for absolute shape keys

    :type: typing.Union[int, str]
    '''

    mute: bool = None
    ''' Toggle this shape key

    :type: bool
    '''

    name: str = None
    ''' Name of Shape Key

    :type: str
    '''

    relative_key: 'ShapeKey' = None
    ''' Shape used as a relative key

    :type: 'ShapeKey'
    '''

    slider_max: float = None
    ''' Maximum for slider

    :type: float
    '''

    slider_min: float = None
    ''' Minimum for slider

    :type: float
    '''

    value: float = None
    ''' Value of shape key at the current frame

    :type: float
    '''

    vertex_group: str = None
    ''' Vertex weight group, to blend with basis shape

    :type: str
    '''

    def normals_vertex_get(self) -> float:
        ''' Compute local space vertices' normals for this shape key

        :rtype: float
        :return: normals
        '''
        pass

    def normals_polygon_get(self) -> float:
        ''' Compute local space faces' normals for this shape key

        :rtype: float
        :return: normals
        '''
        pass

    def normals_split_get(self) -> float:
        ''' Compute local space face corners' normals for this shape key

        :rtype: float
        :return: normals
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShapeKeyBezierPoint(bpy_struct):
    ''' Point in a shape key for Bezier curves
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_left: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_right: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    radius: float = None
    ''' Radius for beveling

    :type: float
    '''

    tilt: float = None
    ''' Tilt in 3D View

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShapeKeyCurvePoint(bpy_struct):
    ''' Point in a shape key for curves
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    radius: float = None
    ''' Radius for beveling

    :type: float
    '''

    tilt: float = None
    ''' Tilt in 3D View

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShapeKeyPoint(bpy_struct):
    ''' Point in a shape key
    '''

    co: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SoftBodySettings(bpy_struct):
    ''' Soft body simulation settings for an object
    '''

    aero: int = None
    ''' Make edges 'sail'

    :type: int
    '''

    aerodynamics_type: typing.Union[int, str] = None
    ''' Method of calculating aerodynamic interaction * SIMPLE Simple -- Edges receive a drag force from surrounding media. * LIFT_FORCE Lift Force -- Edges receive a lift force when passing through surrounding media.

    :type: typing.Union[int, str]
    '''

    ball_damp: float = None
    ''' Blending to inelastic collision

    :type: float
    '''

    ball_size: float = None
    ''' Absolute ball size or factor if not manually adjusted

    :type: float
    '''

    ball_stiff: float = None
    ''' Ball inflating pressure

    :type: float
    '''

    bend: float = None
    ''' Bending Stiffness

    :type: float
    '''

    choke: int = None
    ''' 'Viscosity' inside collision target

    :type: int
    '''

    collision_collection: 'Collection' = None
    ''' Limit colliders to this collection

    :type: 'Collection'
    '''

    collision_type: typing.Union[int, str] = None
    ''' Choose Collision Type * MANUAL Manual -- Manual adjust. * AVERAGE Average -- Average Spring length \* Ball Size. * MINIMAL Minimal -- Minimal Spring length \* Ball Size. * MAXIMAL Maximal -- Maximal Spring length \* Ball Size. * MINMAX AvMinMax -- (Min+Max)/2 \* Ball Size.

    :type: typing.Union[int, str]
    '''

    damping: float = None
    ''' Edge spring friction

    :type: float
    '''

    effector_weights: 'EffectorWeights' = None
    ''' 

    :type: 'EffectorWeights'
    '''

    error_threshold: float = None
    ''' The Runge-Kutta ODE solver error limit, low value gives more precision, high values speed

    :type: float
    '''

    friction: float = None
    ''' General media friction for point movements

    :type: float
    '''

    fuzzy: int = None
    ''' Fuzziness while on collision, high values make collision handling faster but less stable

    :type: int
    '''

    goal_default: float = None
    ''' Default Goal (vertex target position) value

    :type: float
    '''

    goal_friction: float = None
    ''' Goal (vertex target position) friction

    :type: float
    '''

    goal_max: float = None
    ''' Goal maximum, vertex weights are scaled to match this range

    :type: float
    '''

    goal_min: float = None
    ''' Goal minimum, vertex weights are scaled to match this range

    :type: float
    '''

    goal_spring: float = None
    ''' Goal (vertex target position) spring stiffness

    :type: float
    '''

    gravity: float = None
    ''' Apply gravitation to point movement

    :type: float
    '''

    location_mass_center: typing.List[float] = None
    ''' Location of center of mass

    :type: typing.List[float]
    '''

    mass: float = None
    ''' General Mass value

    :type: float
    '''

    plastic: int = None
    ''' Permanent deform

    :type: int
    '''

    pull: float = None
    ''' Edge spring stiffness when longer than rest length

    :type: float
    '''

    push: float = None
    ''' Edge spring stiffness when shorter than rest length

    :type: float
    '''

    rotation_estimate: typing.List[float] = None
    ''' Estimated rotation matrix

    :type: typing.List[float]
    '''

    scale_estimate: typing.List[float] = None
    ''' Estimated scale matrix

    :type: typing.List[float]
    '''

    shear: float = None
    ''' Shear Stiffness

    :type: float
    '''

    speed: float = None
    ''' Tweak timing for physics to control frequency and speed

    :type: float
    '''

    spring_length: int = None
    ''' Alter spring length to shrink/blow up (unit %) 0 to disable

    :type: int
    '''

    step_max: int = None
    ''' Maximal # solver steps/frame

    :type: int
    '''

    step_min: int = None
    ''' Minimal # solver steps/frame

    :type: int
    '''

    use_auto_step: bool = None
    ''' Use velocities for automagic step sizes

    :type: bool
    '''

    use_diagnose: bool = None
    ''' Turn on SB diagnose console prints

    :type: bool
    '''

    use_edge_collision: bool = None
    ''' Edges collide too

    :type: bool
    '''

    use_edges: bool = None
    ''' Use Edges as springs

    :type: bool
    '''

    use_estimate_matrix: bool = None
    ''' Store the estimated transforms in the soft body settings

    :type: bool
    '''

    use_face_collision: bool = None
    ''' Faces collide too, can be very slow

    :type: bool
    '''

    use_goal: bool = None
    ''' Define forces for vertices to stick to animated position

    :type: bool
    '''

    use_self_collision: bool = None
    ''' Enable naive vertex ball self collision

    :type: bool
    '''

    use_stiff_quads: bool = None
    ''' Add diagonal springs on 4-gons

    :type: bool
    '''

    vertex_group_goal: str = None
    ''' Control point weight values

    :type: str
    '''

    vertex_group_mass: str = None
    ''' Control point mass values

    :type: str
    '''

    vertex_group_spring: str = None
    ''' Control point spring strength values

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Space(bpy_struct):
    ''' Space data for a screen area
    '''

    show_locked_time: bool = None
    ''' Synchronize the visible timeline range with other time-based editors

    :type: bool
    '''

    show_region_header: bool = None
    ''' 

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Space data type * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceImageOverlay(bpy_struct):
    ''' Settings for display of overlays in the UV/Image editor
    '''

    show_overlays: bool = None
    ''' Display overlays like UV Maps and Metadata

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpaceNodeEditorPath(bpy_struct):
    ''' Get the node tree path as a string
    '''

    to_string: str = None
    ''' 

    :type: str
    '''

    def clear(self):
        ''' Reset the node tree path

        '''
        pass

    def start(self, node_tree: 'NodeTree'):
        ''' Set the root node tree

        :param node_tree: Node Tree
        :type node_tree: 'NodeTree'
        '''
        pass

    def append(self, node_tree: 'NodeTree', node: 'Node' = None):
        ''' Append a node group tree to the path

        :param node_tree: Node Tree, Node tree to append to the node editor path
        :type node_tree: 'NodeTree'
        :param node: Node, Group node linking to this node tree
        :type node: 'Node'
        '''
        pass

    def pop(self):
        ''' Remove the last node tree from the path

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpaceNodeOverlay(bpy_struct):
    ''' Settings for display of overlays in the Node Editor
    '''

    show_context_path: bool = None
    ''' Display breadcrumbs for the editor's context

    :type: bool
    '''

    show_overlays: bool = None
    ''' Display overlays like colored or dashed wires

    :type: bool
    '''

    show_timing: bool = None
    ''' Display each node's last execution time

    :type: bool
    '''

    show_wire_color: bool = None
    ''' Color node links based on their connected sockets

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpaceUVEditor(bpy_struct):
    ''' UV editor data for the image editor space
    '''

    custom_grid_subdivisions: int = None
    ''' Number of grid units in UV space that make one UV Unit

    :type: int
    '''

    display_stretch_type: typing.Union[int, str] = None
    ''' Type of stretch to display * ANGLE Angle -- Angular distortion between UV and 3D angles. * AREA Area -- Area distortion between UV and 3D faces.

    :type: typing.Union[int, str]
    '''

    edge_display_type: typing.Union[int, str] = None
    ''' Display style for UV edges * OUTLINE Outline -- Display white edges with black outline. * DASH Dash -- Display dashed black-white edges. * BLACK Black -- Display black edges. * WHITE White -- Display white edges.

    :type: typing.Union[int, str]
    '''

    lock_bounds: bool = None
    ''' Constraint to stay within the image bounds while editing

    :type: bool
    '''

    pixel_snap_mode: typing.Union[int, str] = None
    ''' Snap UVs to pixels while editing * DISABLED Disabled -- Don't snap to pixels. * CORNER Corner -- Snap to pixel corners. * CENTER Center -- Snap to pixel centers.

    :type: typing.Union[int, str]
    '''

    show_faces: bool = None
    ''' Display faces over the image

    :type: bool
    '''

    show_metadata: bool = None
    ''' Display metadata properties of the image

    :type: bool
    '''

    show_modified_edges: bool = None
    ''' Display edges after modifiers are applied

    :type: bool
    '''

    show_pixel_coords: bool = None
    ''' Display UV coordinates in pixels rather than from 0.0 to 1.0

    :type: bool
    '''

    show_stretch: bool = None
    ''' Display faces colored according to the difference in shape between UVs and their 3D coordinates (blue for low distortion, red for high distortion)

    :type: bool
    '''

    show_texpaint: bool = None
    ''' Display overlay of texture paint uv layer

    :type: bool
    '''

    sticky_select_mode: typing.Union[int, str] = None
    ''' Method for extending UV vertex selection * DISABLED Disabled -- Sticky vertex selection disabled. * SHARED_LOCATION Shared Location -- Select UVs that are at the same location and share a mesh vertex. * SHARED_VERTEX Shared Vertex -- Select UVs that share a mesh vertex, whether or not they are at the same location.

    :type: typing.Union[int, str]
    '''

    tile_grid_shape: typing.List[int] = None
    ''' How many tiles will be shown in the background

    :type: typing.List[int]
    '''

    use_custom_grid: bool = None
    ''' Use a grid with a user-defined number of steps

    :type: bool
    '''

    use_live_unwrap: bool = None
    ''' Continuously unwrap the selected UV island while transforming pinned vertices

    :type: bool
    '''

    uv_opacity: float = None
    ''' Opacity of UV overlays

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Spline(bpy_struct):
    ''' Element of a curve, either NURBS, Bezier or Polyline or a character with text objects
    '''

    bezier_points: typing.Union[typing.Dict[str, 'BezierSplinePoint'], typing.
                                List['BezierSplinePoint'],
                                'bpy_prop_collection',
                                'SplineBezierPoints'] = None
    ''' Collection of points for Bezier curves only

    :type: typing.Union[typing.Dict[str, 'BezierSplinePoint'], typing.List['BezierSplinePoint'], 'bpy_prop_collection', 'SplineBezierPoints']
    '''

    character_index: int = None
    ''' Location of this character in the text data (only for text curves)

    :type: int
    '''

    hide: bool = None
    ''' Hide this curve in Edit mode

    :type: bool
    '''

    material_index: int = None
    ''' Material slot index of this curve

    :type: int
    '''

    order_u: int = None
    ''' NURBS order in the U direction (for splines and surfaces, higher values let points influence a greater area)

    :type: int
    '''

    order_v: int = None
    ''' NURBS order in the V direction (for surfaces only, higher values let points influence a greater area)

    :type: int
    '''

    point_count_u: int = None
    ''' Total number points for the curve or surface in the U direction

    :type: int
    '''

    point_count_v: int = None
    ''' Total number points for the surface on the V direction

    :type: int
    '''

    points: typing.Union[typing.Dict[str, 'SplinePoint'], typing.
                         List['SplinePoint'], 'bpy_prop_collection',
                         'SplinePoints'] = None
    ''' Collection of points that make up this poly or nurbs spline

    :type: typing.Union[typing.Dict[str, 'SplinePoint'], typing.List['SplinePoint'], 'bpy_prop_collection', 'SplinePoints']
    '''

    radius_interpolation: typing.Union[int, str] = None
    ''' The type of radius interpolation for Bezier curves

    :type: typing.Union[int, str]
    '''

    resolution_u: int = None
    ''' Curve or Surface subdivisions per segment

    :type: int
    '''

    resolution_v: int = None
    ''' Surface subdivisions per segment

    :type: int
    '''

    tilt_interpolation: typing.Union[int, str] = None
    ''' The type of tilt interpolation for 3D, Bezier curves

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' The interpolation type for this curve element

    :type: typing.Union[int, str]
    '''

    use_bezier_u: bool = None
    ''' Make this nurbs curve or surface act like a Bezier spline in the U direction (Order U must be 3 or 4, Cyclic U must be disabled)

    :type: bool
    '''

    use_bezier_v: bool = None
    ''' Make this nurbs surface act like a Bezier spline in the V direction (Order V must be 3 or 4, Cyclic V must be disabled)

    :type: bool
    '''

    use_cyclic_u: bool = None
    ''' Make this curve or surface a closed loop in the U direction

    :type: bool
    '''

    use_cyclic_v: bool = None
    ''' Make this surface a closed loop in the V direction

    :type: bool
    '''

    use_endpoint_u: bool = None
    ''' Make this nurbs curve or surface meet the endpoints in the U direction (Cyclic U must be disabled)

    :type: bool
    '''

    use_endpoint_v: bool = None
    ''' Make this nurbs surface meet the endpoints in the V direction (Cyclic V must be disabled)

    :type: bool
    '''

    use_smooth: bool = None
    ''' Smooth the normals of the surface or beveled curve

    :type: bool
    '''

    def calc_length(self, resolution: int = 0) -> float:
        ''' Calculate spline length

        :param resolution: Resolution, Spline resolution to be used, 0 defaults to the resolution_u
        :type resolution: int
        :rtype: float
        :return: Length, Length of the polygonaly approximated spline
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SplineBezierPoints(bpy_struct):
    ''' Collection of spline Bezier points
    '''

    def add(self, count: int):
        ''' Add a number of points to this spline

        :param count: Number, Number of points to add to the spline
        :type count: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SplinePoint(bpy_struct):
    ''' Spline point without handles
    '''

    co: typing.List[float] = None
    ''' Point coordinates

    :type: typing.List[float]
    '''

    hide: bool = None
    ''' Visibility status

    :type: bool
    '''

    radius: float = None
    ''' Radius for beveling

    :type: float
    '''

    select: bool = None
    ''' Selection status

    :type: bool
    '''

    tilt: float = None
    ''' Tilt in 3D View

    :type: float
    '''

    weight: float = None
    ''' NURBS weight

    :type: float
    '''

    weight_softbody: float = None
    ''' Softbody goal weight

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SplinePoints(bpy_struct):
    ''' Collection of spline points
    '''

    def add(self, count: int):
        ''' Add a number of points to this spline

        :param count: Number, Number of points to add to the spline
        :type count: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpreadsheetColumn(bpy_struct):
    ''' Persistent data associated with a spreadsheet column
    '''

    data_type: typing.Union[int, str] = None
    ''' The data type of the corresponding column visible in the spreadsheet

    :type: typing.Union[int, str]
    '''

    id: 'SpreadsheetColumnID' = None
    ''' Data used to identify the corresponding data from the data source

    :type: 'SpreadsheetColumnID'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpreadsheetColumnID(bpy_struct):
    ''' Data used to identify a spreadsheet column
    '''

    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpreadsheetContext(bpy_struct):
    ''' Element of spreadsheet context path
    '''

    show_region_channels: bool = None
    ''' 

    :type: bool
    '''

    show_region_footer: bool = None
    ''' 

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Type of the context

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpreadsheetContextPath(bpy_struct):
    def append(self, type: typing.Union[int, str]) -> 'SpreadsheetContext':
        ''' Append a context path element

        :param type: type
        :type type: typing.Union[int, str]
        :rtype: 'SpreadsheetContext'
        :return: Newly created context path element
        '''
        pass

    def clear(self):
        ''' Clear entire context path

        '''
        pass

    def guess(self):
        ''' Guess the context path from the current context

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpreadsheetRowFilter(bpy_struct):
    column_name: str = None
    ''' 

    :type: str
    '''

    enabled: bool = None
    ''' 

    :type: bool
    '''

    operation: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    show_expanded: bool = None
    ''' 

    :type: bool
    '''

    threshold: float = None
    ''' How close float values need to be to be equal

    :type: float
    '''

    value_boolean: bool = None
    ''' 

    :type: bool
    '''

    value_color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    value_float: float = None
    ''' 

    :type: float
    '''

    value_float2: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    value_float3: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    value_int: int = None
    ''' 

    :type: int
    '''

    value_string: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Stereo3dDisplay(bpy_struct):
    ''' Settings for stereo 3D display
    '''

    anaglyph_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    display_mode: typing.Union[int, str] = None
    ''' * ANAGLYPH Anaglyph -- Render views for left and right eyes as two differently filtered colors in a single image (anaglyph glasses are required). * INTERLACE Interlace -- Render views for left and right eyes interlaced in a single image (3D-ready monitor is required). * TIMESEQUENTIAL Time Sequential -- Render alternate eyes (also known as page flip, quad buffer support in the graphic card is required). * SIDEBYSIDE Side-by-Side -- Render views for left and right eyes side-by-side. * TOPBOTTOM Top-Bottom -- Render views for left and right eyes one above another.

    :type: typing.Union[int, str]
    '''

    interlace_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_interlace_swap: bool = None
    ''' Swap left and right stereo channels

    :type: bool
    '''

    use_sidebyside_crosseyed: bool = None
    ''' Right eye should see left image and vice versa

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Stereo3dFormat(bpy_struct):
    ''' Settings for stereo output
    '''

    anaglyph_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    display_mode: typing.Union[int, str] = None
    ''' * ANAGLYPH Anaglyph -- Render views for left and right eyes as two differently filtered colors in a single image (anaglyph glasses are required). * INTERLACE Interlace -- Render views for left and right eyes interlaced in a single image (3D-ready monitor is required). * SIDEBYSIDE Side-by-Side -- Render views for left and right eyes side-by-side. * TOPBOTTOM Top-Bottom -- Render views for left and right eyes one above another.

    :type: typing.Union[int, str]
    '''

    interlace_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_interlace_swap: bool = None
    ''' Swap left and right stereo channels

    :type: bool
    '''

    use_sidebyside_crosseyed: bool = None
    ''' Right eye should see left image and vice versa

    :type: bool
    '''

    use_squeezed_frame: bool = None
    ''' Combine both views in a squeezed image

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class StringAttributeValue(bpy_struct):
    ''' String value in geometry attribute
    '''

    value: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Struct(bpy_struct):
    ''' RNA structure definition
    '''

    base: 'Struct' = None
    ''' Struct definition this is derived from

    :type: 'Struct'
    '''

    description: str = None
    ''' Description of the Struct's purpose

    :type: str
    '''

    functions: typing.Union[typing.Dict[str, 'Function'], typing.
                            List['Function'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Function'], typing.List['Function'], 'bpy_prop_collection']
    '''

    identifier: str = None
    ''' Unique name used in the code and scripting

    :type: str
    '''

    name: str = None
    ''' Human readable name

    :type: str
    '''

    name_property: 'StringProperty' = None
    ''' Property that gives the name of the struct

    :type: 'StringProperty'
    '''

    nested: 'Struct' = None
    ''' Struct in which this struct is always nested, and to which it logically belongs

    :type: 'Struct'
    '''

    properties: typing.Union[typing.Dict[str, 'Property'], typing.
                             List['Property'], 'bpy_prop_collection'] = None
    ''' Properties in the struct

    :type: typing.Union[typing.Dict[str, 'Property'], typing.List['Property'], 'bpy_prop_collection']
    '''

    property_tags: typing.Union[typing.Dict[str, 'EnumPropertyItem'], typing.
                                List['EnumPropertyItem'],
                                'bpy_prop_collection'] = None
    ''' Tags that properties can use to influence behavior

    :type: typing.Union[typing.Dict[str, 'EnumPropertyItem'], typing.List['EnumPropertyItem'], 'bpy_prop_collection']
    '''

    translation_context: str = None
    ''' Translation context of the struct's name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class StudioLight(bpy_struct):
    ''' Studio light
    '''

    has_specular_highlight_pass: bool = None
    ''' Studio light image file has separate "diffuse" and "specular" passes

    :type: bool
    '''

    index: int = None
    ''' 

    :type: int
    '''

    is_user_defined: bool = None
    ''' 

    :type: bool
    '''

    light_ambient: typing.List[float] = None
    ''' Color of the ambient light that uniformly lit the scene

    :type: typing.List[float]
    '''

    name: str = None
    ''' 

    :type: str
    '''

    path: str = None
    ''' 

    :type: str
    '''

    path_irr_cache: str = None
    ''' Path where the irradiance cache is stored

    :type: str
    '''

    path_sh_cache: str = None
    ''' Path where the spherical harmonics cache is stored

    :type: str
    '''

    solid_lights: typing.Union[typing.Dict[str, 'UserSolidLight'], typing.
                               List['UserSolidLight'],
                               'bpy_prop_collection'] = None
    ''' Lights user to display objects in solid draw mode

    :type: typing.Union[typing.Dict[str, 'UserSolidLight'], typing.List['UserSolidLight'], 'bpy_prop_collection']
    '''

    spherical_harmonics_coefficients: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class StudioLights(bpy_struct):
    ''' Collection of studio lights
    '''

    def load(self, path: str, type: typing.Union[int, str]) -> 'StudioLight':
        ''' Load studiolight from file

        :param path: File Path, File path where the studio light file can be found
        :type path: str
        :param type: Type, The type for the new studio light
        :type type: typing.Union[int, str]
        :rtype: 'StudioLight'
        :return: Newly created StudioLight
        '''
        pass

    def new(self, path: str) -> 'StudioLight':
        ''' Create studiolight from default lighting

        :param path: Path, Path to the file that will contain the lighting info (without extension)
        :type path: str
        :rtype: 'StudioLight'
        :return: Newly created StudioLight
        '''
        pass

    def remove(self, studio_light: 'StudioLight'):
        ''' Remove a studio light

        :param studio_light: The studio light to remove
        :type studio_light: 'StudioLight'
        '''
        pass

    def refresh(self):
        ''' Refresh Studio Lights from disk

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TexMapping(bpy_struct):
    ''' Texture coordinate mapping settings
    '''

    mapping: typing.Union[int, str] = None
    ''' * FLAT Flat -- Map X and Y coordinates directly. * CUBE Cube -- Map using the normal vector. * TUBE Tube -- Map with Z as central axis. * SPHERE Sphere -- Map with Z as central axis.

    :type: typing.Union[int, str]
    '''

    mapping_x: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mapping_y: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mapping_z: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    max: typing.List[float] = None
    ''' Maximum value for clipping

    :type: typing.List[float]
    '''

    min: typing.List[float] = None
    ''' Minimum value for clipping

    :type: typing.List[float]
    '''

    rotation: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    scale: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    translation: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    use_max: bool = None
    ''' Whether to use maximum clipping value

    :type: bool
    '''

    use_min: bool = None
    ''' Whether to use minimum clipping value

    :type: bool
    '''

    vector_type: typing.Union[int, str] = None
    ''' Type of vector that the mapping transforms * POINT Point -- Transform a point. * TEXTURE Texture -- Transform a texture by inverse mapping the texture coordinate. * VECTOR Vector -- Transform a direction vector. Location is ignored. * NORMAL Normal -- Transform a unit normal vector. Location is ignored.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TexPaintSlot(bpy_struct):
    ''' Slot that contains information about texture painting
    '''

    is_valid: bool = None
    ''' Slot has a valid image and UV map

    :type: bool
    '''

    uv_layer: str = None
    ''' Name of UV map

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextBox(bpy_struct):
    ''' Text bounding box for layout
    '''

    height: float = None
    ''' 

    :type: float
    '''

    width: float = None
    ''' 

    :type: float
    '''

    x: float = None
    ''' 

    :type: float
    '''

    y: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextCharacterFormat(bpy_struct):
    ''' Text character formatting settings
    '''

    kerning: int = None
    ''' Spacing between characters

    :type: int
    '''

    material_index: int = None
    ''' Material slot index of this character

    :type: int
    '''

    use_bold: bool = None
    ''' 

    :type: bool
    '''

    use_italic: bool = None
    ''' 

    :type: bool
    '''

    use_small_caps: bool = None
    ''' 

    :type: bool
    '''

    use_underline: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextLine(bpy_struct):
    ''' Line of text in a Text data-block
    '''

    body: str = None
    ''' Text in the line

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureSlot(bpy_struct):
    ''' Texture slot defining the mapping and influence of a texture
    '''

    blend_type: typing.Union[int, str] = None
    ''' Mode used to apply the texture

    :type: typing.Union[int, str]
    '''

    color: typing.List[float] = None
    ''' Default color for textures that don't return RGB or when RGB to intensity is enabled

    :type: typing.List[float]
    '''

    default_value: float = None
    ''' Value to use for Ref, Spec, Amb, Emit, Alpha, RayMir, TransLu and Hard

    :type: float
    '''

    name: str = None
    ''' Texture slot name

    :type: str
    '''

    offset: typing.List[float] = None
    ''' Fine tune of the texture mapping X, Y and Z locations

    :type: typing.List[float]
    '''

    output_node: typing.Union[int, str] = None
    ''' Which output node to use, for node-based textures

    :type: typing.Union[int, str]
    '''

    scale: typing.List[float] = None
    ''' Set scaling for the texture's X, Y and Z sizes

    :type: typing.List[float]
    '''

    texture: 'Texture' = None
    ''' Texture data-block used by this texture slot

    :type: 'Texture'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Theme(bpy_struct):
    ''' User interface styling and color settings
    '''

    bone_color_sets: typing.Union[
        typing.Dict[str, 'ThemeBoneColorSet'], typing.
        List['ThemeBoneColorSet'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ThemeBoneColorSet'], typing.List['ThemeBoneColorSet'], 'bpy_prop_collection']
    '''

    clip_editor: 'ThemeClipEditor' = None
    ''' 

    :type: 'ThemeClipEditor'
    '''

    collection_color: typing.Union[
        typing.Dict[str, 'ThemeCollectionColor'], typing.
        List['ThemeCollectionColor'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ThemeCollectionColor'], typing.List['ThemeCollectionColor'], 'bpy_prop_collection']
    '''

    console: 'ThemeConsole' = None
    ''' 

    :type: 'ThemeConsole'
    '''

    dopesheet_editor: 'ThemeDopeSheet' = None
    ''' 

    :type: 'ThemeDopeSheet'
    '''

    file_browser: 'ThemeFileBrowser' = None
    ''' 

    :type: 'ThemeFileBrowser'
    '''

    graph_editor: 'ThemeGraphEditor' = None
    ''' 

    :type: 'ThemeGraphEditor'
    '''

    image_editor: 'ThemeImageEditor' = None
    ''' 

    :type: 'ThemeImageEditor'
    '''

    info: 'ThemeInfo' = None
    ''' 

    :type: 'ThemeInfo'
    '''

    name: str = None
    ''' Name of the theme

    :type: str
    '''

    nla_editor: 'ThemeNLAEditor' = None
    ''' 

    :type: 'ThemeNLAEditor'
    '''

    node_editor: 'ThemeNodeEditor' = None
    ''' 

    :type: 'ThemeNodeEditor'
    '''

    outliner: 'ThemeOutliner' = None
    ''' 

    :type: 'ThemeOutliner'
    '''

    preferences: 'ThemePreferences' = None
    ''' 

    :type: 'ThemePreferences'
    '''

    properties: 'ThemeProperties' = None
    ''' 

    :type: 'ThemeProperties'
    '''

    sequence_editor: 'ThemeSequenceEditor' = None
    ''' 

    :type: 'ThemeSequenceEditor'
    '''

    spreadsheet: 'ThemeSpreadsheet' = None
    ''' 

    :type: 'ThemeSpreadsheet'
    '''

    statusbar: 'ThemeStatusBar' = None
    ''' 

    :type: 'ThemeStatusBar'
    '''

    strip_color: typing.Union[typing.Dict[str, 'ThemeStripColor'], typing.
                              List['ThemeStripColor'],
                              'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ThemeStripColor'], typing.List['ThemeStripColor'], 'bpy_prop_collection']
    '''

    text_editor: 'ThemeTextEditor' = None
    ''' 

    :type: 'ThemeTextEditor'
    '''

    theme_area: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    topbar: 'ThemeTopBar' = None
    ''' 

    :type: 'ThemeTopBar'
    '''

    user_interface: 'ThemeUserInterface' = None
    ''' 

    :type: 'ThemeUserInterface'
    '''

    view_3d: 'ThemeView3D' = None
    ''' 

    :type: 'ThemeView3D'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeBoneColorSet(bpy_struct):
    ''' Theme settings for bone color sets
    '''

    active: typing.List[float] = None
    ''' Color used for active bones

    :type: typing.List[float]
    '''

    normal: typing.List[float] = None
    ''' Color used for the surface of bones

    :type: typing.List[float]
    '''

    select: typing.List[float] = None
    ''' Color used for selected bones

    :type: typing.List[float]
    '''

    show_colored_constraints: bool = None
    ''' Allow the use of colors indicating constraints/keyed status

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeClipEditor(bpy_struct):
    ''' Theme settings for the Movie Clip Editor
    '''

    active_marker: typing.List[float] = None
    ''' Color of active marker

    :type: typing.List[float]
    '''

    disabled_marker: typing.List[float] = None
    ''' Color of disabled marker

    :type: typing.List[float]
    '''

    frame_current: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_auto_clamped: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_auto_clamped: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex_size: int = None
    ''' 

    :type: int
    '''

    locked_marker: typing.List[float] = None
    ''' Color of locked marker

    :type: typing.List[float]
    '''

    marker: typing.List[float] = None
    ''' Color of marker

    :type: typing.List[float]
    '''

    marker_outline: typing.List[float] = None
    ''' Color of marker's outline

    :type: typing.List[float]
    '''

    metadatabg: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    metadatatext: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    path_after: typing.List[float] = None
    ''' Color of path after current frame

    :type: typing.List[float]
    '''

    path_before: typing.List[float] = None
    ''' Color of path before current frame

    :type: typing.List[float]
    '''

    path_keyframe_after: typing.List[float] = None
    ''' Color of path after current frame

    :type: typing.List[float]
    '''

    path_keyframe_before: typing.List[float] = None
    ''' Color of path before current frame

    :type: typing.List[float]
    '''

    selected_marker: typing.List[float] = None
    ''' Color of selected marker

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    space_list: 'ThemeSpaceListGeneric' = None
    ''' Settings for space list

    :type: 'ThemeSpaceListGeneric'
    '''

    strips: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    strips_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_marker_line: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_marker_line_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_scrub_background: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeCollectionColor(bpy_struct):
    ''' Theme settings for collection colors
    '''

    color: typing.List[float] = None
    ''' Collection Color Tag

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeConsole(bpy_struct):
    ''' Theme settings for the Console
    '''

    cursor: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    line_error: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    line_info: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    line_input: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    line_output: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeDopeSheet(bpy_struct):
    ''' Theme settings for the Dope Sheet
    '''

    active_channels_group: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    channel_group: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    channels: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    channels_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    dopesheet_channel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    dopesheet_subchannel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    frame_current: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    interpolation_line: typing.List[float] = None
    ''' Color of lines showing non-bezier interpolation modes

    :type: typing.List[float]
    '''

    keyframe: typing.List[float] = None
    ''' Color of Keyframe

    :type: typing.List[float]
    '''

    keyframe_border: typing.List[float] = None
    ''' Color of keyframe border

    :type: typing.List[float]
    '''

    keyframe_border_selected: typing.List[float] = None
    ''' Color of selected keyframe border

    :type: typing.List[float]
    '''

    keyframe_breakdown: typing.List[float] = None
    ''' Color of breakdown keyframe

    :type: typing.List[float]
    '''

    keyframe_breakdown_selected: typing.List[float] = None
    ''' Color of selected breakdown keyframe

    :type: typing.List[float]
    '''

    keyframe_extreme: typing.List[float] = None
    ''' Color of extreme keyframe

    :type: typing.List[float]
    '''

    keyframe_extreme_selected: typing.List[float] = None
    ''' Color of selected extreme keyframe

    :type: typing.List[float]
    '''

    keyframe_jitter: typing.List[float] = None
    ''' Color of jitter keyframe

    :type: typing.List[float]
    '''

    keyframe_jitter_selected: typing.List[float] = None
    ''' Color of selected jitter keyframe

    :type: typing.List[float]
    '''

    keyframe_movehold: typing.List[float] = None
    ''' Color of moving hold keyframe

    :type: typing.List[float]
    '''

    keyframe_movehold_selected: typing.List[float] = None
    ''' Color of selected moving hold keyframe

    :type: typing.List[float]
    '''

    keyframe_scale_factor: float = None
    ''' Scale factor for adjusting the height of keyframes

    :type: float
    '''

    keyframe_selected: typing.List[float] = None
    ''' Color of selected keyframe

    :type: typing.List[float]
    '''

    long_key: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    long_key_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_range: typing.List[float] = None
    ''' Color of preview range overlay

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    space_list: 'ThemeSpaceListGeneric' = None
    ''' Settings for space list

    :type: 'ThemeSpaceListGeneric'
    '''

    summary: typing.List[float] = None
    ''' Color of summary channel

    :type: typing.List[float]
    '''

    time_marker_line: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_marker_line_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_scrub_background: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    value_sliders: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    view_sliders: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeFileBrowser(bpy_struct):
    ''' Theme settings for the File Browser
    '''

    row_alternate: typing.List[float] = None
    ''' Overlay color on every other row

    :type: typing.List[float]
    '''

    selected_file: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeFontStyle(bpy_struct):
    ''' Theme settings for Font
    '''

    points: float = None
    ''' Font size in points

    :type: float
    '''

    shadow: int = None
    ''' Shadow size (0, 3 and 5 supported)

    :type: int
    '''

    shadow_alpha: float = None
    ''' 

    :type: float
    '''

    shadow_offset_x: int = None
    ''' Shadow offset in pixels

    :type: int
    '''

    shadow_offset_y: int = None
    ''' Shadow offset in pixels

    :type: int
    '''

    shadow_value: float = None
    ''' Shadow color in gray value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeGradientColors(bpy_struct):
    ''' Theme settings for background colors and gradient
    '''

    background_type: typing.Union[int, str] = None
    ''' Type of background in the 3D viewport * SINGLE_COLOR Single Color -- Use a solid color as viewport background. * LINEAR Linear Gradient -- Use a screen space vertical linear gradient as viewport background. * RADIAL Vignette -- Use a radial gradient as viewport background.

    :type: typing.Union[int, str]
    '''

    gradient: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    high_gradient: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeGraphEditor(bpy_struct):
    ''' Theme settings for the graph editor
    '''

    active_channels_group: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    channel_group: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    channels_region: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    dopesheet_channel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    dopesheet_subchannel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    frame_current: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_auto_clamped: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_auto_clamped: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_vect: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vect: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex_size: int = None
    ''' 

    :type: int
    '''

    lastsel_point: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_range: typing.List[float] = None
    ''' Color of preview range overlay

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    space_list: 'ThemeSpaceListGeneric' = None
    ''' Settings for space list

    :type: 'ThemeSpaceListGeneric'
    '''

    time_marker_line: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_marker_line_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_scrub_background: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_bevel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_size: int = None
    ''' 

    :type: int
    '''

    vertex_unreferenced: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    window_sliders: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeImageEditor(bpy_struct):
    ''' Theme settings for the Image Editor
    '''

    edge_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    editmesh_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_dot: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_front: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    facedot_size: int = None
    ''' 

    :type: int
    '''

    frame_current: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    freestyle_face_mark: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_auto_clamped: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_auto_clamped: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vertex_size: int = None
    ''' 

    :type: int
    '''

    metadatabg: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    metadatatext: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    paint_curve_handle: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    paint_curve_pivot: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_stitch_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_stitch_edge: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_stitch_face: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_stitch_stitchable: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_stitch_unstitchable: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_stitch_vert: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    scope_back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    uv_shadow: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_bevel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_size: int = None
    ''' 

    :type: int
    '''

    vertex_unreferenced: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    wire_edit: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeInfo(bpy_struct):
    ''' Theme settings for Info
    '''

    info_debug: typing.List[float] = None
    ''' Background color of Debug icon

    :type: typing.List[float]
    '''

    info_debug_text: typing.List[float] = None
    ''' Foreground color of Debug icon

    :type: typing.List[float]
    '''

    info_error: typing.List[float] = None
    ''' Background color of Error icon

    :type: typing.List[float]
    '''

    info_error_text: typing.List[float] = None
    ''' Foreground color of Error icon

    :type: typing.List[float]
    '''

    info_info: typing.List[float] = None
    ''' Background color of Info icon

    :type: typing.List[float]
    '''

    info_info_text: typing.List[float] = None
    ''' Foreground color of Info icon

    :type: typing.List[float]
    '''

    info_operator: typing.List[float] = None
    ''' Background color of Operator icon

    :type: typing.List[float]
    '''

    info_operator_text: typing.List[float] = None
    ''' Foreground color of Operator icon

    :type: typing.List[float]
    '''

    info_property: typing.List[float] = None
    ''' Background color of Property icon

    :type: typing.List[float]
    '''

    info_property_text: typing.List[float] = None
    ''' Foreground color of Property icon

    :type: typing.List[float]
    '''

    info_selected: typing.List[float] = None
    ''' Background color of selected line

    :type: typing.List[float]
    '''

    info_selected_text: typing.List[float] = None
    ''' Text color of selected line

    :type: typing.List[float]
    '''

    info_warning: typing.List[float] = None
    ''' Background color of Warning icon

    :type: typing.List[float]
    '''

    info_warning_text: typing.List[float] = None
    ''' Foreground color of Warning icon

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeNLAEditor(bpy_struct):
    ''' Theme settings for the NLA Editor
    '''

    active_action: typing.List[float] = None
    ''' Animation data-block has active action

    :type: typing.List[float]
    '''

    active_action_unset: typing.List[float] = None
    ''' Animation data-block doesn't have active action

    :type: typing.List[float]
    '''

    dopesheet_channel: typing.List[float] = None
    ''' Nonlinear Animation Channel

    :type: typing.List[float]
    '''

    frame_current: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    keyframe_border: typing.List[float] = None
    ''' Color of keyframe border

    :type: typing.List[float]
    '''

    keyframe_border_selected: typing.List[float] = None
    ''' Color of selected keyframe border

    :type: typing.List[float]
    '''

    meta_strips: typing.List[float] = None
    ''' Unselected Meta Strip (for grouping related strips)

    :type: typing.List[float]
    '''

    meta_strips_selected: typing.List[float] = None
    ''' Selected Meta Strip (for grouping related strips)

    :type: typing.List[float]
    '''

    nla_track: typing.List[float] = None
    ''' Nonlinear Animation Track

    :type: typing.List[float]
    '''

    preview_range: typing.List[float] = None
    ''' Color of preview range overlay

    :type: typing.List[float]
    '''

    sound_strips: typing.List[float] = None
    ''' Unselected Sound Strip (for timing speaker sounds)

    :type: typing.List[float]
    '''

    sound_strips_selected: typing.List[float] = None
    ''' Selected Sound Strip (for timing speaker sounds)

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    space_list: 'ThemeSpaceListGeneric' = None
    ''' Settings for space list

    :type: 'ThemeSpaceListGeneric'
    '''

    strips: typing.List[float] = None
    ''' Unselected Action-Clip Strip

    :type: typing.List[float]
    '''

    strips_selected: typing.List[float] = None
    ''' Selected Action-Clip Strip

    :type: typing.List[float]
    '''

    time_marker_line: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_marker_line_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_scrub_background: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    transition_strips: typing.List[float] = None
    ''' Unselected Transition Strip

    :type: typing.List[float]
    '''

    transition_strips_selected: typing.List[float] = None
    ''' Selected Transition Strip

    :type: typing.List[float]
    '''

    tweak: typing.List[float] = None
    ''' Color for strip/action being "tweaked" or edited

    :type: typing.List[float]
    '''

    tweak_duplicate: typing.List[float] = None
    ''' Warning/error indicator color for strips referencing the strip being tweaked

    :type: typing.List[float]
    '''

    view_sliders: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeNodeEditor(bpy_struct):
    ''' Theme settings for the Node Editor
    '''

    attribute_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    color_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    converter_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    dash_alpha: float = None
    ''' Opacity for the dashed lines in wires

    :type: float
    '''

    distor_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    filter_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    frame_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    geometry_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid_levels: int = None
    ''' Number of subdivisions for the dot grid displayed in the background

    :type: int
    '''

    group_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    group_socket_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    input_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    layout_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    matte_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    node_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    node_backdrop: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    node_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    noodle_curving: int = None
    ''' Curving of the noodle

    :type: int
    '''

    output_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    pattern_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    script_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    selected_text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    shader_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    space_list: 'ThemeSpaceListGeneric' = None
    ''' Settings for space list

    :type: 'ThemeSpaceListGeneric'
    '''

    texture_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vector_node: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    wire: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    wire_inner: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    wire_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeOutliner(bpy_struct):
    ''' Theme settings for the Outliner
    '''

    active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    active_object: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    edited_object: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    match: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    row_alternate: typing.List[float] = None
    ''' Overlay color on every other row

    :type: typing.List[float]
    '''

    selected_highlight: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    selected_object: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemePanelColors(bpy_struct):
    ''' Theme settings for panel colors
    '''

    back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    header: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    sub_back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemePreferences(bpy_struct):
    ''' Theme settings for the Blender Preferences
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeProperties(bpy_struct):
    ''' Theme settings for the Properties
    '''

    active_modifier: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    match: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeSequenceEditor(bpy_struct):
    ''' Theme settings for the Sequence Editor
    '''

    active_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    audio_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    color_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    draw_action: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    effect_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    frame_current: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    image_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    keyframe: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    mask_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    meta_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    metadatabg: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    metadatatext: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    movie_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    movieclip_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    preview_range: typing.List[float] = None
    ''' Color of preview range overlay

    :type: typing.List[float]
    '''

    row_alternate: typing.List[float] = None
    ''' Overlay color on every other row

    :type: typing.List[float]
    '''

    scene_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    selected_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    text_strip: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_marker_line: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_marker_line_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    time_scrub_background: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    window_sliders: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeSpaceGeneric(bpy_struct):
    back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    button: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    button_text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    button_text_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    button_title: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    execution_buts: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    header: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    header_text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    header_text_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    navigation_bar: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    panelcolors: 'ThemePanelColors' = None
    ''' 

    :type: 'ThemePanelColors'
    '''

    tab_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    tab_back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    tab_inactive: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    tab_outline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    text_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    title: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeSpaceGradient(bpy_struct):
    button: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    button_text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    button_text_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    button_title: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    execution_buts: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gradients: 'ThemeGradientColors' = None
    ''' 

    :type: 'ThemeGradientColors'
    '''

    header: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    header_text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    header_text_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    navigation_bar: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    panelcolors: 'ThemePanelColors' = None
    ''' 

    :type: 'ThemePanelColors'
    '''

    tab_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    tab_back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    tab_inactive: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    tab_outline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    text_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    title: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeSpaceListGeneric(bpy_struct):
    list: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    list_text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    list_text_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    list_title: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeSpreadsheet(bpy_struct):
    ''' Theme settings for the Spreadsheet
    '''

    row_alternate: typing.List[float] = None
    ''' Overlay color on every other row

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    space_list: 'ThemeSpaceListGeneric' = None
    ''' Settings for space list

    :type: 'ThemeSpaceListGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeStatusBar(bpy_struct):
    ''' Theme settings for the Status Bar
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeStripColor(bpy_struct):
    ''' Theme settings for strip colors
    '''

    color: typing.List[float] = None
    ''' Strip Color

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeStyle(bpy_struct):
    ''' Theme settings for style sets
    '''

    panel_title: 'ThemeFontStyle' = None
    ''' 

    :type: 'ThemeFontStyle'
    '''

    widget: 'ThemeFontStyle' = None
    ''' 

    :type: 'ThemeFontStyle'
    '''

    widget_label: 'ThemeFontStyle' = None
    ''' 

    :type: 'ThemeFontStyle'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeTextEditor(bpy_struct):
    ''' Theme settings for the Text Editor
    '''

    cursor: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    line_numbers: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    line_numbers_background: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    selected_text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    syntax_builtin: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    syntax_comment: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    syntax_numbers: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    syntax_preprocessor: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    syntax_reserved: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    syntax_special: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    syntax_string: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    syntax_symbols: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeTopBar(bpy_struct):
    ''' Theme settings for the Top Bar
    '''

    space: 'ThemeSpaceGeneric' = None
    ''' Settings for space

    :type: 'ThemeSpaceGeneric'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeUserInterface(bpy_struct):
    ''' Theme settings for user interface elements
    '''

    axis_x: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    axis_y: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    axis_z: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    editor_outline: typing.List[float] = None
    ''' Color of the outline of the editors and their round corners

    :type: typing.List[float]
    '''

    gizmo_a: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gizmo_b: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gizmo_hi: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gizmo_primary: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gizmo_secondary: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gizmo_view_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    icon_alpha: float = None
    ''' Transparency of icons in the interface, to reduce contrast

    :type: float
    '''

    icon_border_intensity: float = None
    ''' Control the intensity of the border around themes icons

    :type: float
    '''

    icon_collection: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    icon_folder: typing.List[float] = None
    ''' Color of folders in the file browser

    :type: typing.List[float]
    '''

    icon_modifier: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    icon_object: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    icon_object_data: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    icon_saturation: float = None
    ''' Saturation of icons in the interface

    :type: float
    '''

    icon_scene: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    icon_shading: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    menu_shadow_fac: float = None
    ''' Blending factor for menu shadows

    :type: float
    '''

    menu_shadow_width: int = None
    ''' Width of menu shadows, set to zero to disable

    :type: int
    '''

    panel_roundness: float = None
    ''' Roundness of the corners of panels and sub-panels

    :type: float
    '''

    transparent_checker_primary: typing.List[float] = None
    ''' Primary color of checkerboard pattern indicating transparent areas

    :type: typing.List[float]
    '''

    transparent_checker_secondary: typing.List[float] = None
    ''' Secondary color of checkerboard pattern indicating transparent areas

    :type: typing.List[float]
    '''

    transparent_checker_size: int = None
    ''' Size of checkerboard pattern indicating transparent areas

    :type: int
    '''

    wcol_box: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_list_item: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_menu: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_menu_back: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_menu_item: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_num: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_numslider: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_option: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_pie_menu: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_progress: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_pulldown: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_radio: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_regular: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_scroll: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_state: 'ThemeWidgetStateColors' = None
    ''' 

    :type: 'ThemeWidgetStateColors'
    '''

    wcol_tab: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_text: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_toggle: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_tool: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_toolbar_item: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    wcol_tooltip: 'ThemeWidgetColors' = None
    ''' 

    :type: 'ThemeWidgetColors'
    '''

    widget_emboss: typing.List[float] = None
    ''' Color of the 1px shadow line underlying widgets

    :type: typing.List[float]
    '''

    widget_text_cursor: typing.List[float] = None
    ''' Color of the interface widgets text insertion cursor (caret)

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeView3D(bpy_struct):
    ''' Theme settings for the 3D View
    '''

    act_spline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    bone_locked_weight: typing.List[float] = None
    ''' Shade for bones corresponding to a locked weight group during painting

    :type: typing.List[float]
    '''

    bone_pose: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    bone_pose_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    bone_solid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    bundle_solid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    camera: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    camera_path: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    clipping_border_3d: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    edge_bevel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    edge_crease: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    edge_facesel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    edge_seam: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    edge_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    edge_sharp: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    editmesh_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    empty: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    extra_edge_angle: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    extra_edge_len: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    extra_face_angle: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    extra_face_area: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_back: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_dot: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_front: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    face_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    facedot_size: int = None
    ''' 

    :type: int
    '''

    frame_current: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    freestyle_edge_mark: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    freestyle_face_mark: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gp_vertex: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gp_vertex_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    gp_vertex_size: int = None
    ''' 

    :type: int
    '''

    grid: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_align: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_auto: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_free: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_sel_vect: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    handle_vect: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    lastsel_point: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    light: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    normal: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    nurb_sel_uline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    nurb_sel_vline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    nurb_uline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    nurb_vline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    object_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    object_origin_size: int = None
    ''' Diameter in pixels for object/light origin display

    :type: int
    '''

    object_selected: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    outline_width: int = None
    ''' 

    :type: int
    '''

    paint_curve_handle: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    paint_curve_pivot: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    skin_root: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    space: 'ThemeSpaceGradient' = None
    ''' Settings for space

    :type: 'ThemeSpaceGradient'
    '''

    speaker: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    split_normal: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    text_grease_pencil: typing.List[float] = None
    ''' Color for indicating Grease Pencil keyframes

    :type: typing.List[float]
    '''

    text_keyframe: typing.List[float] = None
    ''' Color for indicating object keyframes

    :type: typing.List[float]
    '''

    transform: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_active: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_bevel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_normal: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_select: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    vertex_size: int = None
    ''' 

    :type: int
    '''

    vertex_unreferenced: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    view_overlay: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    wire: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    wire_edit: typing.List[float] = None
    ''' Color for wireframe when in edit mode, but edge selection is active

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeWidgetColors(bpy_struct):
    ''' Theme settings for widget color sets
    '''

    inner: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_sel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    item: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    outline: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    roundness: float = None
    ''' Amount of edge rounding

    :type: float
    '''

    shadedown: int = None
    ''' 

    :type: int
    '''

    shadetop: int = None
    ''' 

    :type: int
    '''

    show_shaded: bool = None
    ''' 

    :type: bool
    '''

    text: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    text_sel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThemeWidgetStateColors(bpy_struct):
    ''' Theme settings for widget state colors
    '''

    blend: float = None
    ''' 

    :type: float
    '''

    inner_anim: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_anim_sel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_changed: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_changed_sel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_driven: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_driven_sel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_key: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_key_sel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_overridden: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    inner_overridden_sel: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TimelineMarker(bpy_struct):
    ''' Marker for noting points in the timeline
    '''

    camera: 'Object' = None
    ''' Camera that becomes active on this frame

    :type: 'Object'
    '''

    frame: int = None
    ''' The frame on which the timeline marker appears

    :type: int
    '''

    name: str = None
    ''' 

    :type: str
    '''

    select: bool = None
    ''' Marker selection state

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TimelineMarkers(bpy_struct):
    ''' Collection of timeline markers
    '''

    def new(self, name: str, frame: int = 1) -> 'TimelineMarker':
        ''' Add a keyframe to the curve

        :param name: New name for the marker (not unique)
        :type name: str
        :param frame: The frame for the new marker
        :type frame: int
        :rtype: 'TimelineMarker'
        :return: Newly created timeline marker
        '''
        pass

    def remove(self, marker: 'TimelineMarker'):
        ''' Remove a timeline marker

        :param marker: Timeline marker to remove
        :type marker: 'TimelineMarker'
        '''
        pass

    def clear(self):
        ''' Remove all timeline markers

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Timer(bpy_struct):
    ''' Window event timer
    '''

    time_delta: float = None
    ''' Time since last step in seconds

    :type: float
    '''

    time_duration: float = None
    ''' Time since last step in seconds

    :type: float
    '''

    time_step: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ToolSettings(bpy_struct):
    annotation_stroke_placement_view2d: typing.Union[int, str] = None
    ''' * IMAGE Image -- Stick stroke to the image. * VIEW View -- Stick stroke to the view.

    :type: typing.Union[int, str]
    '''

    annotation_stroke_placement_view3d: typing.Union[int, str] = None
    ''' How annotation strokes are orientated in 3D space * CURSOR 3D Cursor -- Draw stroke at 3D cursor location. * VIEW View -- Stick stroke to the view. * SURFACE Surface -- Stick stroke to surfaces.

    :type: typing.Union[int, str]
    '''

    annotation_thickness: int = None
    ''' Thickness of annotation strokes

    :type: int
    '''

    auto_keying_mode: typing.Union[int, str] = None
    ''' Mode of automatic keyframe insertion for Objects, Bones and Masks

    :type: typing.Union[int, str]
    '''

    curve_paint_settings: 'CurvePaintSettings' = None
    ''' 

    :type: 'CurvePaintSettings'
    '''

    custom_bevel_profile_preset: 'CurveProfile' = None
    ''' Used for defining a profile's path

    :type: 'CurveProfile'
    '''

    double_threshold: float = None
    ''' Threshold distance for Auto Merge

    :type: float
    '''

    gpencil_interpolate: 'GPencilInterpolateSettings' = None
    ''' Settings for Grease Pencil Interpolation tools

    :type: 'GPencilInterpolateSettings'
    '''

    gpencil_paint: 'GpPaint' = None
    ''' 

    :type: 'GpPaint'
    '''

    gpencil_sculpt: 'GPencilSculptSettings' = None
    ''' Settings for stroke sculpting tools and brushes

    :type: 'GPencilSculptSettings'
    '''

    gpencil_sculpt_paint: 'GpSculptPaint' = None
    ''' 

    :type: 'GpSculptPaint'
    '''

    gpencil_selectmode_edit: typing.Union[int, str] = None
    ''' * POINT Point -- Select only points. * STROKE Stroke -- Select all stroke points. * SEGMENT Segment -- Select all stroke points between other strokes.

    :type: typing.Union[int, str]
    '''

    gpencil_stroke_placement_view3d: typing.Union[int, str] = None
    ''' * ORIGIN Origin -- Draw stroke at Object origin. * CURSOR 3D Cursor -- Draw stroke at 3D cursor location. * SURFACE Surface -- Stick stroke to surfaces. * STROKE Stroke -- Stick stroke to other strokes.

    :type: typing.Union[int, str]
    '''

    gpencil_stroke_snap_mode: typing.Union[int, str] = None
    ''' * NONE All Points -- Snap to all points. * ENDS End Points -- Snap to first and last points and interpolate. * FIRST First Point -- Snap to first point.

    :type: typing.Union[int, str]
    '''

    gpencil_vertex_paint: 'GpVertexPaint' = None
    ''' 

    :type: 'GpVertexPaint'
    '''

    gpencil_weight_paint: 'GpWeightPaint' = None
    ''' 

    :type: 'GpWeightPaint'
    '''

    image_paint: 'ImagePaint' = None
    ''' 

    :type: 'ImagePaint'
    '''

    keyframe_type: typing.Union[int, str] = None
    ''' Type of keyframes to create when inserting keyframes * KEYFRAME Keyframe -- Normal keyframe, e.g. for key poses. * BREAKDOWN Breakdown -- A breakdown pose, e.g. for transitions between key poses. * MOVING_HOLD Moving Hold -- A keyframe that is part of a moving hold. * EXTREME Extreme -- An "extreme" pose, or some other purpose as needed. * JITTER Jitter -- A filler or baked keyframe for keying on ones, or some other purpose as needed.

    :type: typing.Union[int, str]
    '''

    lock_markers: bool = None
    ''' Prevent marker editing

    :type: bool
    '''

    lock_object_mode: bool = None
    ''' Restrict select to the current mode

    :type: bool
    '''

    mesh_select_mode: typing.List[bool] = None
    ''' Which mesh elements selection works on

    :type: typing.List[bool]
    '''

    normal_vector: typing.List[float] = None
    ''' Normal Vector used to copy, add or multiply

    :type: typing.List[float]
    '''

    particle_edit: 'ParticleEdit' = None
    ''' 

    :type: 'ParticleEdit'
    '''

    proportional_edit_falloff: typing.Union[int, str] = None
    ''' Falloff type for proportional editing mode * SMOOTH Smooth -- Smooth falloff. * SPHERE Sphere -- Spherical falloff. * ROOT Root -- Root falloff. * INVERSE_SQUARE Inverse Square -- Inverse Square falloff. * SHARP Sharp -- Sharp falloff. * LINEAR Linear -- Linear falloff. * CONSTANT Constant -- Constant falloff. * RANDOM Random -- Random falloff.

    :type: typing.Union[int, str]
    '''

    proportional_size: float = None
    ''' Display size for proportional editing circle

    :type: float
    '''

    sculpt: 'Sculpt' = None
    ''' 

    :type: 'Sculpt'
    '''

    sequencer_tool_settings: 'SequencerToolSettings' = None
    ''' 

    :type: 'SequencerToolSettings'
    '''

    show_uv_local_view: bool = None
    ''' Display only faces with the currently displayed image assigned

    :type: bool
    '''

    snap_elements: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Type of element to snap to * INCREMENT Increment -- Snap to increments of grid. * VERTEX Vertex -- Snap to vertices. * EDGE Edge -- Snap to edges. * FACE Face -- Snap to faces. * VOLUME Volume -- Snap to volume. * EDGE_MIDPOINT Edge Center -- Snap to the middle of edges. * EDGE_PERPENDICULAR Edge Perpendicular -- Snap to the nearest point on an edge.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    snap_node_element: typing.Union[int, str] = None
    ''' Type of element to snap to * GRID Grid -- Snap to grid. * NODE_X Node X -- Snap to left/right node border. * NODE_Y Node Y -- Snap to top/bottom node border. * NODE_XY Node X / Y -- Snap to any node border.

    :type: typing.Union[int, str]
    '''

    snap_target: typing.Union[int, str] = None
    ''' Which part to snap onto the target * CLOSEST Closest -- Snap closest point onto target. * CENTER Center -- Snap transformation center onto target. * MEDIAN Median -- Snap median onto target. * ACTIVE Active -- Snap active onto target.

    :type: typing.Union[int, str]
    '''

    snap_uv_element: typing.Union[int, str] = None
    ''' Type of element to snap to * INCREMENT Increment -- Snap to increments of grid. * VERTEX Vertex -- Snap to vertices.

    :type: typing.Union[int, str]
    '''

    statvis: 'MeshStatVis' = None
    ''' 

    :type: 'MeshStatVis'
    '''

    transform_pivot_point: typing.Union[int, str] = None
    ''' Pivot center for rotation/scaling * BOUNDING_BOX_CENTER Bounding Box Center -- Pivot around bounding box center of selected object(s). * CURSOR 3D Cursor -- Pivot around the 3D cursor. * INDIVIDUAL_ORIGINS Individual Origins -- Pivot around each object's own origin. * MEDIAN_POINT Median Point -- Pivot around the median point of selected objects. * ACTIVE_ELEMENT Active Element -- Pivot around active object.

    :type: typing.Union[int, str]
    '''

    unified_paint_settings: 'UnifiedPaintSettings' = None
    ''' 

    :type: 'UnifiedPaintSettings'
    '''

    use_auto_normalize: bool = None
    ''' Ensure all bone-deforming vertex groups add up to 1.0 while weight painting

    :type: bool
    '''

    use_edge_path_live_unwrap: bool = None
    ''' Changing edge seams recalculates UV unwrap

    :type: bool
    '''

    use_gpencil_automerge_strokes: bool = None
    ''' Join by distance last drawn stroke with previous strokes in the active layer

    :type: bool
    '''

    use_gpencil_draw_additive: bool = None
    ''' When creating new frames, the strokes from the previous/active frame are included as the basis for the new one

    :type: bool
    '''

    use_gpencil_draw_onback: bool = None
    ''' When draw new strokes, the new stroke is drawn below of all strokes in the layer

    :type: bool
    '''

    use_gpencil_select_mask_point: bool = None
    ''' Only sculpt selected stroke points

    :type: bool
    '''

    use_gpencil_select_mask_segment: bool = None
    ''' Only sculpt selected stroke points between other strokes

    :type: bool
    '''

    use_gpencil_select_mask_stroke: bool = None
    ''' Only sculpt selected stroke

    :type: bool
    '''

    use_gpencil_stroke_endpoints: bool = None
    ''' Only use the first and last parts of the stroke for snapping

    :type: bool
    '''

    use_gpencil_thumbnail_list: bool = None
    ''' Show compact list of color instead of thumbnails

    :type: bool
    '''

    use_gpencil_vertex_select_mask_point: bool = None
    ''' Only paint selected stroke points

    :type: bool
    '''

    use_gpencil_vertex_select_mask_segment: bool = None
    ''' Only paint selected stroke points between other strokes

    :type: bool
    '''

    use_gpencil_vertex_select_mask_stroke: bool = None
    ''' Only paint selected stroke

    :type: bool
    '''

    use_gpencil_weight_data_add: bool = None
    ''' When creating new strokes, the weight data is added according to the current vertex group and weight, if no vertex group selected, weight is not added

    :type: bool
    '''

    use_keyframe_cycle_aware: bool = None
    ''' For channels with cyclic extrapolation, keyframe insertion is automatically remapped inside the cycle time range, and keeps ends in sync. Curves newly added to actions with a Manual Frame Range and Cyclic Animation are automatically made cyclic

    :type: bool
    '''

    use_keyframe_insert_auto: bool = None
    ''' Automatic keyframe insertion for Objects, Bones and Masks

    :type: bool
    '''

    use_keyframe_insert_keyingset: bool = None
    ''' Automatic keyframe insertion using active Keying Set only

    :type: bool
    '''

    use_lock_relative: bool = None
    ''' Display bone-deforming groups as if all locked deform groups were deleted, and the remaining ones were re-normalized

    :type: bool
    '''

    use_mesh_automerge: bool = None
    ''' Automatically merge vertices moved to the same location

    :type: bool
    '''

    use_mesh_automerge_and_split: bool = None
    ''' Automatically split edges and faces

    :type: bool
    '''

    use_multipaint: bool = None
    ''' Paint across the weights of all selected bones, maintaining their relative influence

    :type: bool
    '''

    use_proportional_action: bool = None
    ''' Proportional editing in action editor

    :type: bool
    '''

    use_proportional_connected: bool = None
    ''' Proportional Editing using connected geometry only

    :type: bool
    '''

    use_proportional_edit: bool = None
    ''' Proportional edit mode

    :type: bool
    '''

    use_proportional_edit_mask: bool = None
    ''' Proportional editing mask mode

    :type: bool
    '''

    use_proportional_edit_objects: bool = None
    ''' Proportional editing object mode

    :type: bool
    '''

    use_proportional_fcurve: bool = None
    ''' Proportional editing in FCurve editor

    :type: bool
    '''

    use_proportional_projected: bool = None
    ''' Proportional Editing using screen space locations

    :type: bool
    '''

    use_record_with_nla: bool = None
    ''' Add a new NLA Track + Strip for every loop/pass made over the animation to allow non-destructive tweaking

    :type: bool
    '''

    use_snap: bool = None
    ''' Snap during transform

    :type: bool
    '''

    use_snap_align_rotation: bool = None
    ''' Align rotation with the snapping target

    :type: bool
    '''

    use_snap_backface_culling: bool = None
    ''' Exclude back facing geometry from snapping

    :type: bool
    '''

    use_snap_grid_absolute: bool = None
    ''' Absolute grid alignment while translating (based on the pivot center)

    :type: bool
    '''

    use_snap_peel_object: bool = None
    ''' Consider objects as whole when finding volume center

    :type: bool
    '''

    use_snap_project: bool = None
    ''' Project individual elements on the surface of other objects

    :type: bool
    '''

    use_snap_rotate: bool = None
    ''' Rotate is affected by the snapping settings

    :type: bool
    '''

    use_snap_scale: bool = None
    ''' Scale is affected by snapping settings

    :type: bool
    '''

    use_snap_self: bool = None
    ''' Snap onto itself (Edit Mode Only)

    :type: bool
    '''

    use_snap_sequencer: bool = None
    ''' Snap to strip edges or current frame

    :type: bool
    '''

    use_snap_translate: bool = None
    ''' Move is affected by snapping settings

    :type: bool
    '''

    use_snap_uv_grid_absolute: bool = None
    ''' Absolute grid alignment while translating (based on the pivot center)

    :type: bool
    '''

    use_transform_correct_face_attributes: bool = None
    ''' Correct data such as UV's and vertex colors when transforming

    :type: bool
    '''

    use_transform_correct_keep_connected: bool = None
    ''' During the Face Attributes correction, merge attributes connected to the same vertex

    :type: bool
    '''

    use_transform_data_origin: bool = None
    ''' Transform object origins, while leaving the shape in place

    :type: bool
    '''

    use_transform_pivot_point_align: bool = None
    ''' Only transform object locations, without affecting rotation or scaling

    :type: bool
    '''

    use_transform_skip_children: bool = None
    ''' Transform the parents, leaving the children in place

    :type: bool
    '''

    use_uv_select_sync: bool = None
    ''' Keep UV and edit mode mesh selection in sync

    :type: bool
    '''

    uv_relax_method: typing.Union[int, str] = None
    ''' Algorithm used for UV relaxation * LAPLACIAN Laplacian -- Use Laplacian method for relaxation. * HC HC -- Use HC method for relaxation.

    :type: typing.Union[int, str]
    '''

    uv_sculpt: 'UvSculpt' = None
    ''' 

    :type: 'UvSculpt'
    '''

    uv_sculpt_all_islands: bool = None
    ''' Brush operates on all islands

    :type: bool
    '''

    uv_sculpt_lock_borders: bool = None
    ''' Disable editing of boundary edges

    :type: bool
    '''

    uv_select_mode: typing.Union[int, str] = None
    ''' UV selection and display mode * VERTEX Vertex -- Vertex selection mode. * EDGE Edge -- Edge selection mode. * FACE Face -- Face selection mode. * ISLAND Island -- Island selection mode.

    :type: typing.Union[int, str]
    '''

    vertex_group_subset: typing.Union[int, str] = None
    ''' Filter Vertex groups for Display * ALL All -- All Vertex Groups. * BONE_DEFORM Deform -- Vertex Groups assigned to Deform Bones. * OTHER_DEFORM Other -- Vertex Groups assigned to non Deform Bones.

    :type: typing.Union[int, str]
    '''

    vertex_group_user: typing.Union[int, str] = None
    ''' Display unweighted vertices * NONE None. * ACTIVE Active -- Show vertices with no weights in the active group. * ALL All -- Show vertices with no weights in any group.

    :type: typing.Union[int, str]
    '''

    vertex_group_weight: float = None
    ''' Weight to assign in vertex groups

    :type: float
    '''

    vertex_paint: 'VertexPaint' = None
    ''' 

    :type: 'VertexPaint'
    '''

    weight_paint: 'VertexPaint' = None
    ''' 

    :type: 'VertexPaint'
    '''

    workspace_tool_type: typing.Union[int, str] = None
    ''' Action when dragging in the viewport

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TransformOrientation(bpy_struct):
    matrix: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    name: str = None
    ''' Name of the custom transform orientation

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TransformOrientationSlot(bpy_struct):
    custom_orientation: 'TransformOrientation' = None
    ''' 

    :type: 'TransformOrientation'
    '''

    type: typing.Union[int, str] = None
    ''' Transformation orientation * GLOBAL Global -- Align the transformation axes to world space. * LOCAL Local -- Align the transformation axes to the selected objects' local space. * NORMAL Normal -- Align the transformation axes to average normal of selected elements (bone Y axis for pose mode). * GIMBAL Gimbal -- Align each axis to the Euler rotation axis as used for input. * VIEW View -- Align the transformation axes to the window. * CURSOR Cursor -- Align the transformation axes to the 3D cursor.

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Use scene orientation instead of a custom setting

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UDIMTile(bpy_struct):
    ''' Properties of the UDIM tile
    '''

    label: str = None
    ''' Tile label

    :type: str
    '''

    number: int = None
    ''' Number of the position that this tile covers

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UDIMTiles(bpy_struct):
    ''' Collection of UDIM tiles
    '''

    active: 'UDIMTile' = None
    ''' Active Image Tile

    :type: 'UDIMTile'
    '''

    active_index: int = None
    ''' Active index in tiles array

    :type: int
    '''

    def new(self, tile_number: int, label: str = "") -> 'UDIMTile':
        ''' Add a tile to the image

        :param tile_number: Number of the newly created tile
        :type tile_number: int
        :param label: Optional label for the tile
        :type label: str
        :rtype: 'UDIMTile'
        :return: Newly created image tile
        '''
        pass

    def get(self, tile_number: int) -> 'UDIMTile':
        ''' Get a tile based on its tile number

        :param tile_number: Number of the tile
        :type tile_number: int
        :rtype: 'UDIMTile'
        :return: The tile
        '''
        pass

    def remove(self, tile: 'UDIMTile'):
        ''' Remove an image tile

        :param tile: Image tile to remove
        :type tile: 'UDIMTile'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UILayout(bpy_struct):
    ''' User interface layout in a panel or header
    '''

    activate_init: bool = None
    ''' When true, buttons defined in popups will be activated on first display (use so you can type into a field without having to click on it first)

    :type: bool
    '''

    active: bool = None
    ''' 

    :type: bool
    '''

    active_default: bool = None
    ''' When true, an operator button defined after this will be activated when pressing return(use with popup dialogs)

    :type: bool
    '''

    alert: bool = None
    ''' 

    :type: bool
    '''

    alignment: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    direction: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    emboss: typing.Union[int, str] = None
    ''' * NORMAL Regular -- Draw standard button emboss style. * NONE None -- Draw only text and icons. * PULLDOWN_MENU Pulldown Menu -- Draw pulldown menu style. * RADIAL_MENU Radial Menu -- Draw radial menu style. * NONE_OR_STATUS None or Status -- Draw with no emboss unless the button has a coloring status like an animation state.

    :type: typing.Union[int, str]
    '''

    enabled: bool = None
    ''' When false, this (sub)layout is grayed out

    :type: bool
    '''

    operator_context: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    scale_x: float = None
    ''' Scale factor along the X for items in this (sub)layout

    :type: float
    '''

    scale_y: float = None
    ''' Scale factor along the Y for items in this (sub)layout

    :type: float
    '''

    ui_units_x: float = None
    ''' Fixed size along the X for items in this (sub)layout

    :type: float
    '''

    ui_units_y: float = None
    ''' Fixed size along the Y for items in this (sub)layout

    :type: float
    '''

    use_property_decorate: bool = None
    ''' 

    :type: bool
    '''

    use_property_split: bool = None
    ''' 

    :type: bool
    '''

    def row(self,
            align: bool = False,
            heading: str = "",
            heading_ctxt: str = "",
            translate: bool = True) -> 'UILayout':
        ''' Sub-layout. Items placed in this sublayout are placed next to each other in a row

        :param align: Align buttons to each other
        :type align: bool
        :param heading: Heading, Label to insert into the layout for this sub-layout
        :type heading: str
        :param heading_ctxt: Override automatic translation context of the given heading
        :type heading_ctxt: str
        :param translate: Translate the given heading, when UI translation is enabled
        :type translate: bool
        :rtype: 'UILayout'
        :return: Sub-layout to put items in
        '''
        pass

    def column(self,
               align: bool = False,
               heading: str = "",
               heading_ctxt: str = "",
               translate: bool = True) -> 'UILayout':
        ''' Sub-layout. Items placed in this sublayout are placed under each other in a column

        :param align: Align buttons to each other
        :type align: bool
        :param heading: Heading, Label to insert into the layout for this sub-layout
        :type heading: str
        :param heading_ctxt: Override automatic translation context of the given heading
        :type heading_ctxt: str
        :param translate: Translate the given heading, when UI translation is enabled
        :type translate: bool
        :rtype: 'UILayout'
        :return: Sub-layout to put items in
        '''
        pass

    def column_flow(self, columns: int = 0, align: bool = False) -> 'UILayout':
        ''' column_flow

        :param columns: Number of columns, 0 is automatic
        :type columns: int
        :param align: Align buttons to each other
        :type align: bool
        :rtype: 'UILayout'
        :return: Sub-layout to put items in
        '''
        pass

    def grid_flow(self,
                  row_major: bool = False,
                  columns: int = 0,
                  even_columns: bool = False,
                  even_rows: bool = False,
                  align: bool = False) -> 'UILayout':
        ''' grid_flow

        :param row_major: Fill row by row, instead of column by column
        :type row_major: bool
        :param columns: Number of columns, positive are absolute fixed numbers, 0 is automatic, negative are automatic multiple numbers along major axis (e.g. -2 will only produce 2, 4, 6 etc. columns for row major layout, and 2, 4, 6 etc. rows for column major layout)
        :type columns: int
        :param even_columns: All columns will have the same width
        :type even_columns: bool
        :param even_rows: All rows will have the same height
        :type even_rows: bool
        :param align: Align buttons to each other
        :type align: bool
        :rtype: 'UILayout'
        :return: Sub-layout to put items in
        '''
        pass

    def box(self) -> 'UILayout':
        ''' Sublayout (items placed in this sublayout are placed under each other in a column and are surrounded by a box)

        :rtype: 'UILayout'
        :return: Sub-layout to put items in
        '''
        pass

    def split(self, factor: float = 0.0, align: bool = False) -> 'UILayout':
        ''' split

        :param factor: Percentage, Percentage of width to split at (leave unset for automatic calculation)
        :type factor: float
        :param align: Align buttons to each other
        :type align: bool
        :rtype: 'UILayout'
        :return: Sub-layout to put items in
        '''
        pass

    def menu_pie(self) -> 'UILayout':
        ''' Sublayout. Items placed in this sublayout are placed in a radial fashion around the menu center)

        :rtype: 'UILayout'
        :return: Sub-layout to put items in
        '''
        pass

    @classmethod
    def icon(cls, data: 'AnyType') -> int:
        ''' Return the custom icon for this data, use it e.g. to get materials or texture icons

        :param data: Data from which to take the icon
        :type data: 'AnyType'
        :rtype: int
        :return: Icon identifier
        '''
        pass

    @classmethod
    def enum_item_name(cls, data: 'AnyType', property: str,
                       identifier: str) -> str:
        ''' Return the UI name for this enum item

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param identifier: Identifier of the enum item
        :type identifier: str
        :rtype: str
        :return: UI name of the enum item
        '''
        pass

    @classmethod
    def enum_item_description(cls, data: 'AnyType', property: str,
                              identifier: str) -> str:
        ''' Return the UI description for this enum item

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param identifier: Identifier of the enum item
        :type identifier: str
        :rtype: str
        :return: UI description of the enum item
        '''
        pass

    @classmethod
    def enum_item_icon(cls, data: 'AnyType', property: str,
                       identifier: str) -> int:
        ''' Return the icon for this enum item

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param identifier: Identifier of the enum item
        :type identifier: str
        :rtype: int
        :return: Icon identifier
        '''
        pass

    def prop(self,
             data: 'AnyType',
             property: str,
             text: str = "",
             text_ctxt: str = "",
             translate: bool = True,
             icon: typing.Union[int, str] = 'NONE',
             expand: bool = False,
             slider: bool = False,
             toggle: int = -1,
             icon_only: bool = False,
             event: bool = False,
             full_event: bool = False,
             emboss: bool = True,
             index: int = -1,
             icon_value: int = 0,
             invert_checkbox: bool = False):
        ''' Item. Exposes an RNA item and places it into the layout

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param expand: Expand button to show more detail
        :type expand: bool
        :param slider: Use slider widget for numeric values
        :type slider: bool
        :param toggle: Use toggle widget for boolean values, or a checkbox when disabled (the default is -1 which uses toggle only when an icon is displayed)
        :type toggle: int
        :param icon_only: Draw only icons in buttons, no text
        :type icon_only: bool
        :param event: Use button to input key events
        :type event: bool
        :param full_event: Use button to input full events including modifiers
        :type full_event: bool
        :param emboss: Draw the button itself, not just the icon/text. When false, corresponds to the 'NONE_OR_STATUS' layout emboss type
        :type emboss: bool
        :param index: The index of this button, when set a single member of an array can be accessed, when set to -1 all array members are used
        :type index: int
        :param icon_value: Icon Value, Override automatic icon of the item
        :type icon_value: int
        :param invert_checkbox: Draw checkbox value inverted
        :type invert_checkbox: bool
        '''
        pass

    def props_enum(self, data: 'AnyType', property: str):
        ''' props_enum

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def prop_menu_enum(self,
                       data: 'AnyType',
                       property: str,
                       text: str = "",
                       text_ctxt: str = "",
                       translate: bool = True,
                       icon: typing.Union[int, str] = 'NONE'):
        ''' prop_menu_enum

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        '''
        pass

    def prop_with_popover(self,
                          data: 'AnyType',
                          property: str,
                          text: str = "",
                          text_ctxt: str = "",
                          translate: bool = True,
                          icon: typing.Union[int, str] = 'NONE',
                          icon_only: bool = False,
                          *,
                          panel: str):
        ''' prop_with_popover

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param icon_only: Draw only icons in tabs, no text
        :type icon_only: bool
        :param panel: Identifier of the panel
        :type panel: str
        '''
        pass

    def prop_with_menu(self,
                       data: 'AnyType',
                       property: str,
                       text: str = "",
                       text_ctxt: str = "",
                       translate: bool = True,
                       icon: typing.Union[int, str] = 'NONE',
                       icon_only: bool = False,
                       *,
                       menu: str):
        ''' prop_with_menu

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param icon_only: Draw only icons in tabs, no text
        :type icon_only: bool
        :param menu: Identifier of the menu
        :type menu: str
        '''
        pass

    def prop_tabs_enum(self,
                       data: 'AnyType',
                       property: str,
                       data_highlight: 'AnyType' = None,
                       property_highlight: str = "",
                       icon_only: bool = False):
        ''' prop_tabs_enum

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param data_highlight: Data from which to take highlight property
        :type data_highlight: 'AnyType'
        :param property_highlight: Identifier of highlight property in data
        :type property_highlight: str
        :param icon_only: Draw only icons in tabs, no text
        :type icon_only: bool
        '''
        pass

    def prop_enum(self,
                  data: 'AnyType',
                  property: str,
                  value: str,
                  text: str = "",
                  text_ctxt: str = "",
                  translate: bool = True,
                  icon: typing.Union[int, str] = 'NONE'):
        ''' prop_enum

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param value: Enum property value
        :type value: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        '''
        pass

    def prop_search(self,
                    data: 'AnyType',
                    property: str,
                    search_data: 'AnyType',
                    search_property: str,
                    text: str = "",
                    text_ctxt: str = "",
                    translate: bool = True,
                    icon: typing.Union[int, str] = 'NONE'):
        ''' prop_search

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param search_data: Data from which to take collection to search in
        :type search_data: 'AnyType'
        :param search_property: Identifier of search collection property
        :type search_property: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        '''
        pass

    def prop_decorator(self, data: 'AnyType', property: str, index: int = -1):
        ''' prop_decorator

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param index: The index of this button, when set a single member of an array can be accessed, when set to -1 all array members are used
        :type index: int
        '''
        pass

    def operator(self,
                 operator: str,
                 text: str = "",
                 text_ctxt: str = "",
                 translate: bool = True,
                 icon: typing.Union[int, str] = 'NONE',
                 emboss: bool = True,
                 depress: bool = False,
                 icon_value: int = 0) -> 'OperatorProperties':
        ''' Item. Places a button into the layout to call an Operator

        :param operator: Identifier of the operator
        :type operator: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param emboss: Draw the button itself, not just the icon/text
        :type emboss: bool
        :param depress: Draw pressed in
        :type depress: bool
        :param icon_value: Icon Value, Override automatic icon of the item
        :type icon_value: int
        :rtype: 'OperatorProperties'
        :return: Operator properties to fill in
        '''
        pass

    def operator_menu_hold(self,
                           operator: str,
                           text: str = "",
                           text_ctxt: str = "",
                           translate: bool = True,
                           icon: typing.Union[int, str] = 'NONE',
                           emboss: bool = True,
                           depress: bool = False,
                           icon_value: int = 0,
                           *,
                           menu: str) -> 'OperatorProperties':
        ''' Item. Places a button into the layout to call an Operator

        :param operator: Identifier of the operator
        :type operator: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param emboss: Draw the button itself, not just the icon/text
        :type emboss: bool
        :param depress: Draw pressed in
        :type depress: bool
        :param icon_value: Icon Value, Override automatic icon of the item
        :type icon_value: int
        :param menu: Identifier of the menu
        :type menu: str
        :rtype: 'OperatorProperties'
        :return: Operator properties to fill in
        '''
        pass

    def operator_enum(self,
                      operator: str,
                      property: str,
                      icon_only: bool = False):
        ''' operator_enum

        :param operator: Identifier of the operator
        :type operator: str
        :param property: Identifier of property in operator
        :type property: str
        :param icon_only: Draw only icons in buttons, no text
        :type icon_only: bool
        '''
        pass

    def operator_menu_enum(
            self,
            operator: str,
            property: str,
            text: str = "",
            text_ctxt: str = "",
            translate: bool = True,
            icon: typing.Union[int, str] = 'NONE') -> 'OperatorProperties':
        ''' operator_menu_enum

        :param operator: Identifier of the operator
        :type operator: str
        :param property: Identifier of property in operator
        :type property: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :rtype: 'OperatorProperties'
        :return: Operator properties to fill in
        '''
        pass

    def label(self,
              text: str = "",
              text_ctxt: str = "",
              translate: bool = True,
              icon: typing.Union[int, str] = 'NONE',
              icon_value: int = 0):
        ''' Item. Displays text and/or icon in the layout

        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param icon_value: Icon Value, Override automatic icon of the item
        :type icon_value: int
        '''
        pass

    def menu(self,
             menu: str,
             text: str = "",
             text_ctxt: str = "",
             translate: bool = True,
             icon: typing.Union[int, str] = 'NONE',
             icon_value: int = 0):
        ''' menu

        :param menu: Identifier of the menu
        :type menu: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param icon_value: Icon Value, Override automatic icon of the item
        :type icon_value: int
        '''
        pass

    def menu_contents(self, menu: str):
        ''' menu_contents

        :param menu: Identifier of the menu
        :type menu: str
        '''
        pass

    def popover(self,
                panel: str,
                text: str = "",
                text_ctxt: str = "",
                translate: bool = True,
                icon: typing.Union[int, str] = 'NONE',
                icon_value: int = 0):
        ''' popover

        :param panel: Identifier of the panel
        :type panel: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        :param icon: Icon, Override automatic icon of the item
        :type icon: typing.Union[int, str]
        :param icon_value: Icon Value, Override automatic icon of the item
        :type icon_value: int
        '''
        pass

    def popover_group(self, space_type: typing.Union[int, str],
                      region_type: typing.Union[int, str], context: str,
                      category: str):
        ''' popover_group

        :param space_type: Space Type * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.
        :type space_type: typing.Union[int, str]
        :param region_type: Region Type
        :type region_type: typing.Union[int, str]
        :param context: panel type context
        :type context: str
        :param category: panel type category
        :type category: str
        '''
        pass

    def separator(self, factor: float = 1.0):
        ''' Item. Inserts empty space into the layout between items

        :param factor: Percentage, Percentage of width to space (leave unset for default space)
        :type factor: float
        '''
        pass

    def separator_spacer(self):
        ''' Item. Inserts horizontal spacing empty space into the layout between items

        '''
        pass

    def context_pointer_set(self, name: str, data: 'AnyType'):
        ''' context_pointer_set

        :param name: Name, Name of entry in the context
        :type name: str
        :param data: Pointer to put in context
        :type data: 'AnyType'
        '''
        pass

    def template_header(self):
        ''' Inserts common Space header UI (editor type selector)

        '''
        pass

    def template_ID(self,
                    data: 'AnyType',
                    property: str,
                    new: str = "",
                    open: str = "",
                    unlink: str = "",
                    filter: typing.Union[int, str] = 'ALL',
                    live_icon: bool = False,
                    text: str = "",
                    text_ctxt: str = "",
                    translate: bool = True):
        ''' template_ID

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param new: Operator identifier to create a new ID block
        :type new: str
        :param open: Operator identifier to open a file for creating a new ID block
        :type open: str
        :param unlink: Operator identifier to unlink the ID block
        :type unlink: str
        :param filter: Optionally limit the items which can be selected
        :type filter: typing.Union[int, str]
        :param live_icon: Show preview instead of fixed icon
        :type live_icon: bool
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        '''
        pass

    def template_ID_preview(self,
                            data: 'AnyType',
                            property: str,
                            new: str = "",
                            open: str = "",
                            unlink: str = "",
                            rows: int = 0,
                            cols: int = 0,
                            filter: typing.Union[int, str] = 'ALL',
                            hide_buttons: bool = False):
        ''' template_ID_preview

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param new: Operator identifier to create a new ID block
        :type new: str
        :param open: Operator identifier to open a file for creating a new ID block
        :type open: str
        :param unlink: Operator identifier to unlink the ID block
        :type unlink: str
        :param rows: Number of thumbnail preview rows to display
        :type rows: int
        :param cols: Number of thumbnail preview columns to display
        :type cols: int
        :param filter: Optionally limit the items which can be selected
        :type filter: typing.Union[int, str]
        :param hide_buttons: Show only list, no buttons
        :type hide_buttons: bool
        '''
        pass

    def template_any_ID(self,
                        data: 'AnyType',
                        property: str,
                        type_property: str,
                        text: str = "",
                        text_ctxt: str = "",
                        translate: bool = True):
        ''' template_any_ID

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param type_property: Identifier of property in data giving the type of the ID-blocks to use
        :type type_property: str
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        '''
        pass

    def template_ID_tabs(self,
                         data: 'AnyType',
                         property: str,
                         new: str = "",
                         menu: str = "",
                         filter: typing.Union[int, str] = 'ALL'):
        ''' template_ID_tabs

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param new: Operator identifier to create a new ID block
        :type new: str
        :param menu: Context menu identifier
        :type menu: str
        :param filter: Optionally limit the items which can be selected
        :type filter: typing.Union[int, str]
        '''
        pass

    def template_search(self,
                        data: 'AnyType',
                        property: str,
                        search_data: 'AnyType',
                        search_property: str,
                        new: str = "",
                        unlink: str = ""):
        ''' template_search

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param search_data: Data from which to take collection to search in
        :type search_data: 'AnyType'
        :param search_property: Identifier of search collection property
        :type search_property: str
        :param new: Operator identifier to create a new item for the collection
        :type new: str
        :param unlink: Operator identifier to unlink or delete the active item from the collection
        :type unlink: str
        '''
        pass

    def template_search_preview(self,
                                data: 'AnyType',
                                property: str,
                                search_data: 'AnyType',
                                search_property: str,
                                new: str = "",
                                unlink: str = "",
                                rows: int = 0,
                                cols: int = 0):
        ''' template_search_preview

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param search_data: Data from which to take collection to search in
        :type search_data: 'AnyType'
        :param search_property: Identifier of search collection property
        :type search_property: str
        :param new: Operator identifier to create a new item for the collection
        :type new: str
        :param unlink: Operator identifier to unlink or delete the active item from the collection
        :type unlink: str
        :param rows: Number of thumbnail preview rows to display
        :type rows: int
        :param cols: Number of thumbnail preview columns to display
        :type cols: int
        '''
        pass

    def template_path_builder(self,
                              data: 'AnyType',
                              property: str,
                              root: 'ID',
                              text: str = "",
                              text_ctxt: str = "",
                              translate: bool = True):
        ''' template_path_builder

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param root: ID-block from which path is evaluated from
        :type root: 'ID'
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        '''
        pass

    def template_modifiers(self):
        ''' Generates the UI layout for the modifier stack

        '''
        pass

    def template_constraints(self, use_bone_constraints: bool = True):
        ''' Generates the panels for the constraint stack

        :param use_bone_constraints: Add panels for bone constraints instead of object constraints
        :type use_bone_constraints: bool
        '''
        pass

    def template_grease_pencil_modifiers(self):
        ''' Generates the panels for the grease pencil modifier stack

        '''
        pass

    def template_shaderfx(self):
        ''' Generates the panels for the shader effect stack

        '''
        pass

    def template_greasepencil_color(self,
                                    data: 'AnyType',
                                    property: str,
                                    rows: int = 0,
                                    cols: int = 0,
                                    scale: float = 1.0,
                                    filter: typing.Union[int, str] = 'ALL'):
        ''' template_greasepencil_color

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param rows: Number of thumbnail preview rows to display
        :type rows: int
        :param cols: Number of thumbnail preview columns to display
        :type cols: int
        :param scale: Scale of the image thumbnails
        :type scale: float
        :param filter: Optionally limit the items which can be selected
        :type filter: typing.Union[int, str]
        '''
        pass

    def template_constraint_header(self, data: 'Constraint'):
        ''' Generates the header for constraint panels

        :param data: Constraint data
        :type data: 'Constraint'
        '''
        pass

    def template_preview(self,
                         id: 'ID',
                         show_buttons: bool = True,
                         parent: 'ID' = None,
                         slot: 'TextureSlot' = None,
                         preview_id: str = ""):
        ''' Item. A preview window for materials, textures, lights or worlds

        :param id: ID data-block
        :type id: 'ID'
        :param show_buttons: Show preview buttons?
        :type show_buttons: bool
        :param parent: ID data-block
        :type parent: 'ID'
        :param slot: Texture slot
        :type slot: 'TextureSlot'
        :param preview_id: Identifier of this preview widget, if not set the ID type will be used (i.e. all previews of materials without explicit ID will have the same size...)
        :type preview_id: str
        '''
        pass

    def template_curve_mapping(self,
                               data: 'AnyType',
                               property: str,
                               type: typing.Union[int, str] = 'NONE',
                               levels: bool = False,
                               brush: bool = False,
                               use_negative_slope: bool = False,
                               show_tone: bool = False):
        ''' Item. A curve mapping widget used for e.g falloff curves for lights

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param type: Type, Type of curves to display
        :type type: typing.Union[int, str]
        :param levels: Show black/white levels
        :type levels: bool
        :param brush: Show brush options
        :type brush: bool
        :param use_negative_slope: Use a negative slope by default
        :type use_negative_slope: bool
        :param show_tone: Show tone options
        :type show_tone: bool
        '''
        pass

    def template_curveprofile(self, data: 'AnyType', property: str):
        ''' A profile path editor used for custom profiles

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_color_ramp(self,
                            data: 'AnyType',
                            property: str,
                            expand: bool = False):
        ''' Item. A color ramp widget

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param expand: Expand button to show more detail
        :type expand: bool
        '''
        pass

    def template_icon(self, icon_value: int, scale: float = 1.0):
        ''' Display a large icon

        :param icon_value: Icon to display
        :type icon_value: int
        :param scale: Scale, Scale the icon size (by the button size)
        :type scale: float
        '''
        pass

    def template_icon_view(self,
                           data: 'AnyType',
                           property: str,
                           show_labels: bool = False,
                           scale: float = 6.0,
                           scale_popup: float = 5.0):
        ''' Enum. Large widget showing Icon previews

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param show_labels: Show enum label in preview buttons
        :type show_labels: bool
        :param scale: UI Units, Scale the button icon size (by the button size)
        :type scale: float
        :param scale_popup: Scale, Scale the popup icon size (by the button size)
        :type scale_popup: float
        '''
        pass

    def template_histogram(self, data: 'AnyType', property: str):
        ''' Item. A histogramm widget to analyze imaga data

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_waveform(self, data: 'AnyType', property: str):
        ''' Item. A waveform widget to analyze imaga data

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_vectorscope(self, data: 'AnyType', property: str):
        ''' Item. A vectorscope widget to analyze imaga data

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_layers(self, data: 'AnyType', property: str,
                        used_layers_data: 'AnyType', used_layers_property: str,
                        active_layer: int):
        ''' template_layers

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param used_layers_data: Data from which to take property
        :type used_layers_data: 'AnyType'
        :param used_layers_property: Identifier of property in data
        :type used_layers_property: str
        :param active_layer: Active Layer
        :type active_layer: int
        '''
        pass

    def template_color_picker(self,
                              data: 'AnyType',
                              property: str,
                              value_slider: bool = False,
                              lock: bool = False,
                              lock_luminosity: bool = False,
                              cubic: bool = False):
        ''' Item. A color wheel widget to pick colors

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param value_slider: Display the value slider to the right of the color wheel
        :type value_slider: bool
        :param lock: Lock the color wheel display to value 1.0 regardless of actual color
        :type lock: bool
        :param lock_luminosity: Keep the color at its original vector length
        :type lock_luminosity: bool
        :param cubic: Cubic saturation for picking values close to white
        :type cubic: bool
        '''
        pass

    def template_palette(self,
                         data: 'AnyType',
                         property: str,
                         color: bool = False):
        ''' Item. A palette used to pick colors

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param color: Display the colors as colors or values
        :type color: bool
        '''
        pass

    def template_image_layers(self, image: 'Image', image_user: 'ImageUser'):
        ''' template_image_layers

        :param image: 
        :type image: 'Image'
        :param image_user: 
        :type image_user: 'ImageUser'
        '''
        pass

    def template_image(self,
                       data: 'AnyType',
                       property: str,
                       image_user: 'ImageUser',
                       compact: bool = False,
                       multiview: bool = False):
        ''' Item(s). User interface for selecting images and their source paths

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param image_user: 
        :type image_user: 'ImageUser'
        :param compact: Use more compact layout
        :type compact: bool
        :param multiview: Expose Multi-View options
        :type multiview: bool
        '''
        pass

    def template_image_settings(self,
                                image_settings: 'ImageFormatSettings',
                                color_management: bool = False):
        ''' User interface for setting image format options

        :param image_settings: 
        :type image_settings: 'ImageFormatSettings'
        :param color_management: Show color management settings
        :type color_management: bool
        '''
        pass

    def template_image_stereo_3d(self, stereo_3d_format: 'Stereo3dFormat'):
        ''' User interface for setting image stereo 3d options

        :param stereo_3d_format: 
        :type stereo_3d_format: 'Stereo3dFormat'
        '''
        pass

    def template_image_views(self, image_settings: 'ImageFormatSettings'):
        ''' User interface for setting image views output options

        :param image_settings: 
        :type image_settings: 'ImageFormatSettings'
        '''
        pass

    def template_movieclip(self,
                           data: 'AnyType',
                           property: str,
                           compact: bool = False):
        ''' Item(s). User interface for selecting movie clips and their source paths

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param compact: Use more compact layout
        :type compact: bool
        '''
        pass

    def template_track(self, data: 'AnyType', property: str):
        ''' Item. A movie-track widget to preview tracking image.

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_marker(self,
                        data: 'AnyType',
                        property: str,
                        clip_user: 'MovieClipUser',
                        track: 'MovieTrackingTrack',
                        compact: bool = False):
        ''' Item. A widget to control single marker settings.

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param clip_user: 
        :type clip_user: 'MovieClipUser'
        :param track: 
        :type track: 'MovieTrackingTrack'
        :param compact: Use more compact layout
        :type compact: bool
        '''
        pass

    def template_movieclip_information(self, data: 'AnyType', property: str,
                                       clip_user: 'MovieClipUser'):
        ''' Item. Movie clip information data.

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param clip_user: 
        :type clip_user: 'MovieClipUser'
        '''
        pass

    def template_list(self,
                      listtype_name: str,
                      list_id: str,
                      dataptr: 'AnyType',
                      propname: str,
                      active_dataptr: 'AnyType',
                      active_propname: str,
                      item_dyntip_propname: str = "",
                      rows: int = 5,
                      maxrows: int = 5,
                      type: typing.Union[int, str] = 'DEFAULT',
                      columns: int = 9,
                      sort_reverse: bool = False,
                      sort_lock: bool = False):
        ''' Item. A list widget to display data, e.g. vertexgroups.

        :param listtype_name: Identifier of the list type to use
        :type listtype_name: str
        :param list_id: Identifier of this list widget (mandatory when using default "UI_UL_list" class). If this not an empty string, the uilist gets a custom ID, otherwise it takes the name of the class used to define the uilist (for example, if the class name is "OBJECT_UL_vgroups", and list_id is not set by the script, then bl_idname = "OBJECT_UL_vgroups")
        :type list_id: str
        :param dataptr: Data from which to take the Collection property
        :type dataptr: 'AnyType'
        :param propname: Identifier of the Collection property in data
        :type propname: str
        :param active_dataptr: Data from which to take the integer property, index of the active item
        :type active_dataptr: 'AnyType'
        :param active_propname: Identifier of the integer property in active_data, index of the active item
        :type active_propname: str
        :param item_dyntip_propname: Identifier of a string property in items, to use as tooltip content
        :type item_dyntip_propname: str
        :param rows: Default and minimum number of rows to display
        :type rows: int
        :param maxrows: Default maximum number of rows to display
        :type maxrows: int
        :param type: Type, Type of layout to use * DEFAULT Default Layout -- Use the default, multi-rows layout. * COMPACT Compact Layout -- Use the compact, single-row layout. * GRID Grid Layout -- Use the grid-based layout.
        :type type: typing.Union[int, str]
        :param columns: Number of items to display per row, for GRID layout
        :type columns: int
        :param sort_reverse: Display items in reverse order by default
        :type sort_reverse: bool
        :param sort_lock: Lock display order to default value
        :type sort_lock: bool
        '''
        pass

    def template_running_jobs(self):
        ''' template_running_jobs

        '''
        pass

    def template_operator_search(self):
        ''' template_operator_search

        '''
        pass

    def template_menu_search(self):
        ''' template_menu_search

        '''
        pass

    def template_header_3D_mode(self):
        ''' 

        '''
        pass

    def template_edit_mode_selection(self):
        ''' Inserts common 3DView Edit modes header UI (selector for selection mode)

        '''
        pass

    def template_reports_banner(self):
        ''' template_reports_banner

        '''
        pass

    def template_input_status(self):
        ''' template_input_status

        '''
        pass

    def template_node_link(self, ntree: 'NodeTree', node: 'Node',
                           socket: 'NodeSocket'):
        ''' template_node_link

        :param ntree: 
        :type ntree: 'NodeTree'
        :param node: 
        :type node: 'Node'
        :param socket: 
        :type socket: 'NodeSocket'
        '''
        pass

    def template_node_view(self, ntree: 'NodeTree', node: 'Node',
                           socket: 'NodeSocket'):
        ''' template_node_view

        :param ntree: 
        :type ntree: 'NodeTree'
        :param node: 
        :type node: 'Node'
        :param socket: 
        :type socket: 'NodeSocket'
        '''
        pass

    def template_texture_user(self):
        ''' template_texture_user

        '''
        pass

    def template_keymap_item_properties(self, item: 'KeyMapItem'):
        ''' template_keymap_item_properties

        :param item: 
        :type item: 'KeyMapItem'
        '''
        pass

    def template_component_menu(self,
                                data: 'AnyType',
                                property: str,
                                name: str = ""):
        ''' Item. Display expanded property in a popup menu

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        :param name: 
        :type name: str
        '''
        pass

    def template_colorspace_settings(self, data: 'AnyType', property: str):
        ''' Item. A widget to control input color space settings.

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_colormanaged_view_settings(self, data: 'AnyType',
                                            property: str):
        ''' Item. A widget to control color managed view settings settings.

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_node_socket(self,
                             color: typing.List[float] = (0.0, 0.0, 0.0, 1.0)):
        ''' Node Socket Icon

        :param color: Color
        :type color: typing.List[float]
        '''
        pass

    def template_cache_file(self, data: 'AnyType', property: str):
        ''' Item(s). User interface for selecting cache files and their source paths

        :param data: Data from which to take property
        :type data: 'AnyType'
        :param property: Identifier of property in data
        :type property: str
        '''
        pass

    def template_recent_files(self, rows: int = 5) -> int:
        ''' Show list of recently saved .blend files

        :param rows: Maximum number of items to show
        :type rows: int
        :rtype: int
        :return: Number of items drawn
        '''
        pass

    def template_file_select_path(self, params: 'FileSelectParams'):
        ''' Item. A text button to set the active file browser path.

        :param params: 
        :type params: 'FileSelectParams'
        '''
        pass

    def template_event_from_keymap_item(self,
                                        item: 'KeyMapItem',
                                        text: str = "",
                                        text_ctxt: str = "",
                                        translate: bool = True):
        ''' Display keymap item as icons/text

        :param item: Item
        :type item: 'KeyMapItem'
        :param text: Override automatic text of the item
        :type text: str
        :param text_ctxt: Override automatic translation context of the given text
        :type text_ctxt: str
        :param translate: Translate the given text, when UI translation is enabled
        :type translate: bool
        '''
        pass

    def template_asset_view(self,
                            list_id: str,
                            asset_library_dataptr: 'AnyType',
                            asset_library_propname: str,
                            assets_dataptr: 'AnyType',
                            assets_propname: str,
                            active_dataptr: 'AnyType',
                            active_propname: str,
                            filter_id_types: typing.
                            Union[typing.Set[int], typing.Set[str]] = {},
                            display_options: typing.
                            Union[typing.Set[int], typing.Set[str]] = {},
                            activate_operator: str = "",
                            drag_operator: str = ""):
        ''' Item. A scrollable list of assets in a grid view

        :param list_id: Identifier of this asset view. Necessary to tell apart different asset views and to idenify an asset view read from a .blend
        :type list_id: str
        :param asset_library_dataptr: Data from which to take the active asset library property
        :type asset_library_dataptr: 'AnyType'
        :param asset_library_propname: Identifier of the asset library property
        :type asset_library_propname: str
        :param assets_dataptr: Data from which to take the asset list property
        :type assets_dataptr: 'AnyType'
        :param assets_propname: Identifier of the asset list property
        :type assets_propname: str
        :param active_dataptr: Data from which to take the integer property, index of the active item
        :type active_dataptr: 'AnyType'
        :param active_propname: Identifier of the integer property in active_data, index of the active item
        :type active_propname: str
        :param filter_id_types: filter_id_types
        :type filter_id_types: typing.Union[typing.Set[int], typing.Set[str]]
        :param display_options: Displaying options for the asset view * NO_NAMES Do not display the name of each asset underneath preview images. * NO_FILTER Do not display buttons for filtering the available assets. * NO_LIBRARY Do not display buttons to choose or refresh an asset library.
        :type display_options: typing.Union[typing.Set[int], typing.Set[str]]
        :param activate_operator: Name of a custom operator to invoke when activating an item
        :type activate_operator: str
        :param drag_operator: Name of a custom operator to invoke when starting to drag an item. Never invoked together with the active_operator (if set), it's either the drag or the activate one
        :type drag_operator: str
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UIList(bpy_struct):
    ''' UI list containing the elements of a collection
    '''

    bitflag_filter_item: int = None
    ''' The value of the reserved bitflag 'FILTER_ITEM' (in filter_flags values)

    :type: int
    '''

    bl_idname: str = None
    ''' If this is set, the uilist gets a custom ID, otherwise it takes the name of the class used to define the uilist (for example, if the class name is "OBJECT_UL_vgroups", and bl_idname is not set by the script, then bl_idname = "OBJECT_UL_vgroups")

    :type: str
    '''

    filter_name: str = None
    ''' Only show items matching this name (use '*' as wildcard)

    :type: str
    '''

    layout_type: typing.Union[int, str] = None
    ''' * DEFAULT Default Layout -- Use the default, multi-rows layout. * COMPACT Compact Layout -- Use the compact, single-row layout. * GRID Grid Layout -- Use the grid-based layout.

    :type: typing.Union[int, str]
    '''

    list_id: str = None
    ''' Identifier of the list, if any was passed to the "list_id" parameter of "template_list()"

    :type: str
    '''

    use_filter_invert: bool = None
    ''' Invert filtering (show hidden items, and vice versa)

    :type: bool
    '''

    use_filter_show: bool = None
    ''' Show filtering options

    :type: bool
    '''

    use_filter_sort_alpha: bool = None
    ''' Sort items by their name

    :type: bool
    '''

    use_filter_sort_lock: bool = None
    ''' Lock the order of shown items (user cannot change it)

    :type: bool
    '''

    use_filter_sort_reverse: bool = None
    ''' Reverse the order of shown items

    :type: bool
    '''

    def draw_item(self,
                  context: 'Context',
                  layout: 'UILayout',
                  data: 'AnyType',
                  item: 'AnyType',
                  icon: int,
                  active_data: 'AnyType',
                  active_property: str,
                  index: int = 0,
                  flt_flag: int = 0):
        ''' Draw an item in the list (NOTE: when you define your own draw_item function, you may want to check given 'item' is of the right type...)

        :param context: 
        :type context: 'Context'
        :param layout: Layout to draw the item
        :type layout: 'UILayout'
        :param data: Data from which to take Collection property
        :type data: 'AnyType'
        :param item: Item of the collection property
        :type item: 'AnyType'
        :param icon: Icon of the item in the collection
        :type icon: int
        :param active_data: Data from which to take property for the active element
        :type active_data: 'AnyType'
        :param active_property: Identifier of property in active_data, for the active element
        :type active_property: str
        :param index: Index of the item in the collection
        :type index: int
        :param flt_flag: The filter-flag result for this item
        :type flt_flag: int
        '''
        pass

    def draw_filter(self, context: 'Context', layout: 'UILayout'):
        ''' Draw filtering options

        :param context: 
        :type context: 'Context'
        :param layout: Layout to draw the item
        :type layout: 'UILayout'
        '''
        pass

    def filter_items(self, context: 'Context', data: 'AnyType', property: str):
        ''' Filter and/or re-order items of the collection (output filter results in filter_flags, and reorder results in filter_neworder arrays)

        :param context: 
        :type context: 'Context'
        :param data: Data from which to take Collection property
        :type data: 'AnyType'
        :param property: Identifier of property in data, for the collection
        :type property: str
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UIPieMenu(bpy_struct):
    layout: 'UILayout' = None
    ''' 

    :type: 'UILayout'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UIPopover(bpy_struct):
    layout: 'UILayout' = None
    ''' 

    :type: 'UILayout'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UIPopupMenu(bpy_struct):
    layout: 'UILayout' = None
    ''' 

    :type: 'UILayout'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UVLoopLayers(bpy_struct):
    ''' Collection of uv loop layers
    '''

    active: 'MeshUVLoopLayer' = None
    ''' Active UV loop layer

    :type: 'MeshUVLoopLayer'
    '''

    active_index: int = None
    ''' Active UV loop layer index

    :type: int
    '''

    def new(self, name: str = "UVMap",
            do_init: bool = True) -> 'MeshUVLoopLayer':
        ''' Add a UV map layer to Mesh

        :param name: UV map name
        :type name: str
        :param do_init: Whether new layer's data should be initialized by copying current active one, or if none is active, with a default UVmap
        :type do_init: bool
        :rtype: 'MeshUVLoopLayer'
        :return: The newly created layer
        '''
        pass

    def remove(self, layer: 'MeshUVLoopLayer'):
        ''' Remove a vertex color layer

        :param layer: The layer to remove
        :type layer: 'MeshUVLoopLayer'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UVProjector(bpy_struct):
    ''' UV projector used by the UV project modifier
    '''

    object: 'Object' = None
    ''' Object to use as projector transform

    :type: 'Object'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UnifiedPaintSettings(bpy_struct):
    ''' Overrides for some of the active brush's settings
    '''

    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    secondary_color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    size: int = None
    ''' Radius of the brush

    :type: int
    '''

    strength: float = None
    ''' How powerful the effect of the brush is when applied

    :type: float
    '''

    unprojected_radius: float = None
    ''' Radius of brush in Blender units

    :type: float
    '''

    use_locked_size: typing.Union[int, str] = None
    ''' Measure brush size relative to the view or the scene * VIEW View -- Measure brush size relative to the view. * SCENE Scene -- Measure brush size relative to the scene.

    :type: typing.Union[int, str]
    '''

    use_unified_color: bool = None
    ''' Instead of per-brush color, the color is shared across brushes

    :type: bool
    '''

    use_unified_size: bool = None
    ''' Instead of per-brush radius, the radius is shared across brushes

    :type: bool
    '''

    use_unified_strength: bool = None
    ''' Instead of per-brush strength, the strength is shared across brushes

    :type: bool
    '''

    use_unified_weight: bool = None
    ''' Instead of per-brush weight, the weight is shared across brushes

    :type: bool
    '''

    weight: float = None
    ''' Weight to assign in vertex groups

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UnitSettings(bpy_struct):
    length_unit: typing.Union[int, str] = None
    ''' Unit that will be used to display length values

    :type: typing.Union[int, str]
    '''

    mass_unit: typing.Union[int, str] = None
    ''' Unit that will be used to display mass values

    :type: typing.Union[int, str]
    '''

    scale_length: float = None
    ''' Scale to use when converting between blender units and dimensions. When working at microscopic or astronomical scale, a small or large unit scale respectively can be used to avoid numerical precision problems

    :type: float
    '''

    system: typing.Union[int, str] = None
    ''' The unit system to use for user interface controls

    :type: typing.Union[int, str]
    '''

    system_rotation: typing.Union[int, str] = None
    ''' Unit to use for displaying/editing rotation values * DEGREES Degrees -- Use degrees for measuring angles and rotations. * RADIANS Radians.

    :type: typing.Union[int, str]
    '''

    temperature_unit: typing.Union[int, str] = None
    ''' Unit that will be used to display temperature values

    :type: typing.Union[int, str]
    '''

    time_unit: typing.Union[int, str] = None
    ''' Unit that will be used to display time values

    :type: typing.Union[int, str]
    '''

    use_separate: bool = None
    ''' Display units in pairs (e.g. 1m 0cm)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UnknownType(bpy_struct):
    ''' Stub RNA type used for pointers to unknown or internal data
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UserAssetLibrary(bpy_struct):
    ''' Settings to define a reusable library for Asset Browsers to use
    '''

    name: str = None
    ''' Identifier (not necessarily unique) for the asset library

    :type: str
    '''

    path: str = None
    ''' Path to a directory with .blend files to use as an asset library

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UserSolidLight(bpy_struct):
    ''' Light used for Studio lighting in solid shading mode
    '''

    diffuse_color: typing.List[float] = None
    ''' Color of the light's diffuse highlight

    :type: typing.List[float]
    '''

    direction: typing.List[float] = None
    ''' Direction that the light is shining

    :type: typing.List[float]
    '''

    smooth: float = None
    ''' Smooth the lighting from this light

    :type: float
    '''

    specular_color: typing.List[float] = None
    ''' Color of the light's specular highlight

    :type: typing.List[float]
    '''

    use: bool = None
    ''' Enable this light in solid shading mode

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertColors(bpy_struct):
    ''' Collection of sculpt vertex colors
    '''

    active: 'MeshVertColorLayer' = None
    ''' Active sculpt vertex color layer

    :type: 'MeshVertColorLayer'
    '''

    active_index: int = None
    ''' Active sculpt vertex color index

    :type: int
    '''

    def new(self, name: str = "Col",
            do_init: bool = True) -> 'MeshVertColorLayer':
        ''' Add a sculpt vertex color layer to Mesh

        :param name: Sculpt Vertex color name
        :type name: str
        :param do_init: Whether new layer's data should be initialized by copying current active one
        :type do_init: bool
        :rtype: 'MeshVertColorLayer'
        :return: The newly created layer
        '''
        pass

    def remove(self, layer: 'MeshVertColorLayer'):
        ''' Remove a vertex color layer

        :param layer: The layer to remove
        :type layer: 'MeshVertColorLayer'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexFloatProperties(bpy_struct):
    ''' Collection of float properties
    '''

    def new(self, name: str = "Float Prop") -> 'MeshVertexFloatPropertyLayer':
        ''' Add a float property layer to Mesh

        :param name: Float property name
        :type name: str
        :rtype: 'MeshVertexFloatPropertyLayer'
        :return: The newly created layer
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexGroup(bpy_struct):
    ''' Group of vertices, used for armature deform and other purposes
    '''

    index: int = None
    ''' Index number of the vertex group

    :type: int
    '''

    lock_weight: bool = None
    ''' Maintain the relative weights for the group

    :type: bool
    '''

    name: str = None
    ''' Vertex group name

    :type: str
    '''

    def add(self, index: typing.List[int], weight: float,
            type: typing.Union[int, str]):
        ''' Add vertices to the group

        :param index: List of indices
        :type index: typing.List[int]
        :param weight: Vertex weight
        :type weight: float
        :param type: Vertex assign mode * REPLACE Replace -- Replace. * ADD Add -- Add. * SUBTRACT Subtract -- Subtract.
        :type type: typing.Union[int, str]
        '''
        pass

    def remove(self, index: typing.List[int]):
        ''' Remove vertices from the group

        :param index: List of indices
        :type index: typing.List[int]
        '''
        pass

    def weight(self, index: int) -> float:
        ''' Get a vertex weight from the group

        :param index: Index, The index of the vertex
        :type index: int
        :rtype: float
        :return: Vertex weight
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexGroupElement(bpy_struct):
    ''' Weight value of a vertex in a vertex group
    '''

    group: int = None
    ''' 

    :type: int
    '''

    weight: float = None
    ''' Vertex Weight

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexGroups(bpy_struct):
    ''' Collection of vertex groups
    '''

    active: 'VertexGroup' = None
    ''' Vertex groups of the object

    :type: 'VertexGroup'
    '''

    active_index: int = None
    ''' Active index in vertex group array

    :type: int
    '''

    def new(self, name: str = "Group") -> 'VertexGroup':
        ''' Add vertex group to object

        :param name: Vertex group name
        :type name: str
        :rtype: 'VertexGroup'
        :return: New vertex group
        '''
        pass

    def remove(self, group: 'VertexGroup'):
        ''' Delete vertex group from object

        :param group: Vertex group to remove
        :type group: 'VertexGroup'
        '''
        pass

    def clear(self):
        ''' Delete all vertex groups from object

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexIntProperties(bpy_struct):
    ''' Collection of int properties
    '''

    def new(self, name: str = "Int Prop") -> 'MeshVertexIntPropertyLayer':
        ''' Add a integer property layer to Mesh

        :param name: Int property name
        :type name: str
        :rtype: 'MeshVertexIntPropertyLayer'
        :return: The newly created layer
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexStringProperties(bpy_struct):
    ''' Collection of string properties
    '''

    def new(self,
            name: str = "String Prop") -> 'MeshVertexStringPropertyLayer':
        ''' Add a string property layer to Mesh

        :param name: String property name
        :type name: str
        :rtype: 'MeshVertexStringPropertyLayer'
        :return: The newly created layer
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class View2D(bpy_struct):
    ''' Scroll and zoom for a 2D region
    '''

    def region_to_view(self, x: float, y: float) -> typing.List[float]:
        ''' Transform region coordinates to 2D view

        :param x: x, Region x coordinate
        :type x: float
        :param y: y, Region y coordinate
        :type y: float
        :rtype: typing.List[float]
        :return: Result, View coordinates
        '''
        pass

    def view_to_region(self, x: float, y: float,
                       clip: bool = True) -> typing.List[int]:
        ''' Transform 2D view coordinates to region

        :param x: x, 2D View x coordinate
        :type x: float
        :param y: y, 2D View y coordinate
        :type y: float
        :param clip: Clip, Clip coordinates to the visible region
        :type clip: bool
        :rtype: typing.List[int]
        :return: Result, Region coordinates
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class View3DCursor(bpy_struct):
    location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    matrix: typing.List[float] = None
    ''' Matrix combining location and rotation of the cursor

    :type: typing.List[float]
    '''

    rotation_axis_angle: typing.List[float] = None
    ''' Angle of Rotation for Axis-Angle rotation representation

    :type: typing.List[float]
    '''

    rotation_euler: typing.List[float] = None
    ''' 3D rotation

    :type: typing.List[float]
    '''

    rotation_mode: typing.Union[int, str] = None
    ''' * QUATERNION Quaternion (WXYZ) -- No Gimbal Lock. * XYZ XYZ Euler -- XYZ Rotation Order - prone to Gimbal Lock (default). * XZY XZY Euler -- XZY Rotation Order - prone to Gimbal Lock. * YXZ YXZ Euler -- YXZ Rotation Order - prone to Gimbal Lock. * YZX YZX Euler -- YZX Rotation Order - prone to Gimbal Lock. * ZXY ZXY Euler -- ZXY Rotation Order - prone to Gimbal Lock. * ZYX ZYX Euler -- ZYX Rotation Order - prone to Gimbal Lock. * AXIS_ANGLE Axis Angle -- Axis Angle (W+XYZ), defines a rotation around some axis defined by 3D-Vector.

    :type: typing.Union[int, str]
    '''

    rotation_quaternion: typing.List[float] = None
    ''' Rotation in quaternions (keep normalized)

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class View3DOverlay(bpy_struct):
    ''' Settings for display of overlays in the 3D viewport
    '''

    backwire_opacity: float = None
    ''' Opacity when rendering transparent wires

    :type: float
    '''

    display_handle: typing.Union[int, str] = None
    ''' Limit the display of curve handles in edit mode

    :type: typing.Union[int, str]
    '''

    fade_inactive_alpha: float = None
    ''' Strength of the fade effect

    :type: float
    '''

    gpencil_fade_layer: float = None
    ''' Fade layer opacity for Grease Pencil layers except the active one

    :type: float
    '''

    gpencil_fade_objects: float = None
    ''' Fade factor

    :type: float
    '''

    gpencil_grid_opacity: float = None
    ''' Canvas grid opacity

    :type: float
    '''

    gpencil_vertex_paint_opacity: float = None
    ''' Vertex Paint mix factor

    :type: float
    '''

    grid_lines: int = None
    ''' Number of grid lines to display in perspective view

    :type: int
    '''

    grid_scale: float = None
    ''' Multiplier for the distance between 3D View grid lines

    :type: float
    '''

    grid_scale_unit: float = None
    ''' Grid cell size scaled by scene unit system settings

    :type: float
    '''

    grid_subdivisions: int = None
    ''' Number of subdivisions between grid lines

    :type: int
    '''

    normals_constant_screen_size: float = None
    ''' Screen size for normals in the 3D view

    :type: float
    '''

    normals_length: float = None
    ''' Display size for normals in the 3D view

    :type: float
    '''

    sculpt_mode_face_sets_opacity: float = None
    ''' 

    :type: float
    '''

    sculpt_mode_mask_opacity: float = None
    ''' 

    :type: float
    '''

    show_annotation: bool = None
    ''' Show annotations for this view

    :type: bool
    '''

    show_axis_x: bool = None
    ''' Show the X axis line

    :type: bool
    '''

    show_axis_y: bool = None
    ''' Show the Y axis line

    :type: bool
    '''

    show_axis_z: bool = None
    ''' Show the Z axis line

    :type: bool
    '''

    show_bones: bool = None
    ''' Display bones (disable to show motion paths only)

    :type: bool
    '''

    show_cursor: bool = None
    ''' Display 3D Cursor Overlay

    :type: bool
    '''

    show_curve_normals: bool = None
    ''' Display 3D curve normals in editmode

    :type: bool
    '''

    show_edge_bevel_weight: bool = None
    ''' Display weights created for the Bevel modifier

    :type: bool
    '''

    show_edge_crease: bool = None
    ''' Display creases created for Subdivision Surface modifier

    :type: bool
    '''

    show_edge_seams: bool = None
    ''' Display UV unwrapping seams

    :type: bool
    '''

    show_edge_sharp: bool = None
    ''' Display sharp edges, used with the Edge Split modifier

    :type: bool
    '''

    show_edges: bool = None
    ''' Highlight selected edges

    :type: bool
    '''

    show_extra_edge_angle: bool = None
    ''' Display selected edge angle, using global values when set in the transform panel

    :type: bool
    '''

    show_extra_edge_length: bool = None
    ''' Display selected edge lengths, using global values when set in the transform panel

    :type: bool
    '''

    show_extra_face_angle: bool = None
    ''' Display the angles in the selected edges, using global values when set in the transform panel

    :type: bool
    '''

    show_extra_face_area: bool = None
    ''' Display the area of selected faces, using global values when set in the transform panel

    :type: bool
    '''

    show_extra_indices: bool = None
    ''' Display the index numbers of selected vertices, edges, and faces

    :type: bool
    '''

    show_extras: bool = None
    ''' Object details, including empty wire, cameras and other visual guides

    :type: bool
    '''

    show_face_center: bool = None
    ''' Display face center when face selection is enabled in solid shading modes

    :type: bool
    '''

    show_face_normals: bool = None
    ''' Display face normals as lines

    :type: bool
    '''

    show_face_orientation: bool = None
    ''' Show the Face Orientation Overlay

    :type: bool
    '''

    show_faces: bool = None
    ''' Highlight selected faces

    :type: bool
    '''

    show_fade_inactive: bool = None
    ''' Fade inactive geometry using the viewport background color

    :type: bool
    '''

    show_floor: bool = None
    ''' Show the ground plane grid

    :type: bool
    '''

    show_freestyle_edge_marks: bool = None
    ''' Display Freestyle edge marks, used with the Freestyle renderer

    :type: bool
    '''

    show_freestyle_face_marks: bool = None
    ''' Display Freestyle face marks, used with the Freestyle renderer

    :type: bool
    '''

    show_look_dev: bool = None
    ''' Show HDRI preview spheres

    :type: bool
    '''

    show_motion_paths: bool = None
    ''' Show the Motion Paths Overlay

    :type: bool
    '''

    show_object_origins: bool = None
    ''' Show object center dots

    :type: bool
    '''

    show_object_origins_all: bool = None
    ''' Show the object origin center dot for all (selected and unselected) objects

    :type: bool
    '''

    show_occlude_wire: bool = None
    ''' Use hidden wireframe display

    :type: bool
    '''

    show_onion_skins: bool = None
    ''' Show the Onion Skinning Overlay

    :type: bool
    '''

    show_ortho_grid: bool = None
    ''' Show grid in orthographic side view

    :type: bool
    '''

    show_outline_selected: bool = None
    ''' Show an outline highlight around selected objects

    :type: bool
    '''

    show_overlays: bool = None
    ''' Display overlays like gizmos and outlines

    :type: bool
    '''

    show_paint_wire: bool = None
    ''' Use wireframe display in painting modes

    :type: bool
    '''

    show_relationship_lines: bool = None
    ''' Show dashed lines indicating parent or constraint relationships

    :type: bool
    '''

    show_split_normals: bool = None
    ''' Display vertex-per-face normals as lines

    :type: bool
    '''

    show_stats: bool = None
    ''' Display scene statistics overlay text

    :type: bool
    '''

    show_statvis: bool = None
    ''' Display statistical information about the mesh

    :type: bool
    '''

    show_text: bool = None
    ''' Display overlay text

    :type: bool
    '''

    show_vertex_normals: bool = None
    ''' Display vertex normals as lines

    :type: bool
    '''

    show_weight: bool = None
    ''' Display weights in editmode

    :type: bool
    '''

    show_wireframes: bool = None
    ''' Show face edges wires

    :type: bool
    '''

    show_wpaint_contours: bool = None
    ''' Show contour lines formed by points with the same interpolated weight

    :type: bool
    '''

    show_xray_bone: bool = None
    ''' Show the bone selection overlay

    :type: bool
    '''

    texture_paint_mode_opacity: float = None
    ''' Opacity of the texture paint mode stencil mask overlay

    :type: float
    '''

    use_gpencil_canvas_xray: bool = None
    ''' Show Canvas grid in front

    :type: bool
    '''

    use_gpencil_edit_lines: bool = None
    ''' Show Edit Lines when editing strokes

    :type: bool
    '''

    use_gpencil_fade_gp_objects: bool = None
    ''' Fade Grease Pencil Objects, except the active one

    :type: bool
    '''

    use_gpencil_fade_layers: bool = None
    ''' Toggle fading of Grease Pencil layers except the active one

    :type: bool
    '''

    use_gpencil_fade_objects: bool = None
    ''' Fade all viewport objects with a full color layer to improve visibility

    :type: bool
    '''

    use_gpencil_grid: bool = None
    ''' Display a grid over grease pencil paper

    :type: bool
    '''

    use_gpencil_multiedit_line_only: bool = None
    ''' Show Edit Lines only in multiframe

    :type: bool
    '''

    use_gpencil_onion_skin: bool = None
    ''' Show ghosts of the keyframes before and after the current frame

    :type: bool
    '''

    use_gpencil_show_directions: bool = None
    ''' Show stroke drawing direction with a bigger green dot (start) and smaller red dot (end) points

    :type: bool
    '''

    use_gpencil_show_material_name: bool = None
    ''' Show material name assigned to each stroke

    :type: bool
    '''

    use_normals_constant_screen_size: bool = None
    ''' Keep size of normals constant in relation to 3D view

    :type: bool
    '''

    vertex_opacity: float = None
    ''' Opacity for edit vertices

    :type: float
    '''

    vertex_paint_mode_opacity: float = None
    ''' Opacity of the texture paint mode stencil mask overlay

    :type: float
    '''

    weight_paint_mode_opacity: float = None
    ''' Opacity of the weight paint mode overlay

    :type: float
    '''

    wireframe_opacity: float = None
    ''' Opacity of the displayed edges (1.0 for opaque)

    :type: float
    '''

    wireframe_threshold: float = None
    ''' Adjust the angle threshold for displaying edges (1.0 for all)

    :type: float
    '''

    xray_alpha_bone: float = None
    ''' Opacity to use for bone selection

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class View3DShading(bpy_struct):
    ''' Settings for shading in the 3D viewport
    '''

    aov_name: str = None
    ''' Name of the active Shader AOV

    :type: str
    '''

    background_color: typing.List[float] = None
    ''' Color for custom background color

    :type: typing.List[float]
    '''

    background_type: typing.Union[int, str] = None
    ''' Way to display the background * THEME Theme -- Use the theme for background color. * WORLD World -- Use the world for background color. * VIEWPORT Viewport -- Use a custom color limited to this viewport only.

    :type: typing.Union[int, str]
    '''

    cavity_ridge_factor: float = None
    ''' Factor for the cavity ridges

    :type: float
    '''

    cavity_type: typing.Union[int, str] = None
    ''' Way to display the cavity shading * WORLD World -- Cavity shading computed in world space, useful for larger-scale occlusion. * SCREEN Screen -- Curvature-based shading, useful for making fine details more visible. * BOTH Both -- Use both effects simultaneously.

    :type: typing.Union[int, str]
    '''

    cavity_valley_factor: float = None
    ''' Factor for the cavity valleys

    :type: float
    '''

    color_type: typing.Union[int, str] = None
    ''' Color Type * MATERIAL Material -- Show material color. * SINGLE Single -- Show scene in a single color. * OBJECT Object -- Show object color. * RANDOM Random -- Show random object color. * VERTEX Vertex -- Show active vertex color. * TEXTURE Texture -- Show texture.

    :type: typing.Union[int, str]
    '''

    curvature_ridge_factor: float = None
    ''' Factor for the curvature ridges

    :type: float
    '''

    curvature_valley_factor: float = None
    ''' Factor for the curvature valleys

    :type: float
    '''

    cycles = None
    ''' '''

    light: typing.Union[int, str] = None
    ''' Lighting Method for Solid/Texture Viewport Shading * STUDIO Studio -- Display using studio lighting. * MATCAP MatCap -- Display using matcap material and lighting. * FLAT Flat -- Display using flat lighting.

    :type: typing.Union[int, str]
    '''

    object_outline_color: typing.List[float] = None
    ''' Color for object outline

    :type: typing.List[float]
    '''

    render_pass: typing.Union[int, str] = None
    ''' Render Pass to show in the viewport

    :type: typing.Union[int, str]
    '''

    selected_studio_light: 'StudioLight' = None
    ''' Selected StudioLight

    :type: 'StudioLight'
    '''

    shadow_intensity: float = None
    ''' Darkness of shadows

    :type: float
    '''

    show_backface_culling: bool = None
    ''' Use back face culling to hide the back side of faces

    :type: bool
    '''

    show_cavity: bool = None
    ''' Show Cavity

    :type: bool
    '''

    show_object_outline: bool = None
    ''' Show Object Outline

    :type: bool
    '''

    show_shadows: bool = None
    ''' Show Shadow

    :type: bool
    '''

    show_specular_highlight: bool = None
    ''' Render specular highlights

    :type: bool
    '''

    show_xray: bool = None
    ''' Show whole scene transparent

    :type: bool
    '''

    show_xray_wireframe: bool = None
    ''' Show whole scene transparent

    :type: bool
    '''

    single_color: typing.List[float] = None
    ''' Color for single color mode

    :type: typing.List[float]
    '''

    studio_light: typing.Union[int, str] = None
    ''' Studio lighting setup

    :type: typing.Union[int, str]
    '''

    studiolight_background_alpha: float = None
    ''' Show the studiolight in the background

    :type: float
    '''

    studiolight_background_blur: float = None
    ''' Blur the studiolight in the background

    :type: float
    '''

    studiolight_intensity: float = None
    ''' Strength of the studiolight

    :type: float
    '''

    studiolight_rotate_z: float = None
    ''' Rotation of the studiolight around the Z-Axis

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Method to display/shade objects in the 3D View * WIREFRAME Wireframe -- Display the object as wire edges. * SOLID Solid -- Display in solid mode. * MATERIAL Material Preview -- Display in Material Preview mode. * RENDERED Rendered -- Display render preview.

    :type: typing.Union[int, str]
    '''

    use_dof: bool = None
    ''' Use depth of field on viewport using the values from the active camera

    :type: bool
    '''

    use_scene_lights: bool = None
    ''' Render lights and light probes of the scene

    :type: bool
    '''

    use_scene_lights_render: bool = None
    ''' Render lights and light probes of the scene

    :type: bool
    '''

    use_scene_world: bool = None
    ''' Use scene world for lighting

    :type: bool
    '''

    use_scene_world_render: bool = None
    ''' Use scene world for lighting

    :type: bool
    '''

    use_studiolight_view_rotation: bool = None
    ''' Make the HDR rotation fixed and not follow the camera

    :type: bool
    '''

    use_world_space_lighting: bool = None
    ''' Make the lighting fixed and not follow the camera

    :type: bool
    '''

    wireframe_color_type: typing.Union[int, str] = None
    ''' Color Type * MATERIAL Material -- Show material color. * SINGLE Single -- Show scene in a single color. * OBJECT Object -- Show object color. * RANDOM Random -- Show random object color. * VERTEX Vertex -- Show active vertex color. * TEXTURE Texture -- Show texture.

    :type: typing.Union[int, str]
    '''

    xray_alpha: float = None
    ''' Amount of alpha to use

    :type: float
    '''

    xray_alpha_wireframe: float = None
    ''' Amount of alpha to use

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ViewLayer(bpy_struct):
    ''' View layer
    '''

    active_aov: 'AOV' = None
    ''' Active AOV

    :type: 'AOV'
    '''

    active_aov_index: int = None
    ''' Index of active aov

    :type: int
    '''

    active_layer_collection: 'LayerCollection' = None
    ''' Active layer collection in this view layer's hierarchy

    :type: 'LayerCollection'
    '''

    aovs: typing.Union[typing.Dict[str, 'AOV'], typing.
                       List['AOV'], 'bpy_prop_collection', 'AOVs'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'AOV'], typing.List['AOV'], 'bpy_prop_collection', 'AOVs']
    '''

    cycles = None
    ''' Cycles ViewLayer Settings'''

    depsgraph: 'Depsgraph' = None
    ''' Dependencies in the scene data

    :type: 'Depsgraph'
    '''

    eevee: 'ViewLayerEEVEE' = None
    ''' View layer settings for Eevee

    :type: 'ViewLayerEEVEE'
    '''

    freestyle_settings: 'FreestyleSettings' = None
    ''' 

    :type: 'FreestyleSettings'
    '''

    layer_collection: 'LayerCollection' = None
    ''' Root of collections hierarchy of this view layer,its 'collection' pointer property is the same as the scene's master collection

    :type: 'LayerCollection'
    '''

    material_override: 'Material' = None
    ''' Material to override all other materials in this view layer

    :type: 'Material'
    '''

    name: str = None
    ''' View layer name

    :type: str
    '''

    objects: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'],
                          'bpy_prop_collection', 'LayerObjects'] = None
    ''' All the objects in this layer

    :type: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'], 'bpy_prop_collection', 'LayerObjects']
    '''

    pass_alpha_threshold: float = None
    ''' Z, Index, normal, UV and vector passes are only affected by surfaces with alpha transparency equal to or higher than this threshold

    :type: float
    '''

    pass_cryptomatte_depth: int = None
    ''' Sets how many unique objects can be distinguished per pixel

    :type: int
    '''

    samples: int = None
    ''' Override number of render samples for this view layer, 0 will use the scene setting

    :type: int
    '''

    use: bool = None
    ''' Enable or disable rendering of this View Layer

    :type: bool
    '''

    use_ao: bool = None
    ''' Render Ambient Occlusion in this Layer

    :type: bool
    '''

    use_freestyle: bool = None
    ''' Render stylized strokes in this Layer

    :type: bool
    '''

    use_motion_blur: bool = None
    ''' Render motion blur in this Layer, if enabled in the scene

    :type: bool
    '''

    use_pass_ambient_occlusion: bool = None
    ''' Deliver Ambient Occlusion pass

    :type: bool
    '''

    use_pass_combined: bool = None
    ''' Deliver full combined RGBA buffer

    :type: bool
    '''

    use_pass_cryptomatte_accurate: bool = None
    ''' Generate a more accurate cryptomatte pass

    :type: bool
    '''

    use_pass_cryptomatte_asset: bool = None
    ''' Render cryptomatte asset pass, for isolating groups of objects with the same parent

    :type: bool
    '''

    use_pass_cryptomatte_material: bool = None
    ''' Render cryptomatte material pass, for isolating materials in compositing

    :type: bool
    '''

    use_pass_cryptomatte_object: bool = None
    ''' Render cryptomatte object pass, for isolating objects in compositing

    :type: bool
    '''

    use_pass_diffuse_color: bool = None
    ''' Deliver diffuse color pass

    :type: bool
    '''

    use_pass_diffuse_direct: bool = None
    ''' Deliver diffuse direct pass

    :type: bool
    '''

    use_pass_diffuse_indirect: bool = None
    ''' Deliver diffuse indirect pass

    :type: bool
    '''

    use_pass_emit: bool = None
    ''' Deliver emission pass

    :type: bool
    '''

    use_pass_environment: bool = None
    ''' Deliver environment lighting pass

    :type: bool
    '''

    use_pass_glossy_color: bool = None
    ''' Deliver glossy color pass

    :type: bool
    '''

    use_pass_glossy_direct: bool = None
    ''' Deliver glossy direct pass

    :type: bool
    '''

    use_pass_glossy_indirect: bool = None
    ''' Deliver glossy indirect pass

    :type: bool
    '''

    use_pass_material_index: bool = None
    ''' Deliver material index pass

    :type: bool
    '''

    use_pass_mist: bool = None
    ''' Deliver mist factor pass (0.0 to 1.0)

    :type: bool
    '''

    use_pass_normal: bool = None
    ''' Deliver normal pass

    :type: bool
    '''

    use_pass_object_index: bool = None
    ''' Deliver object index pass

    :type: bool
    '''

    use_pass_position: bool = None
    ''' Deliver position pass

    :type: bool
    '''

    use_pass_shadow: bool = None
    ''' Deliver shadow pass

    :type: bool
    '''

    use_pass_subsurface_color: bool = None
    ''' Deliver subsurface color pass

    :type: bool
    '''

    use_pass_subsurface_direct: bool = None
    ''' Deliver subsurface direct pass

    :type: bool
    '''

    use_pass_subsurface_indirect: bool = None
    ''' Deliver subsurface indirect pass

    :type: bool
    '''

    use_pass_transmission_color: bool = None
    ''' Deliver transmission color pass

    :type: bool
    '''

    use_pass_transmission_direct: bool = None
    ''' Deliver transmission direct pass

    :type: bool
    '''

    use_pass_transmission_indirect: bool = None
    ''' Deliver transmission indirect pass

    :type: bool
    '''

    use_pass_uv: bool = None
    ''' Deliver texture UV pass

    :type: bool
    '''

    use_pass_vector: bool = None
    ''' Deliver speed vector pass

    :type: bool
    '''

    use_pass_z: bool = None
    ''' Deliver Z values pass

    :type: bool
    '''

    use_sky: bool = None
    ''' Render Sky in this Layer

    :type: bool
    '''

    use_solid: bool = None
    ''' Render Solid faces in this Layer

    :type: bool
    '''

    use_strand: bool = None
    ''' Render Strands in this Layer

    :type: bool
    '''

    use_volumes: bool = None
    ''' Render volumes in this Layer

    :type: bool
    '''

    @classmethod
    def update_render_passes(cls):
        ''' Requery the enabled render passes from the render engine

        '''
        pass

    def update(self):
        ''' Update data tagged to be updated from previous access to data or operators

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ViewLayerEEVEE(bpy_struct):
    ''' View layer settings for Eevee
    '''

    use_pass_bloom: bool = None
    ''' Deliver bloom pass

    :type: bool
    '''

    use_pass_volume_direct: bool = None
    ''' Deliver volume direct light pass

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ViewLayers(bpy_struct):
    ''' Collection of render layers
    '''

    def new(self, name: str) -> 'ViewLayer':
        ''' Add a view layer to scene

        :param name: New name for the view layer (not unique)
        :type name: str
        :rtype: 'ViewLayer'
        :return: Newly created view layer
        '''
        pass

    def remove(self, layer: 'ViewLayer'):
        ''' Remove a view layer

        :param layer: View layer to remove
        :type layer: 'ViewLayer'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VolumeDisplay(bpy_struct):
    ''' Volume object display settings for 3D viewport
    '''

    density: float = None
    ''' Thickness of volume display in the viewport

    :type: float
    '''

    interpolation_method: typing.Union[int, str] = None
    ''' Interpolation method to use for volumes in solid mode * LINEAR Linear -- Good smoothness and speed. * CUBIC Cubic -- Smoothed high quality interpolation, but slower. * CLOSEST Closest -- No interpolation.

    :type: typing.Union[int, str]
    '''

    slice_axis: typing.Union[int, str] = None
    ''' * AUTO Auto -- Adjust slice direction according to the view direction. * X X -- Slice along the X axis. * Y Y -- Slice along the Y axis. * Z Z -- Slice along the Z axis.

    :type: typing.Union[int, str]
    '''

    slice_depth: float = None
    ''' Position of the slice

    :type: float
    '''

    use_slice: bool = None
    ''' Perform a single slice of the domain object

    :type: bool
    '''

    wireframe_detail: typing.Union[int, str] = None
    ''' Amount of detail for wireframe display * COARSE Coarse -- Display one box or point for each intermediate tree node. * FINE Fine -- Display box for each leaf node containing 8x8 voxels.

    :type: typing.Union[int, str]
    '''

    wireframe_type: typing.Union[int, str] = None
    ''' Type of wireframe display * NONE None -- Don't display volume in wireframe mode. * BOUNDS Bounds -- Display single bounding box for the entire grid. * BOXES Boxes -- Display bounding boxes for nodes in the volume tree. * POINTS Points -- Display points for nodes in the volume tree.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VolumeGrid(bpy_struct):
    ''' 3D volume grid
    '''

    channels: int = None
    ''' Number of dimensions of the grid data type

    :type: int
    '''

    data_type: typing.Union[int, str] = None
    ''' Data type of voxel values * BOOLEAN Boolean -- Boolean. * FLOAT Float -- Single precision float. * DOUBLE Double -- Double precision. * INT Integer -- 32-bit integer. * INT64 Integer 64-bit -- 64-bit integer. * MASK Mask -- No data, boolean mask of active voxels. * STRING String -- Text string. * VECTOR_FLOAT Float Vector -- 3D float vector. * VECTOR_DOUBLE Double Vector -- 3D double vector. * VECTOR_INT Integer Vector -- 3D integer vector. * POINTS Points (Unsupported) -- Points grid, currently unsupported by volume objects. * UNKNOWN Unknown -- Unsupported data type.

    :type: typing.Union[int, str]
    '''

    is_loaded: bool = None
    ''' Grid tree is loaded in memory

    :type: bool
    '''

    matrix_object: typing.List[float] = None
    ''' Transformation matrix from voxel index to object space

    :type: typing.List[float]
    '''

    name: str = None
    ''' Volume grid name

    :type: str
    '''

    def load(self) -> bool:
        ''' Load grid tree from file

        :rtype: bool
        :return: True if grid tree was successfully loaded
        '''
        pass

    def unload(self):
        ''' Unload grid tree and voxel data from memory, leaving only metadata

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VolumeGrids(bpy_struct):
    ''' 3D volume grids
    '''

    active_index: int = None
    ''' Index of active volume grid

    :type: int
    '''

    error_message: str = None
    ''' If loading grids failed, error message with details

    :type: str
    '''

    frame: int = None
    ''' Frame number that volume grids will be loaded at, based on scene time and volume parameters

    :type: int
    '''

    frame_filepath: str = None
    ''' Volume file used for loading the volume at the current frame. Empty if the volume has not be loaded or the frame only exists in memory

    :type: str
    '''

    is_loaded: bool = None
    ''' List of grids and metadata are loaded in memory

    :type: bool
    '''

    def load(self) -> bool:
        ''' Load list of grids and metadata from file

        :rtype: bool
        :return: True if grid list was successfully loaded
        '''
        pass

    def unload(self):
        ''' Unload all grid and voxel data from memory

        '''
        pass

    def save(self, filepath: str) -> bool:
        ''' Save grids and metadata to file

        :param filepath: File path to save to
        :type filepath: str
        :rtype: bool
        :return: True if grid list was successfully loaded
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VolumeRender(bpy_struct):
    ''' Volume object render settings
    '''

    clipping: float = None
    ''' Value under which voxels are considered empty space to optimize rendering

    :type: float
    '''

    space: typing.Union[int, str] = None
    ''' Specify volume density and step size in object or world space * OBJECT Object -- Keep volume opacity and detail the same regardless of object scale. * WORLD World -- Specify volume step size and density in world space.

    :type: typing.Union[int, str]
    '''

    step_size: float = None
    ''' Distance between volume samples. Lower values render more detail at the cost of performance. If set to zero, the step size is automatically determined based on voxel size

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WalkNavigation(bpy_struct):
    ''' Walk navigation settings
    '''

    jump_height: float = None
    ''' Maximum height of a jump

    :type: float
    '''

    mouse_speed: float = None
    ''' Speed factor for when looking around, high values mean faster mouse movement

    :type: float
    '''

    teleport_time: float = None
    ''' Interval of time warp when teleporting in navigation mode

    :type: float
    '''

    use_gravity: bool = None
    ''' Walk with gravity, or free navigate

    :type: bool
    '''

    use_mouse_reverse: bool = None
    ''' Reverse the vertical movement of the mouse

    :type: bool
    '''

    view_height: float = None
    ''' View distance from the floor when walking

    :type: float
    '''

    walk_speed: float = None
    ''' Base speed for walking and flying

    :type: float
    '''

    walk_speed_factor: float = None
    ''' Multiplication factor when using the fast or slow modifiers

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Window(bpy_struct):
    ''' Open window
    '''

    height: int = None
    ''' Window height

    :type: int
    '''

    parent: 'Window' = None
    ''' Active workspace and scene follow this window

    :type: 'Window'
    '''

    scene: 'Scene' = None
    ''' Active scene to be edited in the window

    :type: 'Scene'
    '''

    screen: 'Screen' = None
    ''' Active workspace screen showing in the window

    :type: 'Screen'
    '''

    stereo_3d_display: 'Stereo3dDisplay' = None
    ''' Settings for stereo 3D display

    :type: 'Stereo3dDisplay'
    '''

    view_layer: 'ViewLayer' = None
    ''' The active workspace view layer showing in the window

    :type: 'ViewLayer'
    '''

    width: int = None
    ''' Window width

    :type: int
    '''

    workspace: 'WorkSpace' = None
    ''' Active workspace showing in the window

    :type: 'WorkSpace'
    '''

    x: int = None
    ''' Horizontal location of the window

    :type: int
    '''

    y: int = None
    ''' Vertical location of the window

    :type: int
    '''

    def cursor_warp(self, x: int, y: int):
        ''' Set the cursor position

        :param x: 
        :type x: int
        :param y: 
        :type y: int
        '''
        pass

    def cursor_set(self, cursor: typing.Union[int, str]):
        ''' Set the cursor

        :param cursor: cursor
        :type cursor: typing.Union[int, str]
        '''
        pass

    def cursor_modal_set(self, cursor: typing.Union[int, str]):
        ''' Restore the previous cursor after calling cursor_modal_set

        :param cursor: cursor
        :type cursor: typing.Union[int, str]
        '''
        pass

    def cursor_modal_restore(self):
        ''' cursor_modal_restore

        '''
        pass

    def event_simulate(self,
                       type: typing.Union[int, str],
                       value: typing.Union[int, str],
                       unicode: str = "",
                       x: int = 0,
                       y: int = 0,
                       shift: bool = False,
                       ctrl: bool = False,
                       alt: bool = False,
                       oskey: bool = False) -> 'Event':
        ''' event_simulate

        :param type: Type * NONE Undocumented. * LEFTMOUSE Left Mouse -- LMB. * MIDDLEMOUSE Middle Mouse -- MMB. * RIGHTMOUSE Right Mouse -- RMB. * BUTTON4MOUSE Button4 Mouse -- MB4. * BUTTON5MOUSE Button5 Mouse -- MB5. * BUTTON6MOUSE Button6 Mouse -- MB6. * BUTTON7MOUSE Button7 Mouse -- MB7. * PEN Pen. * ERASER Eraser. * MOUSEMOVE Mouse Move -- MsMov. * INBETWEEN_MOUSEMOVE In-between Move -- MsSubMov. * TRACKPADPAN Mouse/Trackpad Pan -- MsPan. * TRACKPADZOOM Mouse/Trackpad Zoom -- MsZoom. * MOUSEROTATE Mouse/Trackpad Rotate -- MsRot. * MOUSESMARTZOOM Mouse/Trackpad Smart Zoom -- MsSmartZoom. * WHEELUPMOUSE Wheel Up -- WhUp. * WHEELDOWNMOUSE Wheel Down -- WhDown. * WHEELINMOUSE Wheel In -- WhIn. * WHEELOUTMOUSE Wheel Out -- WhOut. * EVT_TWEAK_L Tweak Left -- TwkL. * EVT_TWEAK_M Tweak Middle -- TwkM. * EVT_TWEAK_R Tweak Right -- TwkR. * A A. * B B. * C C. * D D. * E E. * F F. * G G. * H H. * I I. * J J. * K K. * L L. * M M. * N N. * O O. * P P. * Q Q. * R R. * S S. * T T. * U U. * V V. * W W. * X X. * Y Y. * Z Z. * ZERO 0. * ONE 1. * TWO 2. * THREE 3. * FOUR 4. * FIVE 5. * SIX 6. * SEVEN 7. * EIGHT 8. * NINE 9. * LEFT_CTRL Left Ctrl -- CtrlL. * LEFT_ALT Left Alt -- AltL. * LEFT_SHIFT Left Shift -- ShiftL. * RIGHT_ALT Right Alt -- AltR. * RIGHT_CTRL Right Ctrl -- CtrlR. * RIGHT_SHIFT Right Shift -- ShiftR. * OSKEY OS Key -- Cmd. * APP Application -- App. * GRLESS Grless. * ESC Esc. * TAB Tab. * RET Return -- Enter. * SPACE Spacebar -- Space. * LINE_FEED Line Feed. * BACK_SPACE Backspace -- BkSpace. * DEL Delete -- Del. * SEMI_COLON ;. * PERIOD .. * COMMA ,. * QUOTE ". * ACCENT_GRAVE \ . * MINUS -. * PLUS +. * SLASH /. * BACK_SLASH \\. * EQUAL =. * LEFT_BRACKET [. * RIGHT_BRACKET ]. * LEFT_ARROW Left Arrow -- ←. * DOWN_ARROW Down Arrow -- ↓. * RIGHT_ARROW Right Arrow -- →. * UP_ARROW Up Arrow -- ↑. * NUMPAD_2 Numpad 2 -- Pad2. * NUMPAD_4 Numpad 4 -- Pad4. * NUMPAD_6 Numpad 6 -- Pad6. * NUMPAD_8 Numpad 8 -- Pad8. * NUMPAD_1 Numpad 1 -- Pad1. * NUMPAD_3 Numpad 3 -- Pad3. * NUMPAD_5 Numpad 5 -- Pad5. * NUMPAD_7 Numpad 7 -- Pad7. * NUMPAD_9 Numpad 9 -- Pad9. * NUMPAD_PERIOD Numpad . -- Pad.. * NUMPAD_SLASH Numpad / -- Pad/. * NUMPAD_ASTERIX Numpad \* -- Pad\*. * NUMPAD_0 Numpad 0 -- Pad0. * NUMPAD_MINUS Numpad - -- Pad-. * NUMPAD_ENTER Numpad Enter -- PadEnter. * NUMPAD_PLUS Numpad + -- Pad+. * F1 F1. * F2 F2. * F3 F3. * F4 F4. * F5 F5. * F6 F6. * F7 F7. * F8 F8. * F9 F9. * F10 F10. * F11 F11. * F12 F12. * F13 F13. * F14 F14. * F15 F15. * F16 F16. * F17 F17. * F18 F18. * F19 F19. * F20 F20. * F21 F21. * F22 F22. * F23 F23. * F24 F24. * PAUSE Pause. * INSERT Insert -- Ins. * HOME Home. * PAGE_UP Page Up -- PgUp. * PAGE_DOWN Page Down -- PgDown. * END End. * MEDIA_PLAY Media Play/Pause -- >/\|\|. * MEDIA_STOP Media Stop -- Stop. * MEDIA_FIRST Media First -- \|<<. * MEDIA_LAST Media Last -- >>\|. * TEXTINPUT Text Input -- TxtIn. * WINDOW_DEACTIVATE Window Deactivate. * TIMER Timer -- Tmr. * TIMER0 Timer 0 -- Tmr0. * TIMER1 Timer 1 -- Tmr1. * TIMER2 Timer 2 -- Tmr2. * TIMER_JOBS Timer Jobs -- TmrJob. * TIMER_AUTOSAVE Timer Autosave -- TmrSave. * TIMER_REPORT Timer Report -- TmrReport. * TIMERREGION Timer Region -- TmrReg. * NDOF_MOTION NDOF Motion -- NdofMov. * NDOF_BUTTON_MENU NDOF Menu -- NdofMenu. * NDOF_BUTTON_FIT NDOF Fit -- NdofFit. * NDOF_BUTTON_TOP NDOF Top -- Ndof↑. * NDOF_BUTTON_BOTTOM NDOF Bottom -- Ndof↓. * NDOF_BUTTON_LEFT NDOF Left -- Ndof←. * NDOF_BUTTON_RIGHT NDOF Right -- Ndof→. * NDOF_BUTTON_FRONT NDOF Front -- NdofFront. * NDOF_BUTTON_BACK NDOF Back -- NdofBack. * NDOF_BUTTON_ISO1 NDOF Isometric 1 -- NdofIso1. * NDOF_BUTTON_ISO2 NDOF Isometric 2 -- NdofIso2. * NDOF_BUTTON_ROLL_CW NDOF Roll CW -- NdofRCW. * NDOF_BUTTON_ROLL_CCW NDOF Roll CCW -- NdofRCCW. * NDOF_BUTTON_SPIN_CW NDOF Spin CW -- NdofSCW. * NDOF_BUTTON_SPIN_CCW NDOF Spin CCW -- NdofSCCW. * NDOF_BUTTON_TILT_CW NDOF Tilt CW -- NdofTCW. * NDOF_BUTTON_TILT_CCW NDOF Tilt CCW -- NdofTCCW. * NDOF_BUTTON_ROTATE NDOF Rotate -- NdofRot. * NDOF_BUTTON_PANZOOM NDOF Pan/Zoom -- NdofPanZoom. * NDOF_BUTTON_DOMINANT NDOF Dominant -- NdofDom. * NDOF_BUTTON_PLUS NDOF Plus -- Ndof+. * NDOF_BUTTON_MINUS NDOF Minus -- Ndof-. * NDOF_BUTTON_ESC NDOF Esc -- NdofEsc. * NDOF_BUTTON_ALT NDOF Alt -- NdofAlt. * NDOF_BUTTON_SHIFT NDOF Shift -- NdofShift. * NDOF_BUTTON_CTRL NDOF Ctrl -- NdofCtrl. * NDOF_BUTTON_1 NDOF Button 1 -- NdofB1. * NDOF_BUTTON_2 NDOF Button 2 -- NdofB2. * NDOF_BUTTON_3 NDOF Button 3 -- NdofB3. * NDOF_BUTTON_4 NDOF Button 4 -- NdofB4. * NDOF_BUTTON_5 NDOF Button 5 -- NdofB5. * NDOF_BUTTON_6 NDOF Button 6 -- NdofB6. * NDOF_BUTTON_7 NDOF Button 7 -- NdofB7. * NDOF_BUTTON_8 NDOF Button 8 -- NdofB8. * NDOF_BUTTON_9 NDOF Button 9 -- NdofB9. * NDOF_BUTTON_10 NDOF Button 10 -- NdofB10. * NDOF_BUTTON_A NDOF Button A -- NdofBA. * NDOF_BUTTON_B NDOF Button B -- NdofBB. * NDOF_BUTTON_C NDOF Button C -- NdofBC. * ACTIONZONE_AREA ActionZone Area -- AZone Area. * ACTIONZONE_REGION ActionZone Region -- AZone Region. * ACTIONZONE_FULLSCREEN ActionZone Fullscreen -- AZone FullScr. * XR_ACTION XR Action.
        :type type: typing.Union[int, str]
        :param value: Value
        :type value: typing.Union[int, str]
        :param unicode: 
        :type unicode: str
        :param x: 
        :type x: int
        :param y: 
        :type y: int
        :param shift: Shift
        :type shift: bool
        :param ctrl: Ctrl
        :type ctrl: bool
        :param alt: Alt
        :type alt: bool
        :param oskey: OS Key
        :type oskey: bool
        :rtype: 'Event'
        :return: Item, Added key map item
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WorkSpaceTool(bpy_struct):
    has_datablock: bool = None
    ''' 

    :type: bool
    '''

    idname: str = None
    ''' 

    :type: str
    '''

    idname_fallback: str = None
    ''' 

    :type: str
    '''

    index: int = None
    ''' 

    :type: int
    '''

    mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    space_type: typing.Union[int, str] = None
    ''' * EMPTY Empty. * VIEW_3D 3D Viewport -- Manipulate objects in a 3D environment. * IMAGE_EDITOR UV/Image Editor -- View and edit images and UV Maps. * NODE_EDITOR Node Editor -- Editor for node-based shading and compositing tools. * SEQUENCE_EDITOR Video Sequencer -- Video editing tools. * CLIP_EDITOR Movie Clip Editor -- Motion tracking tools. * DOPESHEET_EDITOR Dope Sheet -- Adjust timing of keyframes. * GRAPH_EDITOR Graph Editor -- Edit drivers and keyframe interpolation. * NLA_EDITOR Nonlinear Animation -- Combine and layer Actions. * TEXT_EDITOR Text Editor -- Edit scripts and in-file documentation. * CONSOLE Python Console -- Interactive programmatic console for advanced editing and script development. * INFO Info -- Log of operations, warnings and error messages. * TOPBAR Top Bar -- Global bar at the top of the screen for global per-window settings. * STATUSBAR Status Bar -- Global bar at the bottom of the screen for general status information. * OUTLINER Outliner -- Overview of scene graph and all available data-blocks. * PROPERTIES Properties -- Edit properties of active object and related data-blocks. * FILE_BROWSER File Browser -- Browse for files and assets. * SPREADSHEET Spreadsheet -- Explore geometry data in a table. * PREFERENCES Preferences -- Edit persistent configuration settings.

    :type: typing.Union[int, str]
    '''

    widget: str = None
    ''' 

    :type: str
    '''

    def setup(self,
              idname: str,
              cursor: typing.Union[int, str] = 'DEFAULT',
              keymap: str = "",
              gizmo_group: str = "",
              data_block: str = "",
              operator: str = "",
              index: int = 0,
              options: typing.Union[typing.Set[int], typing.Set[str]] = {},
              idname_fallback: str = "",
              keymap_fallback: str = ""):
        ''' Set the tool settings

        :param idname: Identifier
        :type idname: str
        :param cursor: cursor
        :type cursor: typing.Union[int, str]
        :param keymap: Key Map
        :type keymap: str
        :param gizmo_group: Gizmo Group
        :type gizmo_group: str
        :param data_block: Data Block
        :type data_block: str
        :param operator: Operator
        :type operator: str
        :param index: Index
        :type index: int
        :param options: Tool Options
        :type options: typing.Union[typing.Set[int], typing.Set[str]]
        :param idname_fallback: Fallback Identifier
        :type idname_fallback: str
        :param keymap_fallback: Fallback Key Map
        :type keymap_fallback: str
        '''
        pass

    def operator_properties(self, operator: str):
        ''' operator_properties

        :param operator: 
        :type operator: str
        '''
        pass

    def gizmo_group_properties(self, group: str):
        ''' gizmo_group_properties

        :param group: 
        :type group: str
        '''
        pass

    def refresh_from_context(self):
        ''' refresh_from_context

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WorldLighting(bpy_struct):
    ''' Lighting for a World data-block
    '''

    ao_factor: float = None
    ''' Factor for ambient occlusion blending

    :type: float
    '''

    distance: float = None
    ''' Length of rays, defines how far away other faces give occlusion effect

    :type: float
    '''

    use_ambient_occlusion: bool = None
    ''' Use Ambient Occlusion to add shadowing based on distance between objects

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WorldMistSettings(bpy_struct):
    ''' Mist settings for a World data-block
    '''

    depth: float = None
    ''' Distance over which the mist effect fades in

    :type: float
    '''

    falloff: typing.Union[int, str] = None
    ''' Type of transition used to fade mist * QUADRATIC Quadratic -- Use quadratic progression. * LINEAR Linear -- Use linear progression. * INVERSE_QUADRATIC Inverse Quadratic -- Use inverse quadratic progression.

    :type: typing.Union[int, str]
    '''

    height: float = None
    ''' Control how much mist density decreases with height

    :type: float
    '''

    intensity: float = None
    ''' Overall minimum intensity of the mist effect

    :type: float
    '''

    start: float = None
    ''' Starting distance of the mist, measured from the camera

    :type: float
    '''

    use_mist: bool = None
    ''' Occlude objects with the environment color as they are further away

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrActionMap(bpy_struct):
    actionmap_items: typing.Union[
        typing.Dict[str, 'XrActionMapItem'], typing.List['XrActionMapItem'],
        'bpy_prop_collection', 'XrActionMapItems'] = None
    ''' Items in the action map, mapping an XR event to an operator, pose, or haptic output

    :type: typing.Union[typing.Dict[str, 'XrActionMapItem'], typing.List['XrActionMapItem'], 'bpy_prop_collection', 'XrActionMapItems']
    '''

    name: str = None
    ''' Name of the action map

    :type: str
    '''

    selected_item: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrActionMapBinding(bpy_struct):
    ''' Binding in an XR action map item
    '''

    axis0_region: typing.Union[int, str] = None
    ''' Action execution region for the first input axis * ANY Any -- Use any axis region for operator execution. * POSITIVE Positive -- Use positive axis region only for operator execution. * NEGATIVE Negative -- Use negative axis region only for operator execution.

    :type: typing.Union[int, str]
    '''

    axis1_region: typing.Union[int, str] = None
    ''' Action execution region for the second input axis * ANY Any -- Use any axis region for operator execution. * POSITIVE Positive -- Use positive axis region only for operator execution. * NEGATIVE Negative -- Use negative axis region only for operator execution.

    :type: typing.Union[int, str]
    '''

    component_path0: str = None
    ''' OpenXR component path

    :type: str
    '''

    component_path1: str = None
    ''' OpenXR component path

    :type: str
    '''

    name: str = None
    ''' Name of the action map binding

    :type: str
    '''

    pose_location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    pose_rotation: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    profile: str = None
    ''' OpenXR interaction profile path

    :type: str
    '''

    threshold: float = None
    ''' Input threshold for button/axis actions

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrActionMapBindings(bpy_struct):
    ''' Collection of XR action map bindings
    '''

    def new(self, name: str, replace_existing: bool) -> 'XrActionMapBinding':
        ''' new

        :param name: Name of the action map binding
        :type name: str
        :param replace_existing: Replace Existing, Replace any existing binding with the same name
        :type replace_existing: bool
        :rtype: 'XrActionMapBinding'
        :return: Binding, Added action map binding
        '''
        pass

    def new_from_binding(
            self, binding: 'XrActionMapBinding') -> 'XrActionMapBinding':
        ''' new_from_binding

        :param binding: Binding, Binding to use as a reference
        :type binding: 'XrActionMapBinding'
        :rtype: 'XrActionMapBinding'
        :return: Binding, Added action map binding
        '''
        pass

    def remove(self, binding: 'XrActionMapBinding'):
        ''' remove

        :param binding: Binding
        :type binding: 'XrActionMapBinding'
        '''
        pass

    def find(self, name: str) -> 'XrActionMapBinding':
        ''' find

        :param name: Name
        :type name: str
        :rtype: 'XrActionMapBinding'
        :return: Binding, The action map binding with the given name
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrActionMapItem(bpy_struct):
    bimanual: bool = None
    ''' The action depends on the states/poses of both user paths

    :type: bool
    '''

    bindings: typing.Union[typing.Dict[str, 'XrActionMapBinding'], typing.
                           List['XrActionMapBinding'], 'bpy_prop_collection',
                           'XrActionMapBindings'] = None
    ''' Bindings for the action map item, mapping the action to an XR input

    :type: typing.Union[typing.Dict[str, 'XrActionMapBinding'], typing.List['XrActionMapBinding'], 'bpy_prop_collection', 'XrActionMapBindings']
    '''

    haptic_amplitude: float = None
    ''' Intensity of the haptic vibration, ranging from 0.0 to 1.0

    :type: float
    '''

    haptic_duration: float = None
    ''' Haptic duration in seconds. 0.0 is the minimum supported duration

    :type: float
    '''

    haptic_frequency: float = None
    ''' Frequency of the haptic vibration in hertz. 0.0 specifies the OpenXR runtime's default frequency

    :type: float
    '''

    haptic_match_user_paths: bool = None
    ''' Apply haptics to the same user paths for the haptic action and this action

    :type: bool
    '''

    haptic_mode: typing.Union[int, str] = None
    ''' Haptic application mode * PRESS Press -- Apply haptics on button press. * RELEASE Release -- Apply haptics on button release. * PRESS_RELEASE Press Release -- Apply haptics on button press and release. * REPEAT Repeat -- Apply haptics repeatedly for the duration of the button press.

    :type: typing.Union[int, str]
    '''

    haptic_name: str = None
    ''' Name of the haptic action to apply when executing this action

    :type: str
    '''

    name: str = None
    ''' Name of the action map item

    :type: str
    '''

    op: str = None
    ''' Identifier of operator to call on action event

    :type: str
    '''

    op_mode: typing.Union[int, str] = None
    ''' Operator execution mode * PRESS Press -- Execute operator on button press (non-modal operators only). * RELEASE Release -- Execute operator on button release (non-modal operators only). * MODAL Modal -- Use modal execution (modal operators only).

    :type: typing.Union[int, str]
    '''

    op_name: str = None
    ''' Name of operator (translated) to call on action event

    :type: str
    '''

    op_properties: 'OperatorProperties' = None
    ''' Properties to set when the operator is called

    :type: 'OperatorProperties'
    '''

    pose_is_controller_aim: bool = None
    ''' The action poses will be used for the VR controller aims

    :type: bool
    '''

    pose_is_controller_grip: bool = None
    ''' The action poses will be used for the VR controller grips

    :type: bool
    '''

    selected_binding: int = None
    ''' Currently selected binding

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Action type * FLOAT Float -- Float action, representing either a digital or analog button. * VECTOR2D Vector2D -- 2D float vector action, representing a thumbstick or trackpad. * POSE Pose -- 3D pose action, representing a controller's location and rotation. * VIBRATION Vibration -- Haptic vibration output action, to be applied with a duration, frequency, and amplitude.

    :type: typing.Union[int, str]
    '''

    user_path0: str = None
    ''' OpenXR user path

    :type: str
    '''

    user_path1: str = None
    ''' OpenXR user path

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrActionMapItems(bpy_struct):
    ''' Collection of XR action map items
    '''

    def new(self, name: str, replace_existing: bool) -> 'XrActionMapItem':
        ''' new

        :param name: Name of the action map item
        :type name: str
        :param replace_existing: Replace Existing, Replace any existing item with the same name
        :type replace_existing: bool
        :rtype: 'XrActionMapItem'
        :return: Item, Added action map item
        '''
        pass

    def new_from_item(self, item: 'XrActionMapItem') -> 'XrActionMapItem':
        ''' new_from_item

        :param item: Item, Item to use as a reference
        :type item: 'XrActionMapItem'
        :rtype: 'XrActionMapItem'
        :return: Item, Added action map item
        '''
        pass

    def remove(self, item: 'XrActionMapItem'):
        ''' remove

        :param item: Item
        :type item: 'XrActionMapItem'
        '''
        pass

    def find(self, name: str) -> 'XrActionMapItem':
        ''' find

        :param name: Name
        :type name: str
        :rtype: 'XrActionMapItem'
        :return: Item, The action map item with the given name
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrActionMaps(bpy_struct):
    ''' Collection of XR action maps
    '''

    @classmethod
    def new(cls, xr_session_state: 'XrSessionState', name: str,
            replace_existing: bool) -> 'XrActionMap':
        ''' new

        :param xr_session_state: XR Session State
        :type xr_session_state: 'XrSessionState'
        :param name: Name
        :type name: str
        :param replace_existing: Replace Existing, Replace any existing actionmap with the same name
        :type replace_existing: bool
        :rtype: 'XrActionMap'
        :return: Action Map, Added action map
        '''
        pass

    @classmethod
    def new_from_actionmap(cls, xr_session_state: 'XrSessionState',
                           actionmap: 'XrActionMap') -> 'XrActionMap':
        ''' new_from_actionmap

        :param xr_session_state: XR Session State
        :type xr_session_state: 'XrSessionState'
        :param actionmap: Action Map, Action map to use as a reference
        :type actionmap: 'XrActionMap'
        :rtype: 'XrActionMap'
        :return: Action Map, Added action map
        '''
        pass

    @classmethod
    def remove(cls, xr_session_state: 'XrSessionState',
               actionmap: 'XrActionMap'):
        ''' remove

        :param xr_session_state: XR Session State
        :type xr_session_state: 'XrSessionState'
        :param actionmap: Action Map, Removed action map
        :type actionmap: 'XrActionMap'
        '''
        pass

    @classmethod
    def find(cls, xr_session_state: 'XrSessionState',
             name: str) -> 'XrActionMap':
        ''' find

        :param xr_session_state: XR Session State
        :type xr_session_state: 'XrSessionState'
        :param name: Name
        :type name: str
        :rtype: 'XrActionMap'
        :return: Action Map, The action map with the given name
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrEventData(bpy_struct):
    ''' XR Data for Window Manager Event
    '''

    action: str = None
    ''' XR action name

    :type: str
    '''

    action_set: str = None
    ''' XR action set name

    :type: str
    '''

    bimanual: bool = None
    ''' Whether bimanual interaction is occurring

    :type: bool
    '''

    controller_location: typing.List[float] = None
    ''' Location of the action's corresponding controller aim in world space

    :type: typing.List[float]
    '''

    controller_location_other: typing.List[float] = None
    ''' Controller aim location of the other user path for bimanual actions

    :type: typing.List[float]
    '''

    controller_rotation: typing.List[float] = None
    ''' Rotation of the action's corresponding controller aim in world space

    :type: typing.List[float]
    '''

    controller_rotation_other: typing.List[float] = None
    ''' Controller aim rotation of the other user path for bimanual actions

    :type: typing.List[float]
    '''

    float_threshold: float = None
    ''' Input threshold for float/2D vector actions

    :type: float
    '''

    state: typing.List[float] = None
    ''' XR action values corresponding to type

    :type: typing.List[float]
    '''

    state_other: typing.List[float] = None
    ''' State of the other user path for bimanual actions

    :type: typing.List[float]
    '''

    type: typing.Union[int, str] = None
    ''' XR action type * FLOAT Float -- Float action, representing either a digital or analog button. * VECTOR2D Vector2D -- 2D float vector action, representing a thumbstick or trackpad. * POSE Pose -- 3D pose action, representing a controller's location and rotation. * VIBRATION Vibration -- Haptic vibration output action, to be applied with a duration, frequency, and amplitude.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrSessionSettings(bpy_struct):
    base_pose_angle: float = None
    ''' Rotation angle around the Z-Axis to apply the rotation deltas from the VR headset to

    :type: float
    '''

    base_pose_location: typing.List[float] = None
    ''' Coordinates to apply translation deltas from the VR headset to

    :type: typing.List[float]
    '''

    base_pose_object: 'Object' = None
    ''' Object to take the location and rotation to which translation and rotation deltas from the VR headset will be applied to

    :type: 'Object'
    '''

    base_pose_type: typing.Union[int, str] = None
    ''' Define where the location and rotation for the VR view come from, to which translation and rotation deltas from the VR headset will be applied to * SCENE_CAMERA Scene Camera -- Follow the active scene camera to define the VR view's base pose. * OBJECT Object -- Follow the transformation of an object to define the VR view's base pose. * CUSTOM Custom -- Follow a custom transformation to define the VR view's base pose.

    :type: typing.Union[int, str]
    '''

    base_scale: float = None
    ''' Uniform scale to apply to VR view

    :type: float
    '''

    clip_end: float = None
    ''' VR viewport far clipping distance

    :type: float
    '''

    clip_start: float = None
    ''' VR viewport near clipping distance

    :type: float
    '''

    controller_draw_style: typing.Union[int, str] = None
    ''' Style to use when drawing VR controllers * DARK Dark -- Draw dark controller. * LIGHT Light -- Draw light controller. * DARK_RAY Dark + Ray -- Draw dark controller with aiming axis ray. * LIGHT_RAY Light + Ray -- Draw light controller with aiming axis ray.

    :type: typing.Union[int, str]
    '''

    shading: 'View3DShading' = None
    ''' 

    :type: 'View3DShading'
    '''

    show_annotation: bool = None
    ''' Show annotations for this view

    :type: bool
    '''

    show_controllers: bool = None
    ''' Show VR controllers (requires VR actions for controller poses)

    :type: bool
    '''

    show_custom_overlays: bool = None
    ''' Show custom VR overlays

    :type: bool
    '''

    show_floor: bool = None
    ''' Show the ground plane grid

    :type: bool
    '''

    show_selection: bool = None
    ''' Show selection outlines

    :type: bool
    '''

    use_absolute_tracking: bool = None
    ''' Allow the VR tracking origin to be defined independently of the headset location

    :type: bool
    '''

    use_positional_tracking: bool = None
    ''' Allow VR headsets to affect the location in virtual space, in addition to the rotation

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class XrSessionState(bpy_struct):
    ''' Runtime state information about the VR session
    '''

    actionmaps: typing.Union[typing.Dict[str, 'XrActionMap'], typing.
                             List['XrActionMap'], 'bpy_prop_collection',
                             'XrActionMaps'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'XrActionMap'], typing.List['XrActionMap'], 'bpy_prop_collection', 'XrActionMaps']
    '''

    active_actionmap: int = None
    ''' 

    :type: int
    '''

    navigation_location: typing.List[float] = None
    ''' Location offset to apply to base pose when determining viewer location

    :type: typing.List[float]
    '''

    navigation_rotation: typing.List[float] = None
    ''' Rotation offset to apply to base pose when determining viewer rotation

    :type: typing.List[float]
    '''

    navigation_scale: float = None
    ''' Additional scale multiplier to apply to base scale when determining viewer scale

    :type: float
    '''

    selected_actionmap: int = None
    ''' 

    :type: int
    '''

    viewer_pose_location: typing.List[float] = None
    ''' Last known location of the viewer pose (center between the eyes) in world space

    :type: typing.List[float]
    '''

    viewer_pose_rotation: typing.List[float] = None
    ''' Last known rotation of the viewer pose (center between the eyes) in world space

    :type: typing.List[float]
    '''

    @classmethod
    def is_running(cls, context: 'Context') -> bool:
        ''' Query if the VR session is currently running

        :param context: 
        :type context: 'Context'
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def reset_to_base_pose(cls, context: 'Context'):
        ''' Force resetting of position and rotation deltas

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def action_set_create(cls, context: 'Context',
                          actionmap: 'XrActionMap') -> bool:
        ''' Create a VR action set

        :param context: 
        :type context: 'Context'
        :param actionmap: 
        :type actionmap: 'XrActionMap'
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def action_create(cls, context: 'Context', actionmap: 'XrActionMap',
                      actionmap_item: 'XrActionMapItem') -> bool:
        ''' Create a VR action

        :param context: 
        :type context: 'Context'
        :param actionmap: 
        :type actionmap: 'XrActionMap'
        :param actionmap_item: 
        :type actionmap_item: 'XrActionMapItem'
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def action_binding_create(cls, context: 'Context',
                              actionmap: 'XrActionMap',
                              actionmap_item: 'XrActionMapItem',
                              actionmap_binding: 'XrActionMapBinding') -> bool:
        ''' Create a VR action binding

        :param context: 
        :type context: 'Context'
        :param actionmap: 
        :type actionmap: 'XrActionMap'
        :param actionmap_item: 
        :type actionmap_item: 'XrActionMapItem'
        :param actionmap_binding: 
        :type actionmap_binding: 'XrActionMapBinding'
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def active_action_set_set(cls, context: 'Context',
                              action_set: str) -> bool:
        ''' Set the active VR action set

        :param context: 
        :type context: 'Context'
        :param action_set: Action Set, Action set name
        :type action_set: str
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def controller_pose_actions_set(cls, context: 'Context', action_set: str,
                                    grip_action: str, aim_action: str) -> bool:
        ''' Set the actions that determine the VR controller poses

        :param context: 
        :type context: 'Context'
        :param action_set: Action Set, Action set name
        :type action_set: str
        :param grip_action: Grip Action, Name of the action representing the controller grips
        :type grip_action: str
        :param aim_action: Aim Action, Name of the action representing the controller aims
        :type aim_action: str
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def action_state_get(cls, context: 'Context', action_set_name: str,
                         action_name: str,
                         user_path: str) -> typing.List[float]:
        ''' Get the current state of a VR action

        :param context: 
        :type context: 'Context'
        :param action_set_name: Action Set, Action set name
        :type action_set_name: str
        :param action_name: Action, Action name
        :type action_name: str
        :param user_path: User Path, OpenXR user path
        :type user_path: str
        :rtype: typing.List[float]
        :return: Action State, Current state of the VR action. Second float value is only set for 2D vector type actions
        '''
        pass

    @classmethod
    def haptic_action_apply(cls, context: 'Context', action_set_name: str,
                            action_name: str, user_path: str, duration: float,
                            frequency: float, amplitude: float) -> bool:
        ''' Apply a VR haptic action

        :param context: 
        :type context: 'Context'
        :param action_set_name: Action Set, Action set name
        :type action_set_name: str
        :param action_name: Action, Action name
        :type action_name: str
        :param user_path: User Path, Optional OpenXR user path. If not set, the action will be applied to all paths
        :type user_path: str
        :param duration: Duration, Haptic duration in seconds. 0.0 is the minimum supported duration
        :type duration: float
        :param frequency: Frequency, Frequency of the haptic vibration in hertz. 0.0 specifies the OpenXR runtime's default frequency
        :type frequency: float
        :param amplitude: Amplitude, Haptic amplitude, ranging from 0.0 to 1.0
        :type amplitude: float
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def haptic_action_stop(cls, context: 'Context', action_set_name: str,
                           action_name: str, user_path: str):
        ''' Stop a VR haptic action

        :param context: 
        :type context: 'Context'
        :param action_set_name: Action Set, Action set name
        :type action_set_name: str
        :param action_name: Action, Action name
        :type action_name: str
        :param user_path: User Path, Optional OpenXR user path. If not set, the action will be stopped for all paths
        :type user_path: str
        '''
        pass

    @classmethod
    def controller_grip_location_get(cls, context: 'Context',
                                     index: int) -> typing.List[float]:
        ''' Get the last known controller grip location in world space

        :param context: 
        :type context: 'Context'
        :param index: Index, Controller index
        :type index: int
        :rtype: typing.List[float]
        :return: Location, Controller grip location
        '''
        pass

    @classmethod
    def controller_grip_rotation_get(cls, context: 'Context',
                                     index: int) -> typing.List[float]:
        ''' Get the last known controller grip rotation (quaternion) in world space

        :param context: 
        :type context: 'Context'
        :param index: Index, Controller index
        :type index: int
        :rtype: typing.List[float]
        :return: Rotation, Controller grip quaternion rotation
        '''
        pass

    @classmethod
    def controller_aim_location_get(cls, context: 'Context',
                                    index: int) -> typing.List[float]:
        ''' Get the last known controller aim location in world space

        :param context: 
        :type context: 'Context'
        :param index: Index, Controller index
        :type index: int
        :rtype: typing.List[float]
        :return: Location, Controller aim location
        '''
        pass

    @classmethod
    def controller_aim_rotation_get(cls, context: 'Context',
                                    index: int) -> typing.List[float]:
        ''' Get the last known controller aim rotation (quaternion) in world space

        :param context: 
        :type context: 'Context'
        :param index: Index, Controller index
        :type index: int
        :rtype: typing.List[float]
        :return: Rotation, Controller aim quaternion rotation
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class wmOwnerID(bpy_struct):
    name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class wmOwnerIDs(bpy_struct):
    def new(self, name: str):
        ''' Add ui tag

        :param name: New name for the tag
        :type name: str
        '''
        pass

    def remove(self, owner_id: 'wmOwnerID'):
        ''' Remove ui tag

        :param owner_id: Tag to remove
        :type owner_id: 'wmOwnerID'
        '''
        pass

    def clear(self):
        ''' Remove all tags

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class wmTools(bpy_struct):
    def from_space_view3d_mode(self,
                               mode: typing.Union[int, str],
                               create: bool = False):
        ''' 

        :param mode: 
        :type mode: typing.Union[int, str]
        :param create: Create
        :type create: bool
        '''
        pass

    def from_space_image_mode(self,
                              mode: typing.Union[int, str],
                              create: bool = False):
        ''' 

        :param mode: * VIEW View -- View the image. * UV UV Editor -- UV edit in mesh editmode. * PAINT Paint -- 2D image painting mode. * MASK Mask -- Mask editing.
        :type mode: typing.Union[int, str]
        :param create: Create
        :type create: bool
        '''
        pass

    def from_space_node(self, create: bool = False):
        ''' 

        :param create: Create
        :type create: bool
        '''
        pass

    def from_space_sequencer(self,
                             mode: typing.Union[int, str],
                             create: bool = False):
        ''' 

        :param mode: 
        :type mode: typing.Union[int, str]
        :param create: Create
        :type create: bool
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoolAttribute(Attribute, bpy_struct):
    ''' Bool geometry attribute
    '''

    data: typing.Union[typing.Dict[str, 'BoolAttributeValue'], typing.
                       List['BoolAttributeValue'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'BoolAttributeValue'], typing.List['BoolAttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ByteColorAttribute(Attribute, bpy_struct):
    ''' Color geometry attribute, with 8-bit values
    '''

    data: typing.Union[typing.Dict[str, 'ByteColorAttributeValue'], typing.
                       List['ByteColorAttributeValue'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ByteColorAttributeValue'], typing.List['ByteColorAttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Float2Attribute(Attribute, bpy_struct):
    ''' 2D vector geometry attribute, with floating-point values
    '''

    data: typing.Union[typing.Dict[str, 'Float2AttributeValue'], typing.
                       List['Float2AttributeValue'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Float2AttributeValue'], typing.List['Float2AttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloatAttribute(Attribute, bpy_struct):
    ''' Geometry attribute with floating-point values
    '''

    data: typing.Union[typing.Dict[str, 'FloatAttributeValue'], typing.
                       List['FloatAttributeValue'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'FloatAttributeValue'], typing.List['FloatAttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloatColorAttribute(Attribute, bpy_struct):
    ''' Color geometry attribute, with floating-point values
    '''

    data: typing.Union[typing.Dict[str, 'FloatColorAttributeValue'], typing.
                       List['FloatColorAttributeValue'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'FloatColorAttributeValue'], typing.List['FloatColorAttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloatVectorAttribute(Attribute, bpy_struct):
    ''' Vector geometry attribute, with floating-point values
    '''

    data: typing.Union[typing.Dict[str, 'FloatVectorAttributeValue'], typing.
                       List['FloatVectorAttributeValue'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'FloatVectorAttributeValue'], typing.List['FloatVectorAttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IntAttribute(Attribute, bpy_struct):
    ''' Integer geometry attribute
    '''

    data: typing.Union[typing.Dict[str, 'IntAttributeValue'], typing.
                       List['IntAttributeValue'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'IntAttributeValue'], typing.List['IntAttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class StringAttribute(Attribute, bpy_struct):
    ''' String geometry attribute
    '''

    data: typing.Union[typing.Dict[str, 'StringAttributeValue'], typing.
                       List['StringAttributeValue'],
                       'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'StringAttributeValue'], typing.List['StringAttributeValue'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidRuleAverageSpeed(BoidRule, bpy_struct):
    level: float = None
    ''' How much velocity's z-component is kept constant

    :type: float
    '''

    speed: float = None
    ''' Percentage of maximum speed

    :type: float
    '''

    wander: float = None
    ''' How fast velocity's direction is randomized

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidRuleAvoid(BoidRule, bpy_struct):
    fear_factor: float = None
    ''' Avoid object if danger from it is above this threshold

    :type: float
    '''

    object: 'Object' = None
    ''' Object to avoid

    :type: 'Object'
    '''

    use_predict: bool = None
    ''' Predict target movement

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidRuleAvoidCollision(BoidRule, bpy_struct):
    look_ahead: float = None
    ''' Time to look ahead in seconds

    :type: float
    '''

    use_avoid: bool = None
    ''' Avoid collision with other boids

    :type: bool
    '''

    use_avoid_collision: bool = None
    ''' Avoid collision with deflector objects

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidRuleFight(BoidRule, bpy_struct):
    distance: float = None
    ''' Attack boids at max this distance

    :type: float
    '''

    flee_distance: float = None
    ''' Flee to this distance

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidRuleFollowLeader(BoidRule, bpy_struct):
    distance: float = None
    ''' Distance behind leader to follow

    :type: float
    '''

    object: 'Object' = None
    ''' Follow this object instead of a boid

    :type: 'Object'
    '''

    queue_count: int = None
    ''' How many boids in a line

    :type: int
    '''

    use_line: bool = None
    ''' Follow leader in a line

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoidRuleGoal(BoidRule, bpy_struct):
    object: 'Object' = None
    ''' Goal object

    :type: 'Object'
    '''

    use_predict: bool = None
    ''' Predict target movement

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ActionConstraint(Constraint, bpy_struct):
    ''' Map an action to the transform axes of a bone
    '''

    action: 'Action' = None
    ''' The constraining action

    :type: 'Action'
    '''

    eval_time: float = None
    ''' Interpolates between Action Start and End frames

    :type: float
    '''

    frame_end: int = None
    ''' Last frame of the Action to use

    :type: int
    '''

    frame_start: int = None
    ''' First frame of the Action to use

    :type: int
    '''

    max: float = None
    ''' Maximum value for target channel range

    :type: float
    '''

    min: float = None
    ''' Minimum value for target channel range

    :type: float
    '''

    mix_mode: typing.Union[int, str] = None
    ''' Specify how existing transformations and the action channels are combined * BEFORE_FULL Before Original (Full) -- Apply the action channels before the original transformation, as if applied to an imaginary parent in Full Inherit Scale mode. Will create shear when combining rotation and non-uniform scale. * BEFORE Before Original (Aligned) -- Apply the action channels before the original transformation, as if applied to an imaginary parent in Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels for rotation and scale. * BEFORE_SPLIT Before Original (Split Channels) -- Apply the action channels before the original transformation, handling location, rotation and scale separately. * AFTER_FULL After Original (Full) -- Apply the action channels after the original transformation, as if applied to an imaginary child in Full Inherit Scale mode. Will create shear when combining rotation and non-uniform scale. * AFTER After Original (Aligned) -- Apply the action channels after the original transformation, as if applied to an imaginary child in Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels for rotation and scale. * AFTER_SPLIT After Original (Split Channels) -- Apply the action channels after the original transformation, handling location, rotation and scale separately.

    :type: typing.Union[int, str]
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    transform_channel: typing.Union[int, str] = None
    ''' Transformation channel from the target that is used to key the Action

    :type: typing.Union[int, str]
    '''

    use_bone_object_action: bool = None
    ''' Bones only: apply the object's transformation channels of the action to the constrained bone, instead of bone's channels

    :type: bool
    '''

    use_eval_time: bool = None
    ''' Interpolate between Action Start and End frames, with the Evaluation Time slider instead of the Target object/bone

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArmatureConstraint(Constraint, bpy_struct):
    ''' Applies transformations done by the Armature modifier
    '''

    targets: typing.Union[typing.Dict[str, 'ConstraintTargetBone'], typing.
                          List['ConstraintTargetBone'], 'bpy_prop_collection',
                          'ArmatureConstraintTargets'] = None
    ''' Target Bones

    :type: typing.Union[typing.Dict[str, 'ConstraintTargetBone'], typing.List['ConstraintTargetBone'], 'bpy_prop_collection', 'ArmatureConstraintTargets']
    '''

    use_bone_envelopes: bool = None
    ''' Multiply weights by envelope for all bones, instead of acting like Vertex Group based blending. The specified weights are still used, and only the listed bones are considered

    :type: bool
    '''

    use_current_location: bool = None
    ''' Use the current bone location for envelopes and choosing B-Bone segments instead of rest position

    :type: bool
    '''

    use_deform_preserve_volume: bool = None
    ''' Deform rotation interpolation with quaternions

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CameraSolverConstraint(Constraint, bpy_struct):
    ''' Lock motion to the reconstructed camera movement
    '''

    clip: 'MovieClip' = None
    ''' Movie Clip to get tracking data from

    :type: 'MovieClip'
    '''

    use_active_clip: bool = None
    ''' Use active clip defined in scene

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ChildOfConstraint(Constraint, bpy_struct):
    ''' Create constraint-based parent-child relationship
    '''

    inverse_matrix: typing.List[float] = None
    ''' Transformation matrix to apply before

    :type: typing.List[float]
    '''

    set_inverse_pending: bool = None
    ''' Set to true to request recalculation of the inverse matrix

    :type: bool
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_location_x: bool = None
    ''' Use X Location of Parent

    :type: bool
    '''

    use_location_y: bool = None
    ''' Use Y Location of Parent

    :type: bool
    '''

    use_location_z: bool = None
    ''' Use Z Location of Parent

    :type: bool
    '''

    use_rotation_x: bool = None
    ''' Use X Rotation of Parent

    :type: bool
    '''

    use_rotation_y: bool = None
    ''' Use Y Rotation of Parent

    :type: bool
    '''

    use_rotation_z: bool = None
    ''' Use Z Rotation of Parent

    :type: bool
    '''

    use_scale_x: bool = None
    ''' Use X Scale of Parent

    :type: bool
    '''

    use_scale_y: bool = None
    ''' Use Y Scale of Parent

    :type: bool
    '''

    use_scale_z: bool = None
    ''' Use Z Scale of Parent

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ClampToConstraint(Constraint, bpy_struct):
    ''' Constrain an object's location to the nearest point along the target path
    '''

    main_axis: typing.Union[int, str] = None
    ''' Main axis of movement

    :type: typing.Union[int, str]
    '''

    target: 'Object' = None
    ''' Target Object (Curves only)

    :type: 'Object'
    '''

    use_cyclic: bool = None
    ''' Treat curve as cyclic curve (no clamping to curve bounding box)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CopyLocationConstraint(Constraint, bpy_struct):
    ''' Copy the location of the target
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    invert_x: bool = None
    ''' Invert the X location

    :type: bool
    '''

    invert_y: bool = None
    ''' Invert the Y location

    :type: bool
    '''

    invert_z: bool = None
    ''' Invert the Z location

    :type: bool
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    use_offset: bool = None
    ''' Add original location into copied location

    :type: bool
    '''

    use_x: bool = None
    ''' Copy the target's X location

    :type: bool
    '''

    use_y: bool = None
    ''' Copy the target's Y location

    :type: bool
    '''

    use_z: bool = None
    ''' Copy the target's Z location

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CopyRotationConstraint(Constraint, bpy_struct):
    ''' Copy the rotation of the target
    '''

    euler_order: typing.Union[int, str] = None
    ''' Explicitly specify the euler rotation order * AUTO Default -- Euler using the default rotation order. * XYZ XYZ Euler -- Euler using the XYZ rotation order. * XZY XZY Euler -- Euler using the XZY rotation order. * YXZ YXZ Euler -- Euler using the YXZ rotation order. * YZX YZX Euler -- Euler using the YZX rotation order. * ZXY ZXY Euler -- Euler using the ZXY rotation order. * ZYX ZYX Euler -- Euler using the ZYX rotation order.

    :type: typing.Union[int, str]
    '''

    invert_x: bool = None
    ''' Invert the X rotation

    :type: bool
    '''

    invert_y: bool = None
    ''' Invert the Y rotation

    :type: bool
    '''

    invert_z: bool = None
    ''' Invert the Z rotation

    :type: bool
    '''

    mix_mode: typing.Union[int, str] = None
    ''' Specify how the copied and existing rotations are combined * REPLACE Replace -- Replace the original rotation with copied. * ADD Add -- Add euler component values together. * BEFORE Before Original -- Apply copied rotation before original, as if the constraint target is a parent. * AFTER After Original -- Apply copied rotation after original, as if the constraint target is a child. * OFFSET Offset (Legacy) -- Combine rotations like the original Offset checkbox. Does not work well for multiple axis rotations.

    :type: typing.Union[int, str]
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_offset: bool = None
    ''' DEPRECATED: Add original rotation into copied rotation

    :type: bool
    '''

    use_x: bool = None
    ''' Copy the target's X rotation

    :type: bool
    '''

    use_y: bool = None
    ''' Copy the target's Y rotation

    :type: bool
    '''

    use_z: bool = None
    ''' Copy the target's Z rotation

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CopyScaleConstraint(Constraint, bpy_struct):
    ''' Copy the scale of the target
    '''

    power: float = None
    ''' Raise the target's scale to the specified power

    :type: float
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_add: bool = None
    ''' Use addition instead of multiplication to combine scale (2.7 compatibility)

    :type: bool
    '''

    use_make_uniform: bool = None
    ''' Redistribute the copied change in volume equally between the three axes of the owner

    :type: bool
    '''

    use_offset: bool = None
    ''' Combine original scale with copied scale

    :type: bool
    '''

    use_x: bool = None
    ''' Copy the target's X scale

    :type: bool
    '''

    use_y: bool = None
    ''' Copy the target's Y scale

    :type: bool
    '''

    use_z: bool = None
    ''' Copy the target's Z scale

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CopyTransformsConstraint(Constraint, bpy_struct):
    ''' Copy all the transforms of the target
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    mix_mode: typing.Union[int, str] = None
    ''' Specify how the copied and existing transformations are combined * REPLACE Replace -- Replace the original transformation with copied. * BEFORE_FULL Before Original (Full) -- Apply copied transformation before original, using simple matrix multiplication as if the constraint target is a parent in Full Inherit Scale mode. Will create shear when combining rotation and non-uniform scale. * BEFORE Before Original (Aligned) -- Apply copied transformation before original, as if the constraint target is a parent in Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels for rotation and scale. * BEFORE_SPLIT Before Original (Split Channels) -- Apply copied transformation before original, handling location, rotation and scale separately, similar to a sequence of three Copy constraints. * AFTER_FULL After Original (Full) -- Apply copied transformation after original, using simple matrix multiplication as if the constraint target is a child in Full Inherit Scale mode. Will create shear when combining rotation and non-uniform scale. * AFTER After Original (Aligned) -- Apply copied transformation after original, as if the constraint target is a child in Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels for rotation and scale. * AFTER_SPLIT After Original (Split Channels) -- Apply copied transformation after original, handling location, rotation and scale separately, similar to a sequence of three Copy constraints.

    :type: typing.Union[int, str]
    '''

    remove_target_shear: bool = None
    ''' Remove shear from the target transformation before combining

    :type: bool
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DampedTrackConstraint(Constraint, bpy_struct):
    ''' Point toward target by taking the shortest rotation path
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    track_axis: typing.Union[int, str] = None
    ''' Axis that points to the target object

    :type: typing.Union[int, str]
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloorConstraint(Constraint, bpy_struct):
    ''' Use the target object for location limitation
    '''

    floor_location: typing.Union[int, str] = None
    ''' Location of target that object will not pass through

    :type: typing.Union[int, str]
    '''

    offset: float = None
    ''' Offset of floor from object origin

    :type: float
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_rotation: bool = None
    ''' Use the target's rotation to determine floor

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FollowPathConstraint(Constraint, bpy_struct):
    ''' Lock motion to the target path
    '''

    forward_axis: typing.Union[int, str] = None
    ''' Axis that points forward along the path

    :type: typing.Union[int, str]
    '''

    offset: float = None
    ''' Offset from the position corresponding to the time frame

    :type: float
    '''

    offset_factor: float = None
    ''' Percentage value defining target position along length of curve

    :type: float
    '''

    target: 'Object' = None
    ''' Target Curve object

    :type: 'Object'
    '''

    up_axis: typing.Union[int, str] = None
    ''' Axis that points upward

    :type: typing.Union[int, str]
    '''

    use_curve_follow: bool = None
    ''' Object will follow the heading and banking of the curve

    :type: bool
    '''

    use_curve_radius: bool = None
    ''' Object is scaled by the curve radius

    :type: bool
    '''

    use_fixed_location: bool = None
    ''' Object will stay locked to a single point somewhere along the length of the curve regardless of time

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FollowTrackConstraint(Constraint, bpy_struct):
    ''' Lock motion to the target motion track
    '''

    camera: 'Object' = None
    ''' Camera to which motion is parented (if empty active scene camera is used)

    :type: 'Object'
    '''

    clip: 'MovieClip' = None
    ''' Movie Clip to get tracking data from

    :type: 'MovieClip'
    '''

    depth_object: 'Object' = None
    ''' Object used to define depth in camera space by projecting onto surface of this object

    :type: 'Object'
    '''

    frame_method: typing.Union[int, str] = None
    ''' How the footage fits in the camera frame

    :type: typing.Union[int, str]
    '''

    object: str = None
    ''' Movie tracking object to follow (if empty, camera object is used)

    :type: str
    '''

    track: str = None
    ''' Movie tracking track to follow

    :type: str
    '''

    use_3d_position: bool = None
    ''' Use 3D position of track to parent to

    :type: bool
    '''

    use_active_clip: bool = None
    ''' Use active clip defined in scene

    :type: bool
    '''

    use_undistorted_position: bool = None
    ''' Parent to undistorted position of 2D track

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class KinematicConstraint(Constraint, bpy_struct):
    ''' Inverse Kinematics
    '''

    chain_count: int = None
    ''' How many bones are included in the IK effect - 0 uses all bones

    :type: int
    '''

    distance: float = None
    ''' Radius of limiting sphere

    :type: float
    '''

    ik_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    iterations: int = None
    ''' Maximum number of solving iterations

    :type: int
    '''

    limit_mode: typing.Union[int, str] = None
    ''' Distances in relation to sphere of influence to allow * LIMITDIST_INSIDE Inside -- The object is constrained inside a virtual sphere around the target object, with a radius defined by the limit distance. * LIMITDIST_OUTSIDE Outside -- The object is constrained outside a virtual sphere around the target object, with a radius defined by the limit distance. * LIMITDIST_ONSURFACE On Surface -- The object is constrained on the surface of a virtual sphere around the target object, with a radius defined by the limit distance.

    :type: typing.Union[int, str]
    '''

    lock_location_x: bool = None
    ''' Constraint position along X axis

    :type: bool
    '''

    lock_location_y: bool = None
    ''' Constraint position along Y axis

    :type: bool
    '''

    lock_location_z: bool = None
    ''' Constraint position along Z axis

    :type: bool
    '''

    lock_rotation_x: bool = None
    ''' Constraint rotation along X axis

    :type: bool
    '''

    lock_rotation_y: bool = None
    ''' Constraint rotation along Y axis

    :type: bool
    '''

    lock_rotation_z: bool = None
    ''' Constraint rotation along Z axis

    :type: bool
    '''

    orient_weight: float = None
    ''' For Tree-IK: Weight of orientation control for this target

    :type: float
    '''

    pole_angle: float = None
    ''' Pole rotation offset

    :type: float
    '''

    pole_subtarget: str = None
    ''' 

    :type: str
    '''

    pole_target: 'Object' = None
    ''' Object for pole rotation

    :type: 'Object'
    '''

    reference_axis: typing.Union[int, str] = None
    ''' Constraint axis Lock options relative to Bone or Target reference

    :type: typing.Union[int, str]
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_location: bool = None
    ''' Chain follows position of target

    :type: bool
    '''

    use_rotation: bool = None
    ''' Chain follows rotation of target

    :type: bool
    '''

    use_stretch: bool = None
    ''' Enable IK Stretching

    :type: bool
    '''

    use_tail: bool = None
    ''' Include bone's tail as last element in chain

    :type: bool
    '''

    weight: float = None
    ''' For Tree-IK: Weight of position control for this target

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LimitDistanceConstraint(Constraint, bpy_struct):
    ''' Limit the distance from target object
    '''

    distance: float = None
    ''' Radius of limiting sphere

    :type: float
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    limit_mode: typing.Union[int, str] = None
    ''' Distances in relation to sphere of influence to allow * LIMITDIST_INSIDE Inside -- The object is constrained inside a virtual sphere around the target object, with a radius defined by the limit distance. * LIMITDIST_OUTSIDE Outside -- The object is constrained outside a virtual sphere around the target object, with a radius defined by the limit distance. * LIMITDIST_ONSURFACE On Surface -- The object is constrained on the surface of a virtual sphere around the target object, with a radius defined by the limit distance.

    :type: typing.Union[int, str]
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    use_transform_limit: bool = None
    ''' Transforms are affected by this constraint as well

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LimitLocationConstraint(Constraint, bpy_struct):
    ''' Limit the location of the constrained object
    '''

    max_x: float = None
    ''' Highest X value to allow

    :type: float
    '''

    max_y: float = None
    ''' Highest Y value to allow

    :type: float
    '''

    max_z: float = None
    ''' Highest Z value to allow

    :type: float
    '''

    min_x: float = None
    ''' Lowest X value to allow

    :type: float
    '''

    min_y: float = None
    ''' Lowest Y value to allow

    :type: float
    '''

    min_z: float = None
    ''' Lowest Z value to allow

    :type: float
    '''

    use_max_x: bool = None
    ''' Use the maximum X value

    :type: bool
    '''

    use_max_y: bool = None
    ''' Use the maximum Y value

    :type: bool
    '''

    use_max_z: bool = None
    ''' Use the maximum Z value

    :type: bool
    '''

    use_min_x: bool = None
    ''' Use the minimum X value

    :type: bool
    '''

    use_min_y: bool = None
    ''' Use the minimum Y value

    :type: bool
    '''

    use_min_z: bool = None
    ''' Use the minimum Z value

    :type: bool
    '''

    use_transform_limit: bool = None
    ''' Transform tools are affected by this constraint as well

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LimitRotationConstraint(Constraint, bpy_struct):
    ''' Limit the rotation of the constrained object
    '''

    euler_order: typing.Union[int, str] = None
    ''' Explicitly specify the euler rotation order * AUTO Default -- Euler using the default rotation order. * XYZ XYZ Euler -- Euler using the XYZ rotation order. * XZY XZY Euler -- Euler using the XZY rotation order. * YXZ YXZ Euler -- Euler using the YXZ rotation order. * YZX YZX Euler -- Euler using the YZX rotation order. * ZXY ZXY Euler -- Euler using the ZXY rotation order. * ZYX ZYX Euler -- Euler using the ZYX rotation order.

    :type: typing.Union[int, str]
    '''

    max_x: float = None
    ''' Highest X value to allow

    :type: float
    '''

    max_y: float = None
    ''' Highest Y value to allow

    :type: float
    '''

    max_z: float = None
    ''' Highest Z value to allow

    :type: float
    '''

    min_x: float = None
    ''' Lowest X value to allow

    :type: float
    '''

    min_y: float = None
    ''' Lowest Y value to allow

    :type: float
    '''

    min_z: float = None
    ''' Lowest Z value to allow

    :type: float
    '''

    use_limit_x: bool = None
    ''' Use the minimum X value

    :type: bool
    '''

    use_limit_y: bool = None
    ''' Use the minimum Y value

    :type: bool
    '''

    use_limit_z: bool = None
    ''' Use the minimum Z value

    :type: bool
    '''

    use_transform_limit: bool = None
    ''' Transform tools are affected by this constraint as well

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LimitScaleConstraint(Constraint, bpy_struct):
    ''' Limit the scaling of the constrained object
    '''

    max_x: float = None
    ''' Highest X value to allow

    :type: float
    '''

    max_y: float = None
    ''' Highest Y value to allow

    :type: float
    '''

    max_z: float = None
    ''' Highest Z value to allow

    :type: float
    '''

    min_x: float = None
    ''' Lowest X value to allow

    :type: float
    '''

    min_y: float = None
    ''' Lowest Y value to allow

    :type: float
    '''

    min_z: float = None
    ''' Lowest Z value to allow

    :type: float
    '''

    use_max_x: bool = None
    ''' Use the maximum X value

    :type: bool
    '''

    use_max_y: bool = None
    ''' Use the maximum Y value

    :type: bool
    '''

    use_max_z: bool = None
    ''' Use the maximum Z value

    :type: bool
    '''

    use_min_x: bool = None
    ''' Use the minimum X value

    :type: bool
    '''

    use_min_y: bool = None
    ''' Use the minimum Y value

    :type: bool
    '''

    use_min_z: bool = None
    ''' Use the minimum Z value

    :type: bool
    '''

    use_transform_limit: bool = None
    ''' Transform tools are affected by this constraint as well

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LockedTrackConstraint(Constraint, bpy_struct):
    ''' Point toward the target along the track axis, while locking the other axis
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    lock_axis: typing.Union[int, str] = None
    ''' Axis that points upward

    :type: typing.Union[int, str]
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    track_axis: typing.Union[int, str] = None
    ''' Axis that points to the target object

    :type: typing.Union[int, str]
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaintainVolumeConstraint(Constraint, bpy_struct):
    ''' Maintain a constant volume along a single scaling axis
    '''

    free_axis: typing.Union[int, str] = None
    ''' The free scaling axis of the object

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' The way the constraint treats original non-free axis scaling * STRICT Strict -- Volume is strictly preserved, overriding the scaling of non-free axes. * UNIFORM Uniform -- Volume is preserved when the object is scaled uniformly. Deviations from uniform scale on non-free axes are passed through. * SINGLE_AXIS Single Axis -- Volume is preserved when the object is scaled only on the free axis. Non-free axis scaling is passed through.

    :type: typing.Union[int, str]
    '''

    volume: float = None
    ''' Volume of the bone at rest

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ObjectSolverConstraint(Constraint, bpy_struct):
    ''' Lock motion to the reconstructed object movement
    '''

    camera: 'Object' = None
    ''' Camera to which motion is parented (if empty active scene camera is used)

    :type: 'Object'
    '''

    clip: 'MovieClip' = None
    ''' Movie Clip to get tracking data from

    :type: 'MovieClip'
    '''

    object: str = None
    ''' Movie tracking object to follow

    :type: str
    '''

    set_inverse_pending: bool = None
    ''' Set to true to request recalculation of the inverse matrix

    :type: bool
    '''

    use_active_clip: bool = None
    ''' Use active clip defined in scene

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PivotConstraint(Constraint, bpy_struct):
    ''' Rotate around a different point
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    offset: typing.List[float] = None
    ''' Offset of pivot from target (when set), or from owner's location (when Fixed Position is off), or the absolute pivot point

    :type: typing.List[float]
    '''

    rotation_range: typing.Union[int, str] = None
    ''' Rotation range on which pivoting should occur * ALWAYS_ACTIVE Always -- Use the pivot point in every rotation. * NX -X Rotation -- Use the pivot point in the negative rotation range around the X-axis. * NY -Y Rotation -- Use the pivot point in the negative rotation range around the Y-axis. * NZ -Z Rotation -- Use the pivot point in the negative rotation range around the Z-axis. * X X Rotation -- Use the pivot point in the positive rotation range around the X-axis. * Y Y Rotation -- Use the pivot point in the positive rotation range around the Y-axis. * Z Z Rotation -- Use the pivot point in the positive rotation range around the Z-axis.

    :type: typing.Union[int, str]
    '''

    subtarget: str = None
    ''' 

    :type: str
    '''

    target: 'Object' = None
    ''' Target Object, defining the position of the pivot when defined

    :type: 'Object'
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    use_relative_location: bool = None
    ''' Offset will be an absolute point in space instead of relative to the target

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PythonConstraint(Constraint, bpy_struct):
    ''' Use Python script for constraint evaluation
    '''

    has_script_error: bool = None
    ''' The linked Python script has thrown an error

    :type: bool
    '''

    target_count: int = None
    ''' Usually only 1 to 3 are needed

    :type: int
    '''

    targets: typing.Union[typing.Dict[str, 'ConstraintTarget'], typing.
                          List['ConstraintTarget'],
                          'bpy_prop_collection'] = None
    ''' Target Objects

    :type: typing.Union[typing.Dict[str, 'ConstraintTarget'], typing.List['ConstraintTarget'], 'bpy_prop_collection']
    '''

    text: 'Text' = None
    ''' The text object that contains the Python script

    :type: 'Text'
    '''

    use_targets: bool = None
    ''' Use the targets indicated in the constraint panel

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShrinkwrapConstraint(Constraint, bpy_struct):
    ''' Create constraint-based shrinkwrap relationship
    '''

    cull_face: typing.Union[int, str] = None
    ''' Stop vertices from projecting to a face on the target when facing towards/away * OFF Off -- No culling. * FRONT Front -- No projection when in front of the face. * BACK Back -- No projection when behind the face.

    :type: typing.Union[int, str]
    '''

    distance: float = None
    ''' Distance to Target

    :type: float
    '''

    project_axis: typing.Union[int, str] = None
    ''' Axis constrain to

    :type: typing.Union[int, str]
    '''

    project_axis_space: typing.Union[int, str] = None
    ''' Space for the projection axis * WORLD World Space -- The constraint is applied relative to the world coordinate system. * CUSTOM Custom Space -- The constraint is applied in local space of a custom object/bone/vertex group. * POSE Pose Space -- The constraint is applied in Pose Space, the object transformation is ignored. * LOCAL_WITH_PARENT Local With Parent -- The constraint is applied relative to the rest pose local coordinate system of the bone, thus including the parent-induced transformation. * LOCAL Local Space -- The constraint is applied relative to the local coordinate system of the object.

    :type: typing.Union[int, str]
    '''

    project_limit: float = None
    ''' Limit the distance used for projection (zero disables)

    :type: float
    '''

    shrinkwrap_type: typing.Union[int, str] = None
    ''' Select type of shrinkwrap algorithm for target position * NEAREST_SURFACE Nearest Surface Point -- Shrink the location to the nearest target surface. * PROJECT Project -- Shrink the location to the nearest target surface along a given axis. * NEAREST_VERTEX Nearest Vertex -- Shrink the location to the nearest target vertex. * TARGET_PROJECT Target Normal Project -- Shrink the location to the nearest target surface along the interpolated vertex normals of the target.

    :type: typing.Union[int, str]
    '''

    target: 'Object' = None
    ''' Target Mesh object

    :type: 'Object'
    '''

    track_axis: typing.Union[int, str] = None
    ''' Axis that is aligned to the normal

    :type: typing.Union[int, str]
    '''

    use_invert_cull: bool = None
    ''' When projecting in the opposite direction invert the face cull mode

    :type: bool
    '''

    use_project_opposite: bool = None
    ''' Project in both specified and opposite directions

    :type: bool
    '''

    use_track_normal: bool = None
    ''' Align the specified axis to the surface normal

    :type: bool
    '''

    wrap_mode: typing.Union[int, str] = None
    ''' Select how to constrain the object to the target surface * ON_SURFACE On Surface -- The point is constrained to the surface of the target object, with distance offset towards the original point location. * INSIDE Inside -- The point is constrained to be inside the target object. * OUTSIDE Outside -- The point is constrained to be outside the target object. * OUTSIDE_SURFACE Outside Surface -- The point is constrained to the surface of the target object, with distance offset always to the outside, towards or away from the original location. * ABOVE_SURFACE Above Surface -- The point is constrained to the surface of the target object, with distance offset applied exactly along the target normal.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SplineIKConstraint(Constraint, bpy_struct):
    ''' Align 'n' bones along a curve
    '''

    bulge: float = None
    ''' Factor between volume variation and stretching

    :type: float
    '''

    bulge_max: float = None
    ''' Maximum volume stretching factor

    :type: float
    '''

    bulge_min: float = None
    ''' Minimum volume stretching factor

    :type: float
    '''

    bulge_smooth: float = None
    ''' Strength of volume stretching clamping

    :type: float
    '''

    chain_count: int = None
    ''' How many bones are included in the chain

    :type: int
    '''

    joint_bindings: typing.List[float] = None
    ''' (EXPERIENCED USERS ONLY) The relative positions of the joints along the chain, as percentages

    :type: typing.List[float]
    '''

    target: 'Object' = None
    ''' Curve that controls this relationship

    :type: 'Object'
    '''

    use_bulge_max: bool = None
    ''' Use upper limit for volume variation

    :type: bool
    '''

    use_bulge_min: bool = None
    ''' Use lower limit for volume variation

    :type: bool
    '''

    use_chain_offset: bool = None
    ''' Offset the entire chain relative to the root joint

    :type: bool
    '''

    use_curve_radius: bool = None
    ''' Average radius of the endpoints is used to tweak the X and Z Scaling of the bones, on top of XZ Scale mode

    :type: bool
    '''

    use_even_divisions: bool = None
    ''' Ignore the relative lengths of the bones when fitting to the curve

    :type: bool
    '''

    use_original_scale: bool = None
    ''' Apply volume preservation over the original scaling

    :type: bool
    '''

    xz_scale_mode: typing.Union[int, str] = None
    ''' Method used for determining the scaling of the X and Z axes of the bones * NONE None -- Don't scale the X and Z axes (Default). * BONE_ORIGINAL Bone Original -- Use the original scaling of the bones. * INVERSE_PRESERVE Inverse Scale -- Scale of the X and Z axes is the inverse of the Y-Scale. * VOLUME_PRESERVE Volume Preservation -- Scale of the X and Z axes are adjusted to preserve the volume of the bones.

    :type: typing.Union[int, str]
    '''

    y_scale_mode: typing.Union[int, str] = None
    ''' Method used for determining the scaling of the Y axis of the bones, on top of the shape and scaling of the curve itself * NONE None -- Don't scale in the Y axis. * FIT_CURVE Fit Curve -- Scale the bones to fit the entire length of the curve. * BONE_ORIGINAL Bone Original -- Use the original Y scale of the bone.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class StretchToConstraint(Constraint, bpy_struct):
    ''' Stretch to meet the target object
    '''

    bulge: float = None
    ''' Factor between volume variation and stretching

    :type: float
    '''

    bulge_max: float = None
    ''' Maximum volume stretching factor

    :type: float
    '''

    bulge_min: float = None
    ''' Minimum volume stretching factor

    :type: float
    '''

    bulge_smooth: float = None
    ''' Strength of volume stretching clamping

    :type: float
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    keep_axis: typing.Union[int, str] = None
    ''' The rotation type and axis order to use * PLANE_X XZ -- Rotate around local X, then Z. * PLANE_Z ZX -- Rotate around local Z, then X. * SWING_Y Swing -- Use the smallest single axis rotation, similar to Damped Track.

    :type: typing.Union[int, str]
    '''

    rest_length: float = None
    ''' Length at rest position

    :type: float
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    use_bulge_max: bool = None
    ''' Use upper limit for volume variation

    :type: bool
    '''

    use_bulge_min: bool = None
    ''' Use lower limit for volume variation

    :type: bool
    '''

    volume: typing.Union[int, str] = None
    ''' Maintain the object's volume as it stretches

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TrackToConstraint(Constraint, bpy_struct):
    ''' Aim the constrained object toward the target
    '''

    head_tail: float = None
    ''' Target along length of bone: Head is 0, Tail is 1

    :type: float
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    track_axis: typing.Union[int, str] = None
    ''' Axis that points to the target object

    :type: typing.Union[int, str]
    '''

    up_axis: typing.Union[int, str] = None
    ''' Axis that points upward

    :type: typing.Union[int, str]
    '''

    use_bbone_shape: bool = None
    ''' Follow shape of B-Bone segments when calculating Head/Tail position

    :type: bool
    '''

    use_target_z: bool = None
    ''' Target's Z axis, not World Z axis, will constraint the Up direction

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TransformCacheConstraint(Constraint, bpy_struct):
    ''' Look up transformation from an external file
    '''

    cache_file: 'CacheFile' = None
    ''' 

    :type: 'CacheFile'
    '''

    object_path: str = None
    ''' Path to the object in the Alembic archive used to lookup the transform matrix

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TransformConstraint(Constraint, bpy_struct):
    ''' Map transformations of the target to the object
    '''

    from_max_x: float = None
    ''' Top range of X axis source motion

    :type: float
    '''

    from_max_x_rot: float = None
    ''' Top range of X axis source motion

    :type: float
    '''

    from_max_x_scale: float = None
    ''' Top range of X axis source motion

    :type: float
    '''

    from_max_y: float = None
    ''' Top range of Y axis source motion

    :type: float
    '''

    from_max_y_rot: float = None
    ''' Top range of Y axis source motion

    :type: float
    '''

    from_max_y_scale: float = None
    ''' Top range of Y axis source motion

    :type: float
    '''

    from_max_z: float = None
    ''' Top range of Z axis source motion

    :type: float
    '''

    from_max_z_rot: float = None
    ''' Top range of Z axis source motion

    :type: float
    '''

    from_max_z_scale: float = None
    ''' Top range of Z axis source motion

    :type: float
    '''

    from_min_x: float = None
    ''' Bottom range of X axis source motion

    :type: float
    '''

    from_min_x_rot: float = None
    ''' Bottom range of X axis source motion

    :type: float
    '''

    from_min_x_scale: float = None
    ''' Bottom range of X axis source motion

    :type: float
    '''

    from_min_y: float = None
    ''' Bottom range of Y axis source motion

    :type: float
    '''

    from_min_y_rot: float = None
    ''' Bottom range of Y axis source motion

    :type: float
    '''

    from_min_y_scale: float = None
    ''' Bottom range of Y axis source motion

    :type: float
    '''

    from_min_z: float = None
    ''' Bottom range of Z axis source motion

    :type: float
    '''

    from_min_z_rot: float = None
    ''' Bottom range of Z axis source motion

    :type: float
    '''

    from_min_z_scale: float = None
    ''' Bottom range of Z axis source motion

    :type: float
    '''

    from_rotation_mode: typing.Union[int, str] = None
    ''' Specify the type of rotation channels to use * AUTO Auto Euler -- Euler using the rotation order of the target. * XYZ XYZ Euler -- Euler using the XYZ rotation order. * XZY XZY Euler -- Euler using the XZY rotation order. * YXZ YXZ Euler -- Euler using the YXZ rotation order. * YZX YZX Euler -- Euler using the YZX rotation order. * ZXY ZXY Euler -- Euler using the ZXY rotation order. * ZYX ZYX Euler -- Euler using the ZYX rotation order. * QUATERNION Quaternion -- Quaternion rotation. * SWING_TWIST_X Swing and X Twist -- Decompose into a swing rotation to aim the X axis, followed by twist around it. * SWING_TWIST_Y Swing and Y Twist -- Decompose into a swing rotation to aim the Y axis, followed by twist around it. * SWING_TWIST_Z Swing and Z Twist -- Decompose into a swing rotation to aim the Z axis, followed by twist around it.

    :type: typing.Union[int, str]
    '''

    map_from: typing.Union[int, str] = None
    ''' The transformation type to use from the target

    :type: typing.Union[int, str]
    '''

    map_to: typing.Union[int, str] = None
    ''' The transformation type to affect of the constrained object

    :type: typing.Union[int, str]
    '''

    map_to_x_from: typing.Union[int, str] = None
    ''' The source axis constrained object's X axis uses

    :type: typing.Union[int, str]
    '''

    map_to_y_from: typing.Union[int, str] = None
    ''' The source axis constrained object's Y axis uses

    :type: typing.Union[int, str]
    '''

    map_to_z_from: typing.Union[int, str] = None
    ''' The source axis constrained object's Z axis uses

    :type: typing.Union[int, str]
    '''

    mix_mode: typing.Union[int, str] = None
    ''' Specify how to combine the new location with original * REPLACE Replace -- Replace component values. * ADD Add -- Add component values together.

    :type: typing.Union[int, str]
    '''

    mix_mode_rot: typing.Union[int, str] = None
    ''' Specify how to combine the new rotation with original * REPLACE Replace -- Replace component values. * ADD Add -- Add component values together. * BEFORE Before Original -- Apply new rotation before original, as if it was on a parent. * AFTER After Original -- Apply new rotation after original, as if it was on a child.

    :type: typing.Union[int, str]
    '''

    mix_mode_scale: typing.Union[int, str] = None
    ''' Specify how to combine the new scale with original * REPLACE Replace -- Replace component values. * MULTIPLY Multiply -- Multiply component values together.

    :type: typing.Union[int, str]
    '''

    subtarget: str = None
    ''' Armature bone, mesh or lattice vertex group, ...

    :type: str
    '''

    target: 'Object' = None
    ''' Target object

    :type: 'Object'
    '''

    to_euler_order: typing.Union[int, str] = None
    ''' Explicitly specify the output euler rotation order * AUTO Default -- Euler using the default rotation order. * XYZ XYZ Euler -- Euler using the XYZ rotation order. * XZY XZY Euler -- Euler using the XZY rotation order. * YXZ YXZ Euler -- Euler using the YXZ rotation order. * YZX YZX Euler -- Euler using the YZX rotation order. * ZXY ZXY Euler -- Euler using the ZXY rotation order. * ZYX ZYX Euler -- Euler using the ZYX rotation order.

    :type: typing.Union[int, str]
    '''

    to_max_x: float = None
    ''' Top range of X axis destination motion

    :type: float
    '''

    to_max_x_rot: float = None
    ''' Top range of X axis destination motion

    :type: float
    '''

    to_max_x_scale: float = None
    ''' Top range of X axis destination motion

    :type: float
    '''

    to_max_y: float = None
    ''' Top range of Y axis destination motion

    :type: float
    '''

    to_max_y_rot: float = None
    ''' Top range of Y axis destination motion

    :type: float
    '''

    to_max_y_scale: float = None
    ''' Top range of Y axis destination motion

    :type: float
    '''

    to_max_z: float = None
    ''' Top range of Z axis destination motion

    :type: float
    '''

    to_max_z_rot: float = None
    ''' Top range of Z axis destination motion

    :type: float
    '''

    to_max_z_scale: float = None
    ''' Top range of Z axis destination motion

    :type: float
    '''

    to_min_x: float = None
    ''' Bottom range of X axis destination motion

    :type: float
    '''

    to_min_x_rot: float = None
    ''' Bottom range of X axis destination motion

    :type: float
    '''

    to_min_x_scale: float = None
    ''' Bottom range of X axis destination motion

    :type: float
    '''

    to_min_y: float = None
    ''' Bottom range of Y axis destination motion

    :type: float
    '''

    to_min_y_rot: float = None
    ''' Bottom range of Y axis destination motion

    :type: float
    '''

    to_min_y_scale: float = None
    ''' Bottom range of Y axis destination motion

    :type: float
    '''

    to_min_z: float = None
    ''' Bottom range of Z axis destination motion

    :type: float
    '''

    to_min_z_rot: float = None
    ''' Bottom range of Z axis destination motion

    :type: float
    '''

    to_min_z_scale: float = None
    ''' Bottom range of Z axis destination motion

    :type: float
    '''

    use_motion_extrapolate: bool = None
    ''' Extrapolate ranges

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierCycles(FModifier, bpy_struct):
    ''' Repeat the values of the modified F-Curve
    '''

    cycles_after: int = None
    ''' Maximum number of cycles to allow after last keyframe (0 = infinite)

    :type: int
    '''

    cycles_before: int = None
    ''' Maximum number of cycles to allow before first keyframe (0 = infinite)

    :type: int
    '''

    mode_after: typing.Union[int, str] = None
    ''' Cycling mode to use after last keyframe * NONE No Cycles -- Don't do anything. * REPEAT Repeat Motion -- Repeat keyframe range as-is. * REPEAT_OFFSET Repeat with Offset -- Repeat keyframe range, but with offset based on gradient between start and end values. * MIRROR Repeat Mirrored -- Alternate between forward and reverse playback of keyframe range.

    :type: typing.Union[int, str]
    '''

    mode_before: typing.Union[int, str] = None
    ''' Cycling mode to use before first keyframe * NONE No Cycles -- Don't do anything. * REPEAT Repeat Motion -- Repeat keyframe range as-is. * REPEAT_OFFSET Repeat with Offset -- Repeat keyframe range, but with offset based on gradient between start and end values. * MIRROR Repeat Mirrored -- Alternate between forward and reverse playback of keyframe range.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierEnvelope(FModifier, bpy_struct):
    ''' Scale the values of the modified F-Curve
    '''

    control_points: typing.Union[
        typing.Dict[str, 'FModifierEnvelopeControlPoint'], typing.
        List['FModifierEnvelopeControlPoint'], 'bpy_prop_collection',
        'FModifierEnvelopeControlPoints'] = None
    ''' Control points defining the shape of the envelope

    :type: typing.Union[typing.Dict[str, 'FModifierEnvelopeControlPoint'], typing.List['FModifierEnvelopeControlPoint'], 'bpy_prop_collection', 'FModifierEnvelopeControlPoints']
    '''

    default_max: float = None
    ''' Upper distance from Reference Value for 1:1 default influence

    :type: float
    '''

    default_min: float = None
    ''' Lower distance from Reference Value for 1:1 default influence

    :type: float
    '''

    reference_value: float = None
    ''' Value that envelope's influence is centered around / based on

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierFunctionGenerator(FModifier, bpy_struct):
    ''' Generate values using a built-in function
    '''

    amplitude: float = None
    ''' Scale factor determining the maximum/minimum values

    :type: float
    '''

    function_type: typing.Union[int, str] = None
    ''' Type of built-in function to use * SIN Sine. * COS Cosine. * TAN Tangent. * SQRT Square Root. * LN Natural Logarithm. * SINC Normalized Sine -- sin(x) / x.

    :type: typing.Union[int, str]
    '''

    phase_multiplier: float = None
    ''' Scale factor determining the 'speed' of the function

    :type: float
    '''

    phase_offset: float = None
    ''' Constant factor to offset time by for function

    :type: float
    '''

    use_additive: bool = None
    ''' Values generated by this modifier are applied on top of the existing values instead of overwriting them

    :type: bool
    '''

    value_offset: float = None
    ''' Constant factor to offset values by

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierGenerator(FModifier, bpy_struct):
    ''' Deterministically generate values for the modified F-Curve
    '''

    coefficients: typing.List[float] = None
    ''' Coefficients for 'x' (starting from lowest power of x^0)

    :type: typing.List[float]
    '''

    mode: typing.Union[int, str] = None
    ''' Type of generator to use

    :type: typing.Union[int, str]
    '''

    poly_order: int = None
    ''' The highest power of 'x' for this polynomial (number of coefficients - 1)

    :type: int
    '''

    use_additive: bool = None
    ''' Values generated by this modifier are applied on top of the existing values instead of overwriting them

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierLimits(FModifier, bpy_struct):
    ''' Limit the time/value ranges of the modified F-Curve
    '''

    max_x: float = None
    ''' Highest X value to allow

    :type: float
    '''

    max_y: float = None
    ''' Highest Y value to allow

    :type: float
    '''

    min_x: float = None
    ''' Lowest X value to allow

    :type: float
    '''

    min_y: float = None
    ''' Lowest Y value to allow

    :type: float
    '''

    use_max_x: bool = None
    ''' Use the maximum X value

    :type: bool
    '''

    use_max_y: bool = None
    ''' Use the maximum Y value

    :type: bool
    '''

    use_min_x: bool = None
    ''' Use the minimum X value

    :type: bool
    '''

    use_min_y: bool = None
    ''' Use the minimum Y value

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierNoise(FModifier, bpy_struct):
    ''' Give randomness to the modified F-Curve
    '''

    blend_type: typing.Union[int, str] = None
    ''' Method of modifying the existing F-Curve

    :type: typing.Union[int, str]
    '''

    depth: int = None
    ''' Amount of fine level detail present in the noise

    :type: int
    '''

    offset: float = None
    ''' Time offset for the noise effect

    :type: float
    '''

    phase: float = None
    ''' A random seed for the noise effect

    :type: float
    '''

    scale: float = None
    ''' Scaling (in time) of the noise

    :type: float
    '''

    strength: float = None
    ''' Amplitude of the noise - the amount that it modifies the underlying curve

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierPython(FModifier, bpy_struct):
    ''' Perform user-defined operation on the modified F-Curve
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FModifierStepped(FModifier, bpy_struct):
    ''' Hold each interpolated value from the F-Curve for several frames without changing the timing
    '''

    frame_end: float = None
    ''' Frame that modifier's influence ends (if applicable)

    :type: float
    '''

    frame_offset: float = None
    ''' Reference number of frames before frames get held (use to get hold for '1-3' vs '5-7' holding patterns)

    :type: float
    '''

    frame_start: float = None
    ''' Frame that modifier's influence starts (if applicable)

    :type: float
    '''

    frame_step: float = None
    ''' Number of frames to hold each value

    :type: float
    '''

    use_frame_end: bool = None
    ''' Restrict modifier to only act before its 'end' frame

    :type: bool
    '''

    use_frame_start: bool = None
    ''' Restrict modifier to only act after its 'start' frame

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FileAssetSelectParams(FileSelectParams, bpy_struct):
    ''' Settings for the file selection in Asset Browser mode
    '''

    asset_library_ref: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    catalog_id: str = None
    ''' The UUID of the catalog shown in the browser

    :type: str
    '''

    filter_asset_id: 'FileAssetSelectIDFilter' = None
    ''' Which asset types to show/hide, when browsing an asset library

    :type: 'FileAssetSelectIDFilter'
    '''

    import_type: typing.Union[int, str] = None
    ''' Determine how the asset will be imported * LINK Link -- Import the assets as linked data-block. * APPEND Append -- Import the assets as copied data-block, with no link to the original asset data-block. * APPEND_REUSE Append (Reuse Data) -- Import the assets as copied data-block while avoiding multiple copies of nested, typically heavy data. For example the textures of a material asset, or the mesh of an object asset, don't have to be copied every time this asset is imported. The instances of the asset share the data instead.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArmatureGpencilModifier(GpencilModifier, bpy_struct):
    ''' Change stroke using armature to deform modifier
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    object: 'Object' = None
    ''' Armature object to deform with

    :type: 'Object'
    '''

    use_bone_envelopes: bool = None
    ''' Bind Bone envelopes to armature modifier

    :type: bool
    '''

    use_deform_preserve_volume: bool = None
    ''' Deform rotation interpolation with quaternions

    :type: bool
    '''

    use_vertex_groups: bool = None
    ''' Bind vertex groups to armature modifier

    :type: bool
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArrayGpencilModifier(GpencilModifier, bpy_struct):
    ''' Create grid of duplicate instances
    '''

    constant_offset: typing.List[float] = None
    ''' Value for the distance between items

    :type: typing.List[float]
    '''

    count: int = None
    ''' Number of items

    :type: int
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    offset_object: 'Object' = None
    ''' Use the location and rotation of another object to determine the distance and rotational change between arrayed items

    :type: 'Object'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    random_offset: typing.List[float] = None
    ''' Value for changes in location

    :type: typing.List[float]
    '''

    random_rotation: typing.List[float] = None
    ''' Value for changes in rotation

    :type: typing.List[float]
    '''

    random_scale: typing.List[float] = None
    ''' Value for changes in scale

    :type: typing.List[float]
    '''

    relative_offset: typing.List[float] = None
    ''' The size of the geometry will determine the distance between arrayed items

    :type: typing.List[float]
    '''

    replace_material: int = None
    ''' Index of the material used for generated strokes (0 keep original material)

    :type: int
    '''

    seed: int = None
    ''' Random seed

    :type: int
    '''

    use_constant_offset: bool = None
    ''' Enable offset

    :type: bool
    '''

    use_object_offset: bool = None
    ''' Enable object offset

    :type: bool
    '''

    use_relative_offset: bool = None
    ''' Enable shift

    :type: bool
    '''

    use_uniform_random_scale: bool = None
    ''' Use the same random seed for each scale axis for a uniform scale

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BuildGpencilModifier(GpencilModifier, bpy_struct):
    ''' Animate strokes appearing and disappearing
    '''

    concurrent_time_alignment: typing.Union[int, str] = None
    ''' When should strokes start to appear/disappear * START Align Start -- All strokes start at same time (i.e. short strokes finish earlier). * END Align End -- All strokes end at same time (i.e. short strokes start later).

    :type: typing.Union[int, str]
    '''

    frame_end: float = None
    ''' End Frame (when Restrict Frame Range is enabled)

    :type: float
    '''

    frame_start: float = None
    ''' Start Frame (when Restrict Frame Range is enabled)

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    length: float = None
    ''' Maximum number of frames that the build effect can run for (unless another GP keyframe occurs before this time has elapsed)

    :type: float
    '''

    mode: typing.Union[int, str] = None
    ''' How many strokes are being animated at a time * SEQUENTIAL Sequential -- Strokes appear/disappear one after the other, but only a single one changes at a time. * CONCURRENT Concurrent -- Multiple strokes appear/disappear at once.

    :type: typing.Union[int, str]
    '''

    percentage_factor: float = None
    ''' Defines how much of the stroke is visible

    :type: float
    '''

    start_delay: float = None
    ''' Number of frames after each GP keyframe before the modifier has any effect

    :type: float
    '''

    transition: typing.Union[int, str] = None
    ''' How are strokes animated (i.e. are they appearing or disappearing) * GROW Grow -- Show points in the order they occur in each stroke (e.g. for animating lines being drawn). * SHRINK Shrink -- Hide points from the end of each stroke to the start (e.g. for animating lines being erased). * FADE Fade -- Hide points in the order they occur in each stroke (e.g. for animating ink fading or vanishing after getting drawn).

    :type: typing.Union[int, str]
    '''

    use_percentage: bool = None
    ''' Use a percentage factor to determine the visible points

    :type: bool
    '''

    use_restrict_frame_range: bool = None
    ''' Only modify strokes during the specified frame range

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorGpencilModifier(GpencilModifier, bpy_struct):
    ''' Change Hue/Saturation modifier
    '''

    curve: 'CurveMapping' = None
    ''' Custom curve to apply effect

    :type: 'CurveMapping'
    '''

    hue: float = None
    ''' Color Hue

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    modify_color: typing.Union[int, str] = None
    ''' Set what colors of the stroke are affected * BOTH Stroke & Fill -- Modify fill and stroke colors. * STROKE Stroke -- Modify stroke color only. * FILL Fill -- Modify fill color only.

    :type: typing.Union[int, str]
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    saturation: float = None
    ''' Color Saturation

    :type: float
    '''

    use_custom_curve: bool = None
    ''' Use a custom curve to define color effect along the strokes

    :type: bool
    '''

    value: float = None
    ''' Color Value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DashGpencilModifierData(GpencilModifier, bpy_struct):
    ''' Create dot-dash effect for strokes
    '''

    dash_offset: int = None
    ''' Offset into each stroke before the beginning of the dashed segment generation

    :type: int
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    segment_active_index: int = None
    ''' Active index in the segment list

    :type: int
    '''

    segments: typing.Union[
        typing.Dict[str, 'DashGpencilModifierSegment'], typing.
        List['DashGpencilModifierSegment'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'DashGpencilModifierSegment'], typing.List['DashGpencilModifierSegment'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class HookGpencilModifier(GpencilModifier, bpy_struct):
    ''' Hook modifier to modify the location of stroke points
    '''

    center: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    falloff_curve: 'CurveMapping' = None
    ''' Custom light falloff curve

    :type: 'CurveMapping'
    '''

    falloff_radius: float = None
    ''' If not zero, the distance from the hook where influence ends

    :type: float
    '''

    falloff_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    matrix_inverse: typing.List[float] = None
    ''' Reverse the transformation between this object and its target

    :type: typing.List[float]
    '''

    object: 'Object' = None
    ''' Parent Object for hook, also recalculates and clears offset

    :type: 'Object'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    strength: float = None
    ''' Relative force of the hook

    :type: float
    '''

    subtarget: str = None
    ''' Name of Parent Bone for hook (if applicable), also recalculates and clears offset

    :type: str
    '''

    use_falloff_uniform: bool = None
    ''' Compensate for non-uniform object scale

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LatticeGpencilModifier(GpencilModifier, bpy_struct):
    ''' Change stroke using lattice to deform modifier
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    object: 'Object' = None
    ''' Lattice object to deform with

    :type: 'Object'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    strength: float = None
    ''' Strength of modifier effect

    :type: float
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LengthGpencilModifier(GpencilModifier, bpy_struct):
    ''' Stretch or shrink strokes
    '''

    end_factor: float = None
    ''' Added length to the end of each stroke relative to its length

    :type: float
    '''

    end_length: float = None
    ''' Absolute added length to the end of each stroke

    :type: float
    '''

    invert_curvature: bool = None
    ''' Invert the curvature of the stroke's extension

    :type: bool
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    max_angle: float = None
    ''' Ignore points on the stroke that deviate from their neighbors by more than this angle when determining the extrapolation shape

    :type: float
    '''

    mode: typing.Union[int, str] = None
    ''' Mode to define length * RELATIVE Relative -- Length in ratio to the stroke's length. * ABSOLUTE Absolute -- Length in geometry space.

    :type: typing.Union[int, str]
    '''

    overshoot_factor: float = None
    ''' Defines what portion of the stroke is used for the calculation of the extension

    :type: float
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    point_density: float = None
    ''' Multiplied by Start/End for the total added point count

    :type: float
    '''

    random_end_factor: float = None
    ''' Size of random length added to the end of each stroke

    :type: float
    '''

    random_offset: float = None
    ''' Smoothly offset each stroke's random value

    :type: float
    '''

    random_start_factor: float = None
    ''' Size of random length added to the start of each stroke

    :type: float
    '''

    seed: int = None
    ''' Random seed

    :type: int
    '''

    segment_influence: float = None
    ''' Factor to determine how much the length of the individual segments should influence the final computed curvature. Higher factors makes small segments influence the overall curvature less

    :type: float
    '''

    start_factor: float = None
    ''' Added length to the start of each stroke relative to its length

    :type: float
    '''

    start_length: float = None
    ''' Absolute added length to the start of each stroke

    :type: float
    '''

    step: int = None
    ''' Number of frames before recalculate random values again

    :type: int
    '''

    use_curvature: bool = None
    ''' Follow the curvature of the stroke

    :type: bool
    '''

    use_random: bool = None
    ''' Use random values over time

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineartGpencilModifier(GpencilModifier, bpy_struct):
    ''' Generate line art strokes from selected source
    '''

    chaining_image_threshold: float = None
    ''' Segments with an image distance smaller than this will be chained together

    :type: float
    '''

    crease_threshold: float = None
    ''' Angles smaller than this will be treated as creases

    :type: float
    '''

    invert_source_vertex_group: bool = None
    ''' Invert source vertex group values

    :type: bool
    '''

    is_baked: bool = None
    ''' This modifier has baked data

    :type: bool
    '''

    level_end: int = None
    ''' Maximum number of occlusions for the generated strokes

    :type: int
    '''

    level_start: int = None
    ''' Minimum number of occlusions for the generated strokes

    :type: int
    '''

    opacity: float = None
    ''' The strength value for the generate strokes

    :type: float
    '''

    overscan: float = None
    ''' A margin to prevent strokes from ending abruptly at the edge of the image

    :type: float
    '''

    smooth_tolerance: float = None
    ''' Strength of smoothing applied on jagged chains

    :type: float
    '''

    source_camera: 'Object' = None
    ''' Use specified camera object for generating line art

    :type: 'Object'
    '''

    source_collection: 'Collection' = None
    ''' Generate strokes from the objects in this collection

    :type: 'Collection'
    '''

    source_object: 'Object' = None
    ''' Generate strokes from this object

    :type: 'Object'
    '''

    source_type: typing.Union[int, str] = None
    ''' Line art stroke source type

    :type: typing.Union[int, str]
    '''

    source_vertex_group: str = None
    ''' Match the beginning of vertex group names from mesh objects, match all when left empty

    :type: str
    '''

    split_angle: float = None
    ''' Angle in screen space below which a stroke is split in two

    :type: float
    '''

    stroke_depth_offset: float = None
    ''' Move strokes slightly towards the camera to avoid clipping while preserve depth for the viewport

    :type: float
    '''

    target_layer: str = None
    ''' Grease Pencil layer assigned to the generated strokes

    :type: str
    '''

    target_material: 'Material' = None
    ''' Grease Pencil material assigned to the generated strokes

    :type: 'Material'
    '''

    thickness: int = None
    ''' The thickness for the generated strokes

    :type: int
    '''

    use_cache: bool = None
    ''' Use cached scene data from the first line art modifier in the stack. Certain settings will be unavailable

    :type: bool
    '''

    use_clip_plane_boundaries: bool = None
    ''' Allow lines generated by the near/far clipping plane to be shown

    :type: bool
    '''

    use_contour: bool = None
    ''' Generate strokes from contours lines

    :type: bool
    '''

    use_crease: bool = None
    ''' Generate strokes from creased edges

    :type: bool
    '''

    use_crease_on_sharp: bool = None
    ''' Allow crease to show on sharp edges

    :type: bool
    '''

    use_crease_on_smooth: bool = None
    ''' Allow crease edges to show inside smooth surfaces

    :type: bool
    '''

    use_custom_camera: bool = None
    ''' Use custom camera instead of the active camera

    :type: bool
    '''

    use_edge_mark: bool = None
    ''' Generate strokes from freestyle marked edges

    :type: bool
    '''

    use_edge_overlap: bool = None
    ''' Allow edges in the same location (i.e. from edge split) to show properly. May run slower

    :type: bool
    '''

    use_face_mark: bool = None
    ''' Filter feature lines using freestyle face marks

    :type: bool
    '''

    use_face_mark_boundaries: bool = None
    ''' Filter feature lines based on face mark boundaries

    :type: bool
    '''

    use_face_mark_invert: bool = None
    ''' Invert face mark filtering

    :type: bool
    '''

    use_fuzzy_all: bool = None
    ''' Treat all lines as the same line type so they can be chained together

    :type: bool
    '''

    use_fuzzy_intersections: bool = None
    ''' Treat intersection and contour lines as if they were the same type so they can be chained together

    :type: bool
    '''

    use_geometry_space_chain: bool = None
    ''' Use geometry distance for chaining instead of image space

    :type: bool
    '''

    use_image_boundary_trimming: bool = None
    ''' Trim all edges right at the boundary of image(including overscan region)

    :type: bool
    '''

    use_intersection: bool = None
    ''' Generate strokes from intersections

    :type: bool
    '''

    use_intersection_mask: typing.List[bool] = None
    ''' Mask bits to match from Collection Line Art settings

    :type: typing.List[bool]
    '''

    use_intersection_match: bool = None
    ''' Require matching all intersection masks instead of just one

    :type: bool
    '''

    use_loose: bool = None
    ''' Generate strokes from loose edges

    :type: bool
    '''

    use_loose_as_contour: bool = None
    ''' Loose edges will have contour type

    :type: bool
    '''

    use_loose_edge_chain: bool = None
    ''' Allow loose edges to be chained together

    :type: bool
    '''

    use_material: bool = None
    ''' Generate strokes from borders between materials

    :type: bool
    '''

    use_material_mask: bool = None
    ''' Use material masks to filter out occluded strokes

    :type: bool
    '''

    use_material_mask_bits: typing.List[bool] = None
    ''' Mask bits to match from Material Line Art settings

    :type: typing.List[bool]
    '''

    use_material_mask_match: bool = None
    ''' Require matching all material masks instead of just one

    :type: bool
    '''

    use_multiple_levels: bool = None
    ''' Generate strokes from a range of occlusion levels

    :type: bool
    '''

    use_object_instances: bool = None
    ''' Support particle objects and face/vertex instances to show in line art

    :type: bool
    '''

    use_offset_towards_custom_camera: bool = None
    ''' Offset strokes towards selected camera instead of the active camera

    :type: bool
    '''

    use_output_vertex_group_match_by_name: bool = None
    ''' Match output vertex group based on name

    :type: bool
    '''

    use_overlap_edge_type_support: bool = None
    ''' Allow an edge to have multiple overlapping types. This will create a separate stroke for each overlapping type

    :type: bool
    '''

    use_remove_doubles: bool = None
    ''' Remove doubles from the source geometry before generating stokes

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for selected strokes

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MirrorGpencilModifier(GpencilModifier, bpy_struct):
    ''' Create mirroring strokes
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    object: 'Object' = None
    ''' Object used as center

    :type: 'Object'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    use_axis_x: bool = None
    ''' Mirror the X axis

    :type: bool
    '''

    use_axis_y: bool = None
    ''' Mirror the Y axis

    :type: bool
    '''

    use_axis_z: bool = None
    ''' Mirror the Z axis

    :type: bool
    '''

    use_clip: bool = None
    ''' Clip points

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MultiplyGpencilModifier(GpencilModifier, bpy_struct):
    ''' Generate multiple strokes from one stroke
    '''

    distance: float = None
    ''' Distance of duplications

    :type: float
    '''

    duplicates: int = None
    ''' How many copies of strokes be displayed

    :type: int
    '''

    fading_center: float = None
    ''' Fade center

    :type: float
    '''

    fading_opacity: float = None
    ''' Fade influence of stroke's opacity

    :type: float
    '''

    fading_thickness: float = None
    ''' Fade influence of stroke's thickness

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    offset: float = None
    ''' Offset of duplicates. -1 to 1: inner to outer

    :type: float
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    use_fade: bool = None
    ''' Fade the stroke thickness for each generated stroke

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NoiseGpencilModifier(GpencilModifier, bpy_struct):
    ''' Noise effect modifier
    '''

    curve: 'CurveMapping' = None
    ''' Custom curve to apply effect

    :type: 'CurveMapping'
    '''

    factor: float = None
    ''' Amount of noise to apply

    :type: float
    '''

    factor_strength: float = None
    ''' Amount of noise to apply to opacity

    :type: float
    '''

    factor_thickness: float = None
    ''' Amount of noise to apply to thickness

    :type: float
    '''

    factor_uvs: float = None
    ''' Amount of noise to apply uv rotation

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    noise_offset: float = None
    ''' Offset the noise along the strokes

    :type: float
    '''

    noise_scale: float = None
    ''' Scale the noise frequency

    :type: float
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    seed: int = None
    ''' Random seed

    :type: int
    '''

    step: int = None
    ''' Number of frames before recalculate random values again

    :type: int
    '''

    use_custom_curve: bool = None
    ''' Use a custom curve to define noise effect along the strokes

    :type: bool
    '''

    use_random: bool = None
    ''' Use random values over time

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OffsetGpencilModifier(GpencilModifier, bpy_struct):
    ''' Offset Stroke modifier
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    location: typing.List[float] = None
    ''' Values for change location

    :type: typing.List[float]
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    random_offset: typing.List[float] = None
    ''' Value for changes in location

    :type: typing.List[float]
    '''

    random_rotation: typing.List[float] = None
    ''' Value for changes in rotation

    :type: typing.List[float]
    '''

    random_scale: typing.List[float] = None
    ''' Value for changes in scale

    :type: typing.List[float]
    '''

    rotation: typing.List[float] = None
    ''' Values for changes in rotation

    :type: typing.List[float]
    '''

    scale: typing.List[float] = None
    ''' Values for changes in scale

    :type: typing.List[float]
    '''

    seed: int = None
    ''' Random seed

    :type: int
    '''

    use_uniform_random_scale: bool = None
    ''' Use the same random seed for each scale axis for a uniform scale

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OpacityGpencilModifier(GpencilModifier, bpy_struct):
    ''' Opacity of Strokes modifier
    '''

    curve: 'CurveMapping' = None
    ''' Custom curve to apply effect

    :type: 'CurveMapping'
    '''

    factor: float = None
    ''' Factor of Opacity

    :type: float
    '''

    hardness: float = None
    ''' Factor of stroke hardness

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    modify_color: typing.Union[int, str] = None
    ''' Set what colors of the stroke are affected * BOTH Stroke & Fill -- Modify fill and stroke colors. * STROKE Stroke -- Modify stroke color only. * FILL Fill -- Modify fill color only. * HARDNESS Hardness -- Modify stroke hardness.

    :type: typing.Union[int, str]
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    use_custom_curve: bool = None
    ''' Use a custom curve to define opacity effect along the strokes

    :type: bool
    '''

    use_normalized_opacity: bool = None
    ''' Replace the stroke opacity

    :type: bool
    '''

    use_weight_factor: bool = None
    ''' Use weight to modulate effect

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShrinkwrapGpencilModifier(GpencilModifier, bpy_struct):
    ''' Shrink wrapping modifier to shrink wrap and object to a target
    '''

    auxiliary_target: 'Object' = None
    ''' Additional mesh target to shrink to

    :type: 'Object'
    '''

    cull_face: typing.Union[int, str] = None
    ''' Stop vertices from projecting to a face on the target when facing towards/away * OFF Off -- No culling. * FRONT Front -- No projection when in front of the face. * BACK Back -- No projection when behind the face.

    :type: typing.Union[int, str]
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    offset: float = None
    ''' Distance to keep from the target

    :type: float
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    project_limit: float = None
    ''' Limit the distance used for projection (zero disables)

    :type: float
    '''

    smooth_factor: float = None
    ''' Amount of smoothing to apply

    :type: float
    '''

    smooth_step: int = None
    ''' Number of times to apply smooth (high numbers can reduce FPS)

    :type: int
    '''

    subsurf_levels: int = None
    ''' Number of subdivisions that must be performed before extracting vertices' positions and normals

    :type: int
    '''

    target: 'Object' = None
    ''' Mesh target to shrink to

    :type: 'Object'
    '''

    use_invert_cull: bool = None
    ''' When projecting in the negative direction invert the face cull mode

    :type: bool
    '''

    use_negative_direction: bool = None
    ''' Allow vertices to move in the negative direction of axis

    :type: bool
    '''

    use_positive_direction: bool = None
    ''' Allow vertices to move in the positive direction of axis

    :type: bool
    '''

    use_project_x: bool = None
    ''' 

    :type: bool
    '''

    use_project_y: bool = None
    ''' 

    :type: bool
    '''

    use_project_z: bool = None
    ''' 

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    wrap_method: typing.Union[int, str] = None
    ''' * NEAREST_SURFACEPOINT Nearest Surface Point -- Shrink the mesh to the nearest target surface. * PROJECT Project -- Shrink the mesh to the nearest target surface along a given axis. * NEAREST_VERTEX Nearest Vertex -- Shrink the mesh to the nearest target vertex. * TARGET_PROJECT Target Normal Project -- Shrink the mesh to the nearest target surface along the interpolated vertex normals of the target.

    :type: typing.Union[int, str]
    '''

    wrap_mode: typing.Union[int, str] = None
    ''' Select how vertices are constrained to the target surface * ON_SURFACE On Surface -- The point is constrained to the surface of the target object, with distance offset towards the original point location. * INSIDE Inside -- The point is constrained to be inside the target object. * OUTSIDE Outside -- The point is constrained to be outside the target object. * OUTSIDE_SURFACE Outside Surface -- The point is constrained to the surface of the target object, with distance offset always to the outside, towards or away from the original location. * ABOVE_SURFACE Above Surface -- The point is constrained to the surface of the target object, with distance offset applied exactly along the target normal.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SimplifyGpencilModifier(GpencilModifier, bpy_struct):
    ''' Simplify Stroke modifier
    '''

    distance: float = None
    ''' Distance between points

    :type: float
    '''

    factor: float = None
    ''' Factor of Simplify

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    length: float = None
    ''' Length of each segment

    :type: float
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    mode: typing.Union[int, str] = None
    ''' How to simplify the stroke * FIXED Fixed -- Delete alternating vertices in the stroke, except extremes. * ADAPTIVE Adaptive -- Use a Ramer-Douglas-Peucker algorithm to simplify the stroke preserving main shape. * SAMPLE Sample -- Re-sample the stroke with segments of the specified length. * MERGE Merge -- Simplify the stroke by merging vertices closer than a given distance.

    :type: typing.Union[int, str]
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    step: int = None
    ''' Number of times to apply simplify

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SmoothGpencilModifier(GpencilModifier, bpy_struct):
    ''' Smooth effect modifier
    '''

    curve: 'CurveMapping' = None
    ''' Custom curve to apply effect

    :type: 'CurveMapping'
    '''

    factor: float = None
    ''' Amount of smooth to apply

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    step: int = None
    ''' Number of times to apply smooth (high numbers can reduce fps)

    :type: int
    '''

    use_custom_curve: bool = None
    ''' Use a custom curve to define smooth effect along the strokes

    :type: bool
    '''

    use_edit_position: bool = None
    ''' The modifier affects the position of the point

    :type: bool
    '''

    use_edit_strength: bool = None
    ''' The modifier affects the color strength of the point

    :type: bool
    '''

    use_edit_thickness: bool = None
    ''' The modifier affects the thickness of the point

    :type: bool
    '''

    use_edit_uv: bool = None
    ''' The modifier affects the UV rotation factor of the point

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SubdivGpencilModifier(GpencilModifier, bpy_struct):
    ''' Subdivide Stroke modifier
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    level: int = None
    ''' Number of subdivisions

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    subdivision_type: typing.Union[int, str] = None
    ''' Select type of subdivision algorithm

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureGpencilModifier(GpencilModifier, bpy_struct):
    ''' Transform stroke texture coordinates Modifier
    '''

    alignment_rotation: float = None
    ''' Additional rotation applied to dots and square strokes

    :type: float
    '''

    fill_offset: typing.List[float] = None
    ''' Additional offset of the fill UV

    :type: typing.List[float]
    '''

    fill_rotation: float = None
    ''' Additional rotation of the fill UV

    :type: float
    '''

    fill_scale: float = None
    ''' Additional scale of the fill UV

    :type: float
    '''

    fit_method: typing.Union[int, str] = None
    ''' * CONSTANT_LENGTH Constant Length -- Keep the texture at a constant length regardless of the length of each stroke. * FIT_STROKE Stroke Length -- Scale the texture to fit the length of each stroke.

    :type: typing.Union[int, str]
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    mode: typing.Union[int, str] = None
    ''' * STROKE Stroke -- Manipulate only stroke texture coordinates. * FILL Fill -- Manipulate only fill texture coordinates. * STROKE_AND_FILL Stroke & Fill -- Manipulate both stroke and fill texture coordinates.

    :type: typing.Union[int, str]
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    uv_offset: float = None
    ''' Offset value to add to stroke UVs

    :type: float
    '''

    uv_scale: float = None
    ''' Factor to scale the UVs

    :type: float
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ThickGpencilModifier(GpencilModifier, bpy_struct):
    ''' Subdivide and Smooth Stroke modifier
    '''

    curve: 'CurveMapping' = None
    ''' Custom curve to apply effect

    :type: 'CurveMapping'
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    thickness: int = None
    ''' Absolute thickness to apply everywhere

    :type: int
    '''

    thickness_factor: float = None
    ''' Factor to multiply the thickness with

    :type: float
    '''

    use_custom_curve: bool = None
    ''' Use a custom curve to define thickness change along the strokes

    :type: bool
    '''

    use_normalized_thickness: bool = None
    ''' Replace the stroke thickness

    :type: bool
    '''

    use_weight_factor: bool = None
    ''' Use weight to modulate effect

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TimeGpencilModifier(GpencilModifier, bpy_struct):
    ''' Time offset modifier
    '''

    frame_end: int = None
    ''' Final frame of the range

    :type: int
    '''

    frame_scale: float = None
    ''' Evaluation time in seconds

    :type: float
    '''

    frame_start: int = None
    ''' First frame of the range

    :type: int
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    mode: typing.Union[int, str] = None
    ''' * NORMAL Regular -- Apply offset in usual animation direction. * REVERSE Reverse -- Apply offset in reverse animation direction. * FIX Fixed Frame -- Keep frame and do not change with time.

    :type: typing.Union[int, str]
    '''

    offset: int = None
    ''' Number of frames to offset original keyframe number or frame to fix

    :type: int
    '''

    use_custom_frame_range: bool = None
    ''' Define a custom range of frames to use in modifier

    :type: bool
    '''

    use_keep_loop: bool = None
    ''' Retiming end frames and move to start of animation to keep loop

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TintGpencilModifier(GpencilModifier, bpy_struct):
    ''' Tint modifier
    '''

    color: typing.List[float] = None
    ''' Color used for tinting

    :type: typing.List[float]
    '''

    colors: 'ColorRamp' = None
    ''' Color ramp used to define tinting colors

    :type: 'ColorRamp'
    '''

    curve: 'CurveMapping' = None
    ''' Custom curve to apply effect

    :type: 'CurveMapping'
    '''

    factor: float = None
    ''' Factor for tinting

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    object: 'Object' = None
    ''' Parent object to define the center of the effect

    :type: 'Object'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    radius: float = None
    ''' Defines the maximum distance of the effect

    :type: float
    '''

    tint_type: typing.Union[int, str] = None
    ''' Select type of tinting algorithm

    :type: typing.Union[int, str]
    '''

    use_custom_curve: bool = None
    ''' Use a custom curve to define vertex color effect along the strokes

    :type: bool
    '''

    use_weight_factor: bool = None
    ''' Use weight to modulate effect

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    vertex_mode: typing.Union[int, str] = None
    ''' Defines how vertex color affect to the strokes * STROKE Stroke -- Vertex Color affects to Stroke only. * FILL Fill -- Vertex Color affects to Fill only. * BOTH Stroke & Fill -- Vertex Color affects to Stroke and Fill.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WeightAngleGpencilModifier(GpencilModifier, bpy_struct):
    ''' Calculate Vertex Weight dynamically
    '''

    angle: float = None
    ''' Angle

    :type: float
    '''

    axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    minimum_weight: float = None
    ''' Minimum value for vertex weight

    :type: float
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    space: typing.Union[int, str] = None
    ''' Coordinates space

    :type: typing.Union[int, str]
    '''

    target_vertex_group: str = None
    ''' Output Vertex group

    :type: str
    '''

    use_invert_output: bool = None
    ''' Invert output weight values

    :type: bool
    '''

    use_multiply: bool = None
    ''' Multiply the calculated weights with the existing values in the vertex group

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WeightProxGpencilModifier(GpencilModifier, bpy_struct):
    ''' Calculate Vertex Weight dynamically
    '''

    distance_end: float = None
    ''' Distance mapping to 1.0 weight

    :type: float
    '''

    distance_start: float = None
    ''' Distance mapping to 0.0 weight

    :type: float
    '''

    invert_layer_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_layers: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_material_pass: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_materials: bool = None
    ''' Inverse filter

    :type: bool
    '''

    invert_vertex: bool = None
    ''' Inverse filter

    :type: bool
    '''

    layer: str = None
    ''' Layer name

    :type: str
    '''

    layer_pass: int = None
    ''' Layer pass index

    :type: int
    '''

    material: 'Material' = None
    ''' Material used for filtering effect

    :type: 'Material'
    '''

    minimum_weight: float = None
    ''' Minimum value for vertex weight

    :type: float
    '''

    object: 'Object' = None
    ''' Object used as distance reference

    :type: 'Object'
    '''

    pass_index: int = None
    ''' Pass index

    :type: int
    '''

    target_vertex_group: str = None
    ''' Output Vertex group

    :type: str
    '''

    use_invert_output: bool = None
    ''' Invert output weight values

    :type: bool
    '''

    use_multiply: bool = None
    ''' Multiply the calculated weights with the existing values in the vertex group

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Action(ID, bpy_struct):
    ''' A collection of F-Curves for animation
    '''

    curve_frame_range: typing.List[float] = None
    ''' The combined frame range of all F-Curves within this action

    :type: typing.List[float]
    '''

    fcurves: typing.Union[typing.Dict[str, 'FCurve'], typing.List['FCurve'],
                          'bpy_prop_collection', 'ActionFCurves'] = None
    ''' The individual F-Curves that make up the action

    :type: typing.Union[typing.Dict[str, 'FCurve'], typing.List['FCurve'], 'bpy_prop_collection', 'ActionFCurves']
    '''

    frame_end: float = None
    ''' The end frame of the manually set intended playback range

    :type: float
    '''

    frame_range: typing.List[float] = None
    ''' The intended playback frame range of this action, using the manually set range if available, or the combined frame range of all F-Curves within this action if not (assigning sets the manual frame range)

    :type: typing.List[float]
    '''

    frame_start: float = None
    ''' The start frame of the manually set intended playback range

    :type: float
    '''

    groups: typing.Union[typing.Dict[str, 'ActionGroup'], typing.
                         List['ActionGroup'], 'bpy_prop_collection',
                         'ActionGroups'] = None
    ''' Convenient groupings of F-Curves

    :type: typing.Union[typing.Dict[str, 'ActionGroup'], typing.List['ActionGroup'], 'bpy_prop_collection', 'ActionGroups']
    '''

    id_root: typing.Union[int, str] = None
    ''' Type of ID block that action can be used on - DO NOT CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING

    :type: typing.Union[int, str]
    '''

    pose_markers: typing.Union[typing.Dict[str, 'TimelineMarker'], typing.
                               List['TimelineMarker'], 'bpy_prop_collection',
                               'ActionPoseMarkers'] = None
    ''' Markers specific to this action, for labeling poses

    :type: typing.Union[typing.Dict[str, 'TimelineMarker'], typing.List['TimelineMarker'], 'bpy_prop_collection', 'ActionPoseMarkers']
    '''

    use_cyclic: bool = None
    ''' The action is intended to be used as a cycle looping over its manually set playback frame range (enabling this doesn't automatically make it loop)

    :type: bool
    '''

    use_frame_range: bool = None
    ''' Manually specify the intended playback frame range for the action (this range is used by some tools, but does not affect animation evaluation)

    :type: bool
    '''

    def flip_with_pose(self, object: 'Object'):
        ''' Flip the action around the X axis using a pose

        :param object: The reference armature object to use when flipping
        :type object: 'Object'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Armature(ID, bpy_struct):
    ''' Armature data-block containing a hierarchy of bones, usually used for rigging characters
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    axes_position: float = None
    ''' The position for the axes on the bone. Increasing the value moves it closer to the tip; decreasing moves it closer to the root

    :type: float
    '''

    bones: typing.Union[typing.Dict[str, 'Bone'], typing.List['Bone'],
                        'bpy_prop_collection', 'ArmatureBones'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Bone'], typing.List['Bone'], 'bpy_prop_collection', 'ArmatureBones']
    '''

    display_type: typing.Union[int, str] = None
    ''' * OCTAHEDRAL Octahedral -- Display bones as octahedral shape (default). * STICK Stick -- Display bones as simple 2D lines with dots. * BBONE B-Bone -- Display bones as boxes, showing subdivision and B-Splines. * ENVELOPE Envelope -- Display bones as extruded spheres, showing deformation influence volume. * WIRE Wire -- Display bones as thin wires, showing subdivision and B-Splines.

    :type: typing.Union[int, str]
    '''

    edit_bones: typing.Union[typing.Dict[str, 'EditBone'], typing.
                             List['EditBone'], 'bpy_prop_collection',
                             'ArmatureEditBones'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'EditBone'], typing.List['EditBone'], 'bpy_prop_collection', 'ArmatureEditBones']
    '''

    is_editmode: bool = None
    ''' True when used in editmode

    :type: bool
    '''

    layers: typing.List[bool] = None
    ''' Armature layer visibility

    :type: typing.List[bool]
    '''

    layers_protected: typing.List[bool] = None
    ''' Protected layers in Proxy Instances are restored to Proxy settings on file reload and undo

    :type: typing.List[bool]
    '''

    pose_position: typing.Union[int, str] = None
    ''' Show armature in binding pose or final posed state * POSE Pose Position -- Show armature in posed state. * REST Rest Position -- Show Armature in binding pose state (no posing possible).

    :type: typing.Union[int, str]
    '''

    show_axes: bool = None
    ''' Display bone axes

    :type: bool
    '''

    show_bone_custom_shapes: bool = None
    ''' Display bones with their custom shapes

    :type: bool
    '''

    show_group_colors: bool = None
    ''' Display bone group colors

    :type: bool
    '''

    show_names: bool = None
    ''' Display bone names

    :type: bool
    '''

    use_mirror_x: bool = None
    ''' Apply changes to matching bone on opposite side of X-Axis

    :type: bool
    '''

    def transform(self, matrix: typing.List[float]):
        ''' Transform armature bones by a matrix

        :param matrix: Matrix
        :type matrix: typing.List[float]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Brush(ID, bpy_struct):
    ''' Brush data-block for storing brush settings for painting and sculpting
    '''

    area_radius_factor: float = None
    ''' Ratio between the brush radius and the radius that is going to be used to sample the area center

    :type: float
    '''

    auto_smooth_factor: float = None
    ''' Amount of smoothing to automatically apply to each stroke

    :type: float
    '''

    automasking_boundary_edges_propagation_steps: int = None
    ''' Distance where boundary edge automasking is going to protect vertices from the fully masked edge

    :type: int
    '''

    blend: typing.Union[int, str] = None
    ''' Brush blending mode * MIX Mix -- Use Mix blending mode while painting. * DARKEN Darken -- Use Darken blending mode while painting. * MUL Multiply -- Use Multiply blending mode while painting. * COLORBURN Color Burn -- Use Color Burn blending mode while painting. * LINEARBURN Linear Burn -- Use Linear Burn blending mode while painting. * LIGHTEN Lighten -- Use Lighten blending mode while painting. * SCREEN Screen -- Use Screen blending mode while painting. * COLORDODGE Color Dodge -- Use Color Dodge blending mode while painting. * ADD Add -- Use Add blending mode while painting. * OVERLAY Overlay -- Use Overlay blending mode while painting. * SOFTLIGHT Soft Light -- Use Soft Light blending mode while painting. * HARDLIGHT Hard Light -- Use Hard Light blending mode while painting. * VIVIDLIGHT Vivid Light -- Use Vivid Light blending mode while painting. * LINEARLIGHT Linear Light -- Use Linear Light blending mode while painting. * PINLIGHT Pin Light -- Use Pin Light blending mode while painting. * DIFFERENCE Difference -- Use Difference blending mode while painting. * EXCLUSION Exclusion -- Use Exclusion blending mode while painting. * SUB Subtract -- Use Subtract blending mode while painting. * HUE Hue -- Use Hue blending mode while painting. * SATURATION Saturation -- Use Saturation blending mode while painting. * COLOR Color -- Use Color blending mode while painting. * LUMINOSITY Value -- Use Value blending mode while painting. * ERASE_ALPHA Erase Alpha -- Erase alpha while painting. * ADD_ALPHA Add Alpha -- Add alpha while painting.

    :type: typing.Union[int, str]
    '''

    blur_kernel_radius: int = None
    ''' Radius of kernel used for soften and sharpen in pixels

    :type: int
    '''

    blur_mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    boundary_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush

    :type: typing.Union[int, str]
    '''

    boundary_falloff_type: typing.Union[int, str] = None
    ''' How the brush falloff is applied across the boundary * CONSTANT Constant -- Applies the same deformation in the entire boundary. * RADIUS Brush Radius -- Applies the deformation in a localized area limited by the brush radius. * LOOP Loop -- Applies the brush falloff in a loop pattern. * LOOP_INVERT Loop and Invert -- Applies the falloff radius in a loop pattern, inverting the displacement direction in each pattern repetition.

    :type: typing.Union[int, str]
    '''

    boundary_offset: float = None
    ''' Offset of the boundary origin in relation to the brush radius

    :type: float
    '''

    brush_capabilities: 'BrushCapabilities' = None
    ''' Brush's capabilities

    :type: 'BrushCapabilities'
    '''

    clone_alpha: float = None
    ''' Opacity of clone image display

    :type: float
    '''

    clone_image: 'Image' = None
    ''' Image for clone tool

    :type: 'Image'
    '''

    clone_offset: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    cloth_constraint_softbody_strength: float = None
    ''' How much the cloth preserves the original shape, acting as a soft body

    :type: float
    '''

    cloth_damping: float = None
    ''' How much the applied forces are propagated through the cloth

    :type: float
    '''

    cloth_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush

    :type: typing.Union[int, str]
    '''

    cloth_force_falloff_type: typing.Union[int, str] = None
    ''' Shape used in the brush to apply force to the cloth

    :type: typing.Union[int, str]
    '''

    cloth_mass: float = None
    ''' Mass of each simulation particle

    :type: float
    '''

    cloth_sim_falloff: float = None
    ''' Area to apply deformation falloff to the effects of the simulation

    :type: float
    '''

    cloth_sim_limit: float = None
    ''' Factor added relative to the size of the radius to limit the cloth simulation effects

    :type: float
    '''

    cloth_simulation_area_type: typing.Union[int, str] = None
    ''' Part of the mesh that is going to be simulated when the stroke is active * LOCAL Local -- Simulates only a specific area around the brush limited by a fixed radius. * GLOBAL Global -- Simulates the entire mesh. * DYNAMIC Dynamic -- The active simulation area moves with the brush.

    :type: typing.Union[int, str]
    '''

    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    color_type: typing.Union[int, str] = None
    ''' Use single color or gradient when painting * COLOR Color -- Paint with a single color. * GRADIENT Gradient -- Paint with a gradient.

    :type: typing.Union[int, str]
    '''

    crease_pinch_factor: float = None
    ''' How much the crease brush pinches

    :type: float
    '''

    cursor_color_add: typing.List[float] = None
    ''' Color of cursor when adding

    :type: typing.List[float]
    '''

    cursor_color_subtract: typing.List[float] = None
    ''' Color of cursor when subtracting

    :type: typing.List[float]
    '''

    cursor_overlay_alpha: int = None
    ''' 

    :type: int
    '''

    curve: 'CurveMapping' = None
    ''' Editable falloff curve

    :type: 'CurveMapping'
    '''

    curve_preset: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    dash_ratio: float = None
    ''' Ratio of samples in a cycle that the brush is enabled

    :type: float
    '''

    dash_samples: int = None
    ''' Length of a dash cycle measured in stroke samples

    :type: int
    '''

    deform_target: typing.Union[int, str] = None
    ''' How the deformation of the brush will affect the object * GEOMETRY Geometry -- Brush deformation displaces the vertices of the mesh. * CLOTH_SIM Cloth Simulation -- Brush deforms the mesh by deforming the constraints of a cloth simulation.

    :type: typing.Union[int, str]
    '''

    density: float = None
    ''' Amount of random elements that are going to be affected by the brush

    :type: float
    '''

    direction: typing.Union[int, str] = None
    ''' * ADD Add -- Add effect of brush. * SUBTRACT Subtract -- Subtract effect of brush.

    :type: typing.Union[int, str]
    '''

    disconnected_distance_max: float = None
    ''' Maximum distance to search for disconnected loose parts in the mesh

    :type: float
    '''

    elastic_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush

    :type: typing.Union[int, str]
    '''

    elastic_deform_volume_preservation: float = None
    ''' Poisson ratio for elastic deformation. Higher values preserve volume more, but also lead to more bulging

    :type: float
    '''

    falloff_angle: float = None
    ''' Paint most on faces pointing towards the view according to this angle

    :type: float
    '''

    falloff_shape: typing.Union[int, str] = None
    ''' Use projected or spherical falloff * SPHERE Sphere -- Apply brush influence in a Sphere, outwards from the center. * PROJECTED Projected -- Apply brush influence in a 2D circle, projected from the view.

    :type: typing.Union[int, str]
    '''

    fill_threshold: float = None
    ''' Threshold above which filling is not propagated

    :type: float
    '''

    flow: float = None
    ''' Amount of paint that is applied per stroke sample

    :type: float
    '''

    gpencil_sculpt_tool: typing.Union[int, str] = None
    ''' * SMOOTH Smooth -- Smooth stroke points. * THICKNESS Thickness -- Adjust thickness of strokes. * STRENGTH Strength -- Adjust color strength of strokes. * RANDOMIZE Randomize -- Introduce jitter/randomness into strokes. * GRAB Grab -- Translate the set of points initially within the brush circle. * PUSH Push -- Move points out of the way, as if combing them. * TWIST Twist -- Rotate points around the midpoint of the brush. * PINCH Pinch -- Pull points towards the midpoint of the brush. * CLONE Clone -- Paste copies of the strokes stored on the clipboard.

    :type: typing.Union[int, str]
    '''

    gpencil_settings: 'BrushGpencilSettings' = None
    ''' 

    :type: 'BrushGpencilSettings'
    '''

    gpencil_tool: typing.Union[int, str] = None
    ''' * DRAW Draw -- The brush is of type used for drawing strokes. * FILL Fill -- The brush is of type used for filling areas. * ERASE Erase -- The brush is used for erasing strokes. * TINT Tint -- The brush is of type used for tinting strokes.

    :type: typing.Union[int, str]
    '''

    gpencil_vertex_tool: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    gpencil_weight_tool: typing.Union[int, str] = None
    ''' * WEIGHT Weight -- Weight Paint for Vertex Groups.

    :type: typing.Union[int, str]
    '''

    grad_spacing: int = None
    ''' Spacing before brush gradient goes full circle

    :type: int
    '''

    gradient: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    gradient_fill_mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    gradient_stroke_mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    hardness: float = None
    ''' How close the brush falloff starts from the edge of the brush

    :type: float
    '''

    height: float = None
    ''' Affectable height of brush (layer height for layer tool, i.e.)

    :type: float
    '''

    icon_filepath: str = None
    ''' File path to brush icon

    :type: str
    '''

    image_paint_capabilities: 'BrushCapabilitiesImagePaint' = None
    ''' 

    :type: 'BrushCapabilitiesImagePaint'
    '''

    image_tool: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    invert_density_pressure: bool = None
    ''' Invert the modulation of pressure in density

    :type: bool
    '''

    invert_flow_pressure: bool = None
    ''' Invert the modulation of pressure in flow

    :type: bool
    '''

    invert_hardness_pressure: bool = None
    ''' Invert the modulation of pressure in hardness

    :type: bool
    '''

    invert_to_scrape_fill: bool = None
    ''' Use Scrape or Fill tool when inverting this brush instead of inverting its displacement direction

    :type: bool
    '''

    invert_wet_mix_pressure: bool = None
    ''' Invert the modulation of pressure in wet mix

    :type: bool
    '''

    invert_wet_persistence_pressure: bool = None
    ''' Invert the modulation of pressure in wet persistence

    :type: bool
    '''

    jitter: float = None
    ''' Jitter the position of the brush while painting

    :type: float
    '''

    jitter_absolute: int = None
    ''' Jitter the position of the brush in pixels while painting

    :type: int
    '''

    jitter_unit: typing.Union[int, str] = None
    ''' Jitter in screen space or relative to brush size * VIEW View -- Jittering happens in screen space, in pixels. * BRUSH Brush -- Jittering happens relative to the brush size.

    :type: typing.Union[int, str]
    '''

    mask_overlay_alpha: int = None
    ''' 

    :type: int
    '''

    mask_stencil_dimension: typing.List[float] = None
    ''' Dimensions of mask stencil in viewport

    :type: typing.List[float]
    '''

    mask_stencil_pos: typing.List[float] = None
    ''' Position of mask stencil in viewport

    :type: typing.List[float]
    '''

    mask_texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    mask_texture_slot: 'BrushTextureSlot' = None
    ''' 

    :type: 'BrushTextureSlot'
    '''

    mask_tool: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    multiplane_scrape_angle: float = None
    ''' Angle between the planes of the crease

    :type: float
    '''

    normal_radius_factor: float = None
    ''' Ratio between the brush radius and the radius that is going to be used to sample the normal

    :type: float
    '''

    normal_weight: float = None
    ''' How much grab will pull vertexes out of surface during a grab

    :type: float
    '''

    paint_curve: 'PaintCurve' = None
    ''' Active paint curve

    :type: 'PaintCurve'
    '''

    plane_offset: float = None
    ''' Adjust plane on which the brush acts towards or away from the object surface

    :type: float
    '''

    plane_trim: float = None
    ''' If a vertex is further away from offset plane than this, then it is not affected

    :type: float
    '''

    pose_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush

    :type: typing.Union[int, str]
    '''

    pose_ik_segments: int = None
    ''' Number of segments of the inverse kinematics chain that will deform the mesh

    :type: int
    '''

    pose_offset: float = None
    ''' Offset of the pose origin in relation to the brush radius

    :type: float
    '''

    pose_origin_type: typing.Union[int, str] = None
    ''' Method to set the rotation origins for the segments of the brush * TOPOLOGY Topology -- Sets the rotation origin automatically using the topology and shape of the mesh as a guide. * FACE_SETS Face Sets -- Creates a pose segment per face sets, starting from the active face set. * FACE_SETS_FK Face Sets FK -- Simulates an FK deformation using the Face Set under the cursor as control.

    :type: typing.Union[int, str]
    '''

    pose_smooth_iterations: int = None
    ''' Smooth iterations applied after calculating the pose factor of each vertex

    :type: int
    '''

    rake_factor: float = None
    ''' How much grab will follow cursor rotation

    :type: float
    '''

    rate: float = None
    ''' Interval between paints for Airbrush

    :type: float
    '''

    sculpt_capabilities: 'BrushCapabilitiesSculpt' = None
    ''' 

    :type: 'BrushCapabilitiesSculpt'
    '''

    sculpt_plane: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    sculpt_tool: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    secondary_color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    sharp_threshold: float = None
    ''' Threshold below which, no sharpening is done

    :type: float
    '''

    show_multiplane_scrape_planes_preview: bool = None
    ''' Preview the scrape planes in the cursor during the stroke

    :type: bool
    '''

    size: int = None
    ''' Radius of the brush in pixels

    :type: int
    '''

    slide_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush

    :type: typing.Union[int, str]
    '''

    smear_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush

    :type: typing.Union[int, str]
    '''

    smooth_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush * LAPLACIAN Laplacian -- Smooths the surface and the volume. * SURFACE Surface -- Smooths the surface of the mesh, preserving the volume.

    :type: typing.Union[int, str]
    '''

    smooth_stroke_factor: float = None
    ''' Higher values give a smoother stroke

    :type: float
    '''

    smooth_stroke_radius: int = None
    ''' Minimum distance from last point before stroke continues

    :type: int
    '''

    snake_hook_deform_type: typing.Union[int, str] = None
    ''' Deformation type that is used in the brush * FALLOFF Radius Falloff -- Applies the brush falloff in the tip of the brush. * ELASTIC Elastic -- Modifies the entire mesh using elastic deform.

    :type: typing.Union[int, str]
    '''

    spacing: int = None
    ''' Spacing between brush daubs as a percentage of brush diameter

    :type: int
    '''

    stencil_dimension: typing.List[float] = None
    ''' Dimensions of stencil in viewport

    :type: typing.List[float]
    '''

    stencil_pos: typing.List[float] = None
    ''' Position of stencil in viewport

    :type: typing.List[float]
    '''

    strength: float = None
    ''' How powerful the effect of the brush is when applied

    :type: float
    '''

    stroke_method: typing.Union[int, str] = None
    ''' * DOTS Dots -- Apply paint on each mouse move step. * DRAG_DOT Drag Dot -- Allows a single dot to be carefully positioned. * SPACE Space -- Limit brush application to the distance specified by spacing. * AIRBRUSH Airbrush -- Keep applying paint effect while holding mouse (spray). * ANCHORED Anchored -- Keep the brush anchored to the initial location. * LINE Line -- Draw a line with dabs separated according to spacing. * CURVE Curve -- Define the stroke curve with a bezier curve (dabs are separated according to spacing).

    :type: typing.Union[int, str]
    '''

    surface_smooth_current_vertex: float = None
    ''' How much the position of each individual vertex influences the final result

    :type: float
    '''

    surface_smooth_iterations: int = None
    ''' Number of smoothing iterations per brush step

    :type: int
    '''

    surface_smooth_shape_preservation: float = None
    ''' How much of the original shape is preserved when smoothing

    :type: float
    '''

    texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    texture_overlay_alpha: int = None
    ''' 

    :type: int
    '''

    texture_sample_bias: float = None
    ''' Value added to texture samples

    :type: float
    '''

    texture_slot: 'BrushTextureSlot' = None
    ''' 

    :type: 'BrushTextureSlot'
    '''

    tilt_strength_factor: float = None
    ''' How much the tilt of the pen will affect the brush

    :type: float
    '''

    tip_roundness: float = None
    ''' Roundness of the brush tip

    :type: float
    '''

    tip_scale_x: float = None
    ''' Scale of the brush tip in the X axis

    :type: float
    '''

    topology_rake_factor: float = None
    ''' Automatically align edges to the brush direction to generate cleaner topology and define sharp features. Best used on low-poly meshes as it has a performance impact

    :type: float
    '''

    unprojected_radius: float = None
    ''' Radius of brush in Blender units

    :type: float
    '''

    use_accumulate: bool = None
    ''' Accumulate stroke daubs on top of each other

    :type: bool
    '''

    use_adaptive_space: bool = None
    ''' Space daubs according to surface orientation instead of screen space

    :type: bool
    '''

    use_airbrush: bool = None
    ''' Keep applying paint effect while holding mouse (spray)

    :type: bool
    '''

    use_alpha: bool = None
    ''' When this is disabled, lock alpha while painting

    :type: bool
    '''

    use_anchor: bool = None
    ''' Keep the brush anchored to the initial location

    :type: bool
    '''

    use_automasking_boundary_edges: bool = None
    ''' Do not affect non manifold boundary edges

    :type: bool
    '''

    use_automasking_boundary_face_sets: bool = None
    ''' Do not affect vertices that belong to a Face Set boundary

    :type: bool
    '''

    use_automasking_face_sets: bool = None
    ''' Affect only vertices that share Face Sets with the active vertex

    :type: bool
    '''

    use_automasking_topology: bool = None
    ''' Affect only vertices connected to the active vertex under the brush

    :type: bool
    '''

    use_cloth_collision: bool = None
    ''' Collide with objects during the simulation

    :type: bool
    '''

    use_cloth_pin_simulation_boundary: bool = None
    ''' Lock the position of the vertices in the simulation falloff area to avoid artifacts and create a softer transition with unaffected areas

    :type: bool
    '''

    use_connected_only: bool = None
    ''' Affect only topologically connected elements

    :type: bool
    '''

    use_cursor_overlay: bool = None
    ''' Show cursor in viewport

    :type: bool
    '''

    use_cursor_overlay_override: bool = None
    ''' Don't show overlay during a stroke

    :type: bool
    '''

    use_curve: bool = None
    ''' Define the stroke curve with a bezier curve. Dabs are separated according to spacing

    :type: bool
    '''

    use_custom_icon: bool = None
    ''' Set the brush icon from an image file

    :type: bool
    '''

    use_density_pressure: bool = None
    ''' Use pressure to modulate density

    :type: bool
    '''

    use_edge_to_edge: bool = None
    ''' Drag anchor brush from edge-to-edge

    :type: bool
    '''

    use_flow_pressure: bool = None
    ''' Use pressure to modulate flow

    :type: bool
    '''

    use_frontface: bool = None
    ''' Brush only affects vertexes that face the viewer

    :type: bool
    '''

    use_frontface_falloff: bool = None
    ''' Blend brush influence by how much they face the front

    :type: bool
    '''

    use_grab_active_vertex: bool = None
    ''' Apply the maximum grab strength to the active vertex instead of the cursor location

    :type: bool
    '''

    use_grab_silhouette: bool = None
    ''' Grabs trying to automask the silhouette of the object

    :type: bool
    '''

    use_hardness_pressure: bool = None
    ''' Use pressure to modulate hardness

    :type: bool
    '''

    use_inverse_smooth_pressure: bool = None
    ''' Lighter pressure causes more smoothing to be applied

    :type: bool
    '''

    use_line: bool = None
    ''' Draw a line with dabs separated according to spacing

    :type: bool
    '''

    use_locked_size: typing.Union[int, str] = None
    ''' Measure brush size relative to the view or the scene * VIEW View -- Measure brush size relative to the view. * SCENE Scene -- Measure brush size relative to the scene.

    :type: typing.Union[int, str]
    '''

    use_multiplane_scrape_dynamic: bool = None
    ''' The angle between the planes changes during the stroke to fit the surface under the cursor

    :type: bool
    '''

    use_offset_pressure: bool = None
    ''' Enable tablet pressure sensitivity for offset

    :type: bool
    '''

    use_original_normal: bool = None
    ''' When locked keep using normal of surface where stroke was initiated

    :type: bool
    '''

    use_original_plane: bool = None
    ''' When locked keep using the plane origin of surface where stroke was initiated

    :type: bool
    '''

    use_paint_antialiasing: bool = None
    ''' Smooths the edges of the strokes

    :type: bool
    '''

    use_paint_grease_pencil: bool = None
    ''' Use this brush in grease pencil drawing mode

    :type: bool
    '''

    use_paint_image: bool = None
    ''' Use this brush in texture paint mode

    :type: bool
    '''

    use_paint_sculpt: bool = None
    ''' Use this brush in sculpt mode

    :type: bool
    '''

    use_paint_uv_sculpt: bool = None
    ''' Use this brush in UV sculpt mode

    :type: bool
    '''

    use_paint_vertex: bool = None
    ''' Use this brush in vertex paint mode

    :type: bool
    '''

    use_paint_weight: bool = None
    ''' Use this brush in weight paint mode

    :type: bool
    '''

    use_persistent: bool = None
    ''' Sculpt on a persistent layer of the mesh

    :type: bool
    '''

    use_plane_trim: bool = None
    ''' Enable Plane Trim

    :type: bool
    '''

    use_pose_ik_anchored: bool = None
    ''' Keep the position of the last segment in the IK chain fixed

    :type: bool
    '''

    use_pose_lock_rotation: bool = None
    ''' Do not rotate the segment when using the scale deform mode

    :type: bool
    '''

    use_pressure_area_radius: bool = None
    ''' Enable tablet pressure sensitivity for area radius

    :type: bool
    '''

    use_pressure_jitter: bool = None
    ''' Enable tablet pressure sensitivity for jitter

    :type: bool
    '''

    use_pressure_masking: typing.Union[int, str] = None
    ''' Pen pressure makes texture influence smaller

    :type: typing.Union[int, str]
    '''

    use_pressure_size: bool = None
    ''' Enable tablet pressure sensitivity for size

    :type: bool
    '''

    use_pressure_spacing: bool = None
    ''' Enable tablet pressure sensitivity for spacing

    :type: bool
    '''

    use_pressure_strength: bool = None
    ''' Enable tablet pressure sensitivity for strength

    :type: bool
    '''

    use_primary_overlay: bool = None
    ''' Show texture in viewport

    :type: bool
    '''

    use_primary_overlay_override: bool = None
    ''' Don't show overlay during a stroke

    :type: bool
    '''

    use_restore_mesh: bool = None
    ''' Allow a single dot to be carefully positioned

    :type: bool
    '''

    use_scene_spacing: typing.Union[int, str] = None
    ''' Calculate the brush spacing using view or scene distance * VIEW View -- Calculate brush spacing relative to the view. * SCENE Scene -- Calculate brush spacing relative to the scene using the stroke location.

    :type: typing.Union[int, str]
    '''

    use_secondary_overlay: bool = None
    ''' Show texture in viewport

    :type: bool
    '''

    use_secondary_overlay_override: bool = None
    ''' Don't show overlay during a stroke

    :type: bool
    '''

    use_smooth_stroke: bool = None
    ''' Brush lags behind mouse and follows a smoother path

    :type: bool
    '''

    use_space: bool = None
    ''' Limit brush application to the distance specified by spacing

    :type: bool
    '''

    use_space_attenuation: bool = None
    ''' Automatically adjust strength to give consistent results for different spacings

    :type: bool
    '''

    use_vertex_grease_pencil: bool = None
    ''' Use this brush in grease pencil vertex color mode

    :type: bool
    '''

    use_wet_mix_pressure: bool = None
    ''' Use pressure to modulate wet mix

    :type: bool
    '''

    use_wet_persistence_pressure: bool = None
    ''' Use pressure to modulate wet persistence

    :type: bool
    '''

    uv_sculpt_tool: typing.Union[int, str] = None
    ''' * GRAB Grab -- Grab UVs. * RELAX Relax -- Relax UVs. * PINCH Pinch -- Pinch UVs.

    :type: typing.Union[int, str]
    '''

    vertex_paint_capabilities: 'BrushCapabilitiesVertexPaint' = None
    ''' 

    :type: 'BrushCapabilitiesVertexPaint'
    '''

    vertex_tool: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    weight: float = None
    ''' Vertex weight when brush is applied

    :type: float
    '''

    weight_paint_capabilities: 'BrushCapabilitiesWeightPaint' = None
    ''' 

    :type: 'BrushCapabilitiesWeightPaint'
    '''

    weight_tool: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    wet_mix: float = None
    ''' Amount of paint that is picked from the surface into the brush color

    :type: float
    '''

    wet_paint_radius_factor: float = None
    ''' Ratio between the brush radius and the radius that is going to be used to sample the color to blend in wet paint

    :type: float
    '''

    wet_persistence: float = None
    ''' Amount of wet paint that stays in the brush after applying paint to the surface

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CacheFile(ID, bpy_struct):
    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    filepath: str = None
    ''' Path to external displacements file

    :type: str
    '''

    forward_axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    frame: float = None
    ''' The time to use for looking up the data in the cache file, or to determine which file to use in a file sequence

    :type: float
    '''

    frame_offset: float = None
    ''' Subtracted from the current frame to use for looking up the data in the cache file, or to determine which file to use in a file sequence

    :type: float
    '''

    is_sequence: bool = None
    ''' Whether the cache is separated in a series of files

    :type: bool
    '''

    object_paths: typing.Union[typing.Dict[str, 'CacheObjectPath'], typing.
                               List['CacheObjectPath'], 'bpy_prop_collection',
                               'CacheObjectPaths'] = None
    ''' Paths of the objects inside the Alembic archive

    :type: typing.Union[typing.Dict[str, 'CacheObjectPath'], typing.List['CacheObjectPath'], 'bpy_prop_collection', 'CacheObjectPaths']
    '''

    override_frame: bool = None
    ''' Whether to use a custom frame for looking up data in the cache file, instead of using the current scene frame

    :type: bool
    '''

    prefetch_cache_size: int = None
    ''' Memory usage limit in megabytes for the Cycles Procedural cache, if the data does not fit within the limit, rendering is aborted

    :type: int
    '''

    scale: float = None
    ''' Value by which to enlarge or shrink the object with respect to the world's origin (only applicable through a Transform Cache constraint)

    :type: float
    '''

    up_axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_prefetch: bool = None
    ''' When enabled, the Cycles Procedural will preload animation data for faster updates

    :type: bool
    '''

    use_render_procedural: bool = None
    ''' Display boxes in the viewport as placeholders for the objects, Cycles will use a procedural to load the objects during viewport rendering in experimental mode, other render engines will also receive a placeholder and should take care of loading the Alembic data themselves if possible

    :type: bool
    '''

    velocity_name: str = None
    ''' Name of the Alembic attribute used for generating motion blur data

    :type: str
    '''

    velocity_unit: typing.Union[int, str] = None
    ''' Define how the velocity vectors are interpreted with regard to time, 'frame' means the delta time is 1 frame, 'second' means the delta time is 1 / FPS

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Camera(ID, bpy_struct):
    ''' Camera data-block for storing camera settings
    '''

    angle: float = None
    ''' Camera lens field of view

    :type: float
    '''

    angle_x: float = None
    ''' Camera lens horizontal field of view

    :type: float
    '''

    angle_y: float = None
    ''' Camera lens vertical field of view

    :type: float
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    background_images: typing.Union[
        typing.Dict[str, 'CameraBackgroundImage'], typing.
        List['CameraBackgroundImage'], 'bpy_prop_collection',
        'CameraBackgroundImages'] = None
    ''' List of background images

    :type: typing.Union[typing.Dict[str, 'CameraBackgroundImage'], typing.List['CameraBackgroundImage'], 'bpy_prop_collection', 'CameraBackgroundImages']
    '''

    clip_end: float = None
    ''' Camera far clipping distance

    :type: float
    '''

    clip_start: float = None
    ''' Camera near clipping distance

    :type: float
    '''

    cycles = None
    ''' Cycles camera settings'''

    display_size: float = None
    ''' Apparent size of the Camera object in the 3D View

    :type: float
    '''

    dof: 'CameraDOFSettings' = None
    ''' 

    :type: 'CameraDOFSettings'
    '''

    lens: float = None
    ''' Perspective Camera lens value in millimeters

    :type: float
    '''

    lens_unit: typing.Union[int, str] = None
    ''' Unit to edit lens in for the user interface * MILLIMETERS Millimeters -- Specify the lens in millimeters. * FOV Field of View -- Specify the lens as the field of view's angle.

    :type: typing.Union[int, str]
    '''

    ortho_scale: float = None
    ''' Orthographic Camera scale (similar to zoom)

    :type: float
    '''

    passepartout_alpha: float = None
    ''' Opacity (alpha) of the darkened overlay in Camera view

    :type: float
    '''

    sensor_fit: typing.Union[int, str] = None
    ''' Method to fit image and field of view angle inside the sensor * AUTO Auto -- Fit to the sensor width or height depending on image resolution. * HORIZONTAL Horizontal -- Fit to the sensor width. * VERTICAL Vertical -- Fit to the sensor height.

    :type: typing.Union[int, str]
    '''

    sensor_height: float = None
    ''' Vertical size of the image sensor area in millimeters

    :type: float
    '''

    sensor_width: float = None
    ''' Horizontal size of the image sensor area in millimeters

    :type: float
    '''

    shift_x: float = None
    ''' Camera horizontal shift

    :type: float
    '''

    shift_y: float = None
    ''' Camera vertical shift

    :type: float
    '''

    show_background_images: bool = None
    ''' Display reference images behind objects in the 3D View

    :type: bool
    '''

    show_composition_center: bool = None
    ''' Display center composition guide inside the camera view

    :type: bool
    '''

    show_composition_center_diagonal: bool = None
    ''' Display diagonal center composition guide inside the camera view

    :type: bool
    '''

    show_composition_golden: bool = None
    ''' Display golden ratio composition guide inside the camera view

    :type: bool
    '''

    show_composition_golden_tria_a: bool = None
    ''' Display golden triangle A composition guide inside the camera view

    :type: bool
    '''

    show_composition_golden_tria_b: bool = None
    ''' Display golden triangle B composition guide inside the camera view

    :type: bool
    '''

    show_composition_harmony_tri_a: bool = None
    ''' Display harmony A composition guide inside the camera view

    :type: bool
    '''

    show_composition_harmony_tri_b: bool = None
    ''' Display harmony B composition guide inside the camera view

    :type: bool
    '''

    show_composition_thirds: bool = None
    ''' Display rule of thirds composition guide inside the camera view

    :type: bool
    '''

    show_limits: bool = None
    ''' Display the clipping range and focus point on the camera

    :type: bool
    '''

    show_mist: bool = None
    ''' Display a line from the Camera to indicate the mist area

    :type: bool
    '''

    show_name: bool = None
    ''' Show the active Camera's name in Camera view

    :type: bool
    '''

    show_passepartout: bool = None
    ''' Show a darkened overlay outside the image area in Camera view

    :type: bool
    '''

    show_safe_areas: bool = None
    ''' Show TV title safe and action safe areas in Camera view

    :type: bool
    '''

    show_safe_center: bool = None
    ''' Show safe areas to fit content in a different aspect ratio

    :type: bool
    '''

    show_sensor: bool = None
    ''' Show sensor size (film gate) in Camera view

    :type: bool
    '''

    stereo: 'CameraStereoData' = None
    ''' 

    :type: 'CameraStereoData'
    '''

    type: typing.Union[int, str] = None
    ''' Camera types

    :type: typing.Union[int, str]
    '''

    def view_frame(self, scene: 'Scene' = None):
        ''' Return 4 points for the cameras frame (before object transformation)

        :param scene: Scene to use for aspect calculation, when omitted 1:1 aspect is used
        :type scene: 'Scene'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Collection(ID, bpy_struct):
    ''' Collection of Object data-blocks
    '''

    all_objects: typing.Union[typing.Dict[str, 'Object'], typing.
                              List['Object'], 'bpy_prop_collection'] = None
    ''' Objects that are in this collection and its child collections

    :type: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'], 'bpy_prop_collection']
    '''

    children: typing.Union[typing.Dict[str, 'Collection'], typing.
                           List['Collection'], 'bpy_prop_collection',
                           'CollectionChildren'] = None
    ''' Collections that are immediate children of this collection

    :type: typing.Union[typing.Dict[str, 'Collection'], typing.List['Collection'], 'bpy_prop_collection', 'CollectionChildren']
    '''

    color_tag: typing.Union[int, str] = None
    ''' Color tag for a collection * NONE None -- Assign no color tag to the collection. * COLOR_01 Color 01. * COLOR_02 Color 02. * COLOR_03 Color 03. * COLOR_04 Color 04. * COLOR_05 Color 05. * COLOR_06 Color 06. * COLOR_07 Color 07. * COLOR_08 Color 08.

    :type: typing.Union[int, str]
    '''

    hide_render: bool = None
    ''' Globally disable in renders

    :type: bool
    '''

    hide_select: bool = None
    ''' Disable selection in viewport

    :type: bool
    '''

    hide_viewport: bool = None
    ''' Globally disable in viewports

    :type: bool
    '''

    instance_offset: typing.List[float] = None
    ''' Offset from the origin to use when instancing

    :type: typing.List[float]
    '''

    lineart_intersection_mask: typing.List[bool] = None
    ''' Intersection generated by this collection will have this mask value

    :type: typing.List[bool]
    '''

    lineart_usage: typing.Union[int, str] = None
    ''' How to use this collection in line art * INCLUDE Include -- Generate feature lines for this collection. * OCCLUSION_ONLY Occlusion Only -- Only use the collection to produce occlusion. * EXCLUDE Exclude -- Don't use this collection in line art. * INTERSECTION_ONLY Intersection Only -- Only generate intersection lines for this collection. * NO_INTERSECTION No Intersection -- Include this collection but do not generate intersection lines.

    :type: typing.Union[int, str]
    '''

    lineart_use_intersection_mask: bool = None
    ''' Use custom intersection mask for faces in this collection

    :type: bool
    '''

    objects: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'],
                          'bpy_prop_collection', 'CollectionObjects'] = None
    ''' Objects that are directly in this collection

    :type: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'], 'bpy_prop_collection', 'CollectionObjects']
    '''

    users_dupli_group = None
    ''' The collection instance objects this collection is used in (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Curve(ID, bpy_struct):
    ''' Curve data-block storing curves, splines and NURBS
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    bevel_depth: float = None
    ''' Radius of the bevel geometry, not including extrusion

    :type: float
    '''

    bevel_factor_end: float = None
    ''' Define where along the spline the curve geometry ends (0 for the beginning, 1 for the end)

    :type: float
    '''

    bevel_factor_mapping_end: typing.Union[int, str] = None
    ''' Determine how the geometry end factor is mapped to a spline * RESOLUTION Resolution -- Map the geometry factor to the number of subdivisions of a spline (U resolution). * SEGMENTS Segments -- Map the geometry factor to the length of a segment and to the number of subdivisions of a segment. * SPLINE Spline -- Map the geometry factor to the length of a spline.

    :type: typing.Union[int, str]
    '''

    bevel_factor_mapping_start: typing.Union[int, str] = None
    ''' Determine how the geometry start factor is mapped to a spline * RESOLUTION Resolution -- Map the geometry factor to the number of subdivisions of a spline (U resolution). * SEGMENTS Segments -- Map the geometry factor to the length of a segment and to the number of subdivisions of a segment. * SPLINE Spline -- Map the geometry factor to the length of a spline.

    :type: typing.Union[int, str]
    '''

    bevel_factor_start: float = None
    ''' Define where along the spline the curve geometry starts (0 for the beginning, 1 for the end)

    :type: float
    '''

    bevel_mode: typing.Union[int, str] = None
    ''' Determine how to build the curve's bevel geometry * ROUND Round -- Use circle for the section of the curve's bevel geometry. * OBJECT Object -- Use an object for the section of the curve's bevel geometry segment. * PROFILE Profile -- Use a custom profile for each quarter of curve's bevel geometry.

    :type: typing.Union[int, str]
    '''

    bevel_object: 'Object' = None
    ''' The name of the Curve object that defines the bevel shape

    :type: 'Object'
    '''

    bevel_profile: 'CurveProfile' = None
    ''' The path for the curve's custom profile

    :type: 'CurveProfile'
    '''

    bevel_resolution: int = None
    ''' The number of segments in each quarter-circle of the bevel

    :type: int
    '''

    cycles = None
    ''' Cycles mesh settings'''

    dimensions: typing.Union[int, str] = None
    ''' Select 2D or 3D curve type * 2D 2D -- Clamp the Z axis of the curve. * 3D 3D -- Allow editing on the Z axis of this curve, also allows tilt and curve radius to be used.

    :type: typing.Union[int, str]
    '''

    eval_time: float = None
    ''' Parametric position along the length of the curve that Objects 'following' it should be at (position is evaluated by dividing by the 'Path Length' value)

    :type: float
    '''

    extrude: float = None
    ''' Length of the depth added in the local Z direction along the curve, perpendicular to its normals

    :type: float
    '''

    fill_mode: typing.Union[int, str] = None
    ''' Mode of filling curve

    :type: typing.Union[int, str]
    '''

    is_editmode: bool = None
    ''' True when used in editmode

    :type: bool
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'IDMaterials'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'IDMaterials']
    '''

    offset: float = None
    ''' Distance to move the curve parallel to its normals

    :type: float
    '''

    path_duration: int = None
    ''' The number of frames that are needed to traverse the path, defining the maximum value for the 'Evaluation Time' setting

    :type: int
    '''

    render_resolution_u: int = None
    ''' Surface resolution in U direction used while rendering (zero uses preview resolution)

    :type: int
    '''

    render_resolution_v: int = None
    ''' Surface resolution in V direction used while rendering (zero uses preview resolution)

    :type: int
    '''

    resolution_u: int = None
    ''' Number of computed points in the U direction between every pair of control points

    :type: int
    '''

    resolution_v: int = None
    ''' The number of computed points in the V direction between every pair of control points

    :type: int
    '''

    shape_keys: 'Key' = None
    ''' 

    :type: 'Key'
    '''

    splines: typing.Union[typing.Dict[str, 'Spline'], typing.List['Spline'],
                          'bpy_prop_collection', 'CurveSplines'] = None
    ''' Collection of splines in this curve data object

    :type: typing.Union[typing.Dict[str, 'Spline'], typing.List['Spline'], 'bpy_prop_collection', 'CurveSplines']
    '''

    taper_object: 'Object' = None
    ''' Curve object name that defines the taper (width)

    :type: 'Object'
    '''

    taper_radius_mode: typing.Union[int, str] = None
    ''' Determine how the effective radius of the spline point is computed when a taper object is specified * OVERRIDE Override -- Override the radius of the spline point with the taper radius. * MULTIPLY Multiply -- Multiply the radius of the spline point by the taper radius. * ADD Add -- Add the radius of the bevel point to the taper radius.

    :type: typing.Union[int, str]
    '''

    texspace_location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    texspace_size: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    twist_mode: typing.Union[int, str] = None
    ''' The type of tilt calculation for 3D Curves * Z_UP Z-Up -- Use Z-Up axis to calculate the curve twist at each point. * MINIMUM Minimum -- Use the least twist over the entire curve. * TANGENT Tangent -- Use the tangent to calculate twist.

    :type: typing.Union[int, str]
    '''

    twist_smooth: float = None
    ''' Smoothing iteration for tangents

    :type: float
    '''

    use_auto_texspace: bool = None
    ''' Adjust active object's texture space automatically when transforming object

    :type: bool
    '''

    use_deform_bounds: bool = None
    ''' Option for curve-deform: Use the mesh bounds to clamp the deformation

    :type: bool
    '''

    use_fill_caps: bool = None
    ''' Fill caps for beveled curves

    :type: bool
    '''

    use_map_taper: bool = None
    ''' Map effect of the taper object to the beveled part of the curve

    :type: bool
    '''

    use_path: bool = None
    ''' Enable the curve to become a translation path

    :type: bool
    '''

    use_path_clamp: bool = None
    ''' Clamp the curve path children so they can't travel past the start/end point of the curve

    :type: bool
    '''

    use_path_follow: bool = None
    ''' Make curve path children to rotate along the path

    :type: bool
    '''

    use_radius: bool = None
    ''' Option for paths and curve-deform: apply the curve radius with path following it and deforming

    :type: bool
    '''

    use_stretch: bool = None
    ''' Option for curve-deform: make deformed child to stretch along entire path

    :type: bool
    '''

    def transform(self, matrix: typing.List[float], shape_keys: bool = False):
        ''' Transform curve by a matrix

        :param matrix: Matrix
        :type matrix: typing.List[float]
        :param shape_keys: Transform Shape Keys
        :type shape_keys: bool
        '''
        pass

    def validate_material_indices(self) -> bool:
        ''' Validate material indices of splines or letters, return True when the curve has had invalid indices corrected (to default 0)

        :rtype: bool
        :return: Result
        '''
        pass

    def update_gpu_tag(self):
        ''' update_gpu_tag

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FreestyleLineStyle(ID, bpy_struct):
    ''' Freestyle line style, reusable by multiple line sets
    '''

    active_texture: 'Texture' = None
    ''' Active texture slot being displayed

    :type: 'Texture'
    '''

    active_texture_index: int = None
    ''' Index of active texture slot

    :type: int
    '''

    alpha: float = None
    ''' Base alpha transparency, possibly modified by alpha transparency modifiers

    :type: float
    '''

    alpha_modifiers: typing.Union[
        typing.Dict[str, 'LineStyleAlphaModifier'], typing.
        List['LineStyleAlphaModifier'], 'bpy_prop_collection',
        'LineStyleAlphaModifiers'] = None
    ''' List of alpha transparency modifiers

    :type: typing.Union[typing.Dict[str, 'LineStyleAlphaModifier'], typing.List['LineStyleAlphaModifier'], 'bpy_prop_collection', 'LineStyleAlphaModifiers']
    '''

    angle_max: float = None
    ''' Maximum 2D angle for splitting chains

    :type: float
    '''

    angle_min: float = None
    ''' Minimum 2D angle for splitting chains

    :type: float
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    caps: typing.Union[int, str] = None
    ''' Select the shape of both ends of strokes * BUTT Butt -- Butt cap (flat). * ROUND Round -- Round cap (half-circle). * SQUARE Square -- Square cap (flat and extended).

    :type: typing.Union[int, str]
    '''

    chain_count: int = None
    ''' Chain count for the selection of first N chains

    :type: int
    '''

    chaining: typing.Union[int, str] = None
    ''' Select the way how feature edges are jointed to form chains * PLAIN Plain -- Plain chaining. * SKETCHY Sketchy -- Sketchy chaining with a multiple touch.

    :type: typing.Union[int, str]
    '''

    color: typing.List[float] = None
    ''' Base line color, possibly modified by line color modifiers

    :type: typing.List[float]
    '''

    color_modifiers: typing.Union[
        typing.Dict[str, 'LineStyleColorModifier'], typing.
        List['LineStyleColorModifier'], 'bpy_prop_collection',
        'LineStyleColorModifiers'] = None
    ''' List of line color modifiers

    :type: typing.Union[typing.Dict[str, 'LineStyleColorModifier'], typing.List['LineStyleColorModifier'], 'bpy_prop_collection', 'LineStyleColorModifiers']
    '''

    dash1: int = None
    ''' Length of the 1st dash for dashed lines

    :type: int
    '''

    dash2: int = None
    ''' Length of the 2nd dash for dashed lines

    :type: int
    '''

    dash3: int = None
    ''' Length of the 3rd dash for dashed lines

    :type: int
    '''

    gap1: int = None
    ''' Length of the 1st gap for dashed lines

    :type: int
    '''

    gap2: int = None
    ''' Length of the 2nd gap for dashed lines

    :type: int
    '''

    gap3: int = None
    ''' Length of the 3rd gap for dashed lines

    :type: int
    '''

    geometry_modifiers: typing.Union[
        typing.Dict[str, 'LineStyleGeometryModifier'], typing.
        List['LineStyleGeometryModifier'], 'bpy_prop_collection',
        'LineStyleGeometryModifiers'] = None
    ''' List of stroke geometry modifiers

    :type: typing.Union[typing.Dict[str, 'LineStyleGeometryModifier'], typing.List['LineStyleGeometryModifier'], 'bpy_prop_collection', 'LineStyleGeometryModifiers']
    '''

    integration_type: typing.Union[int, str] = None
    ''' Select the way how the sort key is computed for each chain * MEAN Mean -- The value computed for the chain is the mean of the values obtained for chain vertices. * MIN Min -- The value computed for the chain is the minimum of the values obtained for chain vertices. * MAX Max -- The value computed for the chain is the maximum of the values obtained for chain vertices. * FIRST First -- The value computed for the chain is the value obtained for the first chain vertex. * LAST Last -- The value computed for the chain is the value obtained for the last chain vertex.

    :type: typing.Union[int, str]
    '''

    length_max: float = None
    ''' Maximum curvilinear 2D length for the selection of chains

    :type: float
    '''

    length_min: float = None
    ''' Minimum curvilinear 2D length for the selection of chains

    :type: float
    '''

    material_boundary: bool = None
    ''' If true, chains of feature edges are split at material boundaries

    :type: bool
    '''

    node_tree: 'NodeTree' = None
    ''' Node tree for node-based shaders

    :type: 'NodeTree'
    '''

    panel: typing.Union[int, str] = None
    ''' Select the property panel to be shown * STROKES Strokes -- Show the panel for stroke construction. * COLOR Color -- Show the panel for line color options. * ALPHA Alpha -- Show the panel for alpha transparency options. * THICKNESS Thickness -- Show the panel for line thickness options. * GEOMETRY Geometry -- Show the panel for stroke geometry options. * TEXTURE Texture -- Show the panel for stroke texture options.

    :type: typing.Union[int, str]
    '''

    rounds: int = None
    ''' Number of rounds in a sketchy multiple touch

    :type: int
    '''

    sort_key: typing.Union[int, str] = None
    ''' Select the sort key to determine the stacking order of chains * DISTANCE_FROM_CAMERA Distance from Camera -- Sort by distance from camera (closer lines lie on top of further lines). * 2D_LENGTH 2D Length -- Sort by curvilinear 2D length (longer lines lie on top of shorter lines). * PROJECTED_X Projected X -- Sort by the projected X value in the image coordinate system. * PROJECTED_Y Projected Y -- Sort by the projected Y value in the image coordinate system.

    :type: typing.Union[int, str]
    '''

    sort_order: typing.Union[int, str] = None
    ''' Select the sort order * DEFAULT Default -- Default order of the sort key. * REVERSE Reverse -- Reverse order.

    :type: typing.Union[int, str]
    '''

    split_dash1: int = None
    ''' Length of the 1st dash for splitting

    :type: int
    '''

    split_dash2: int = None
    ''' Length of the 2nd dash for splitting

    :type: int
    '''

    split_dash3: int = None
    ''' Length of the 3rd dash for splitting

    :type: int
    '''

    split_gap1: int = None
    ''' Length of the 1st gap for splitting

    :type: int
    '''

    split_gap2: int = None
    ''' Length of the 2nd gap for splitting

    :type: int
    '''

    split_gap3: int = None
    ''' Length of the 3rd gap for splitting

    :type: int
    '''

    split_length: float = None
    ''' Curvilinear 2D length for chain splitting

    :type: float
    '''

    texture_slots: typing.Union[
        typing.Dict[str, 'LineStyleTextureSlot'], typing.
        List['LineStyleTextureSlot'], 'bpy_prop_collection',
        'LineStyleTextureSlots'] = None
    ''' Texture slots defining the mapping and influence of textures

    :type: typing.Union[typing.Dict[str, 'LineStyleTextureSlot'], typing.List['LineStyleTextureSlot'], 'bpy_prop_collection', 'LineStyleTextureSlots']
    '''

    texture_spacing: float = None
    ''' Spacing for textures along stroke length

    :type: float
    '''

    thickness: float = None
    ''' Base line thickness, possibly modified by line thickness modifiers

    :type: float
    '''

    thickness_modifiers: typing.Union[
        typing.Dict[str, 'LineStyleThicknessModifier'], typing.
        List['LineStyleThicknessModifier'], 'bpy_prop_collection',
        'LineStyleThicknessModifiers'] = None
    ''' List of line thickness modifiers

    :type: typing.Union[typing.Dict[str, 'LineStyleThicknessModifier'], typing.List['LineStyleThicknessModifier'], 'bpy_prop_collection', 'LineStyleThicknessModifiers']
    '''

    thickness_position: typing.Union[int, str] = None
    ''' Thickness position of silhouettes and border edges (applicable when plain chaining is used with the Same Object option) * CENTER Center -- Silhouettes and border edges are centered along stroke geometry. * INSIDE Inside -- Silhouettes and border edges are drawn inside of stroke geometry. * OUTSIDE Outside -- Silhouettes and border edges are drawn outside of stroke geometry. * RELATIVE Relative -- Silhouettes and border edges are shifted by a user-defined ratio.

    :type: typing.Union[int, str]
    '''

    thickness_ratio: float = None
    ''' A number between 0 (inside) and 1 (outside) specifying the relative position of stroke thickness

    :type: float
    '''

    use_angle_max: bool = None
    ''' Split chains at points with angles larger than the maximum 2D angle

    :type: bool
    '''

    use_angle_min: bool = None
    ''' Split chains at points with angles smaller than the minimum 2D angle

    :type: bool
    '''

    use_chain_count: bool = None
    ''' Enable the selection of first N chains

    :type: bool
    '''

    use_chaining: bool = None
    ''' Enable chaining of feature edges

    :type: bool
    '''

    use_dashed_line: bool = None
    ''' Enable or disable dashed line

    :type: bool
    '''

    use_length_max: bool = None
    ''' Enable the selection of chains by a maximum 2D length

    :type: bool
    '''

    use_length_min: bool = None
    ''' Enable the selection of chains by a minimum 2D length

    :type: bool
    '''

    use_nodes: bool = None
    ''' Use shader nodes for the line style

    :type: bool
    '''

    use_same_object: bool = None
    ''' If true, only feature edges of the same object are joined

    :type: bool
    '''

    use_sorting: bool = None
    ''' Arrange the stacking order of strokes

    :type: bool
    '''

    use_split_length: bool = None
    ''' Enable chain splitting by curvilinear 2D length

    :type: bool
    '''

    use_split_pattern: bool = None
    ''' Enable chain splitting by dashed line patterns

    :type: bool
    '''

    use_texture: bool = None
    ''' Enable or disable textured strokes

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GreasePencil(ID, bpy_struct):
    ''' Freehand annotation sketchbook
    '''

    after_color: typing.List[float] = None
    ''' Base color for ghosts after the active frame

    :type: typing.List[float]
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    before_color: typing.List[float] = None
    ''' Base color for ghosts before the active frame

    :type: typing.List[float]
    '''

    curve_edit_corner_angle: float = None
    ''' Angle threshold to be treated as corners

    :type: float
    '''

    curve_edit_threshold: float = None
    ''' Curve conversion error threshold

    :type: float
    '''

    edit_curve_resolution: int = None
    ''' Number of segments generated between control points when editing strokes in curve mode

    :type: int
    '''

    edit_line_color: typing.List[float] = None
    ''' Color for editing line

    :type: typing.List[float]
    '''

    ghost_after_range: int = None
    ''' Maximum number of frames to show after current frame (0 = don't show any frames after current)

    :type: int
    '''

    ghost_before_range: int = None
    ''' Maximum number of frames to show before current frame (0 = don't show any frames before current)

    :type: int
    '''

    grid: 'GreasePencilGrid' = None
    ''' Settings for grid and canvas in the 3D viewport

    :type: 'GreasePencilGrid'
    '''

    is_annotation: bool = None
    ''' Current data-block is an annotation

    :type: bool
    '''

    is_stroke_paint_mode: bool = None
    ''' Draw Grease Pencil strokes on click/drag

    :type: bool
    '''

    is_stroke_sculpt_mode: bool = None
    ''' Sculpt Grease Pencil strokes instead of viewport data

    :type: bool
    '''

    is_stroke_vertex_mode: bool = None
    ''' Grease Pencil vertex paint

    :type: bool
    '''

    is_stroke_weight_mode: bool = None
    ''' Grease Pencil weight paint

    :type: bool
    '''

    layers: typing.Union[typing.Dict[str, 'GPencilLayer'], typing.
                         List['GPencilLayer'], 'bpy_prop_collection',
                         'GreasePencilLayers'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'GPencilLayer'], typing.List['GPencilLayer'], 'bpy_prop_collection', 'GreasePencilLayers']
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'IDMaterials'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'IDMaterials']
    '''

    onion_factor: float = None
    ''' Change fade opacity of displayed onion frames

    :type: float
    '''

    onion_keyframe_type: typing.Union[int, str] = None
    ''' Type of keyframe (for filtering) * ALL All -- Include all Keyframe types. * KEYFRAME Keyframe -- Normal keyframe - e.g. for key poses. * BREAKDOWN Breakdown -- A breakdown pose - e.g. for transitions between key poses. * MOVING_HOLD Moving Hold -- A keyframe that is part of a moving hold. * EXTREME Extreme -- An 'extreme' pose, or some other purpose as needed. * JITTER Jitter -- A filler or baked keyframe for keying on ones, or some other purpose as needed.

    :type: typing.Union[int, str]
    '''

    onion_mode: typing.Union[int, str] = None
    ''' Mode to display frames * ABSOLUTE Frames -- Frames in absolute range of the scene frame. * RELATIVE Keyframes -- Frames in relative range of the Grease Pencil keyframes. * SELECTED Selected -- Only selected keyframes.

    :type: typing.Union[int, str]
    '''

    pixel_factor: float = None
    ''' Scale conversion factor for pixel size (use larger values for thicker lines)

    :type: float
    '''

    stroke_depth_order: typing.Union[int, str] = None
    ''' Defines how the strokes are ordered in 3D space (for objects not displayed 'In Front') * 2D 2D Layers -- Display strokes using grease pencil layers to define order. * 3D 3D Location -- Display strokes using real 3D position in 3D space.

    :type: typing.Union[int, str]
    '''

    stroke_thickness_space: typing.Union[int, str] = None
    ''' Set stroke thickness in screen space or world space * WORLDSPACE World Space -- Set stroke thickness relative to the world space. * SCREENSPACE Screen Space -- Set stroke thickness relative to the screen space.

    :type: typing.Union[int, str]
    '''

    use_adaptive_curve_resolution: bool = None
    ''' Set the resolution of each editcurve segment dynamically depending on the length of the segment. The resolution is the number of points generated per unit distance

    :type: bool
    '''

    use_autolock_layers: bool = None
    ''' Automatically lock all layers except the active one to avoid accidental changes

    :type: bool
    '''

    use_curve_edit: bool = None
    ''' Edit strokes using curve handles

    :type: bool
    '''

    use_ghost_custom_colors: bool = None
    ''' Use custom colors for ghost frames

    :type: bool
    '''

    use_ghosts_always: bool = None
    ''' Ghosts are shown in renders and animation playback. Useful for special effects (e.g. motion blur)

    :type: bool
    '''

    use_multiedit: bool = None
    ''' Edit strokes from multiple grease pencil keyframes at the same time (keyframes must be selected to be included)

    :type: bool
    '''

    use_onion_fade: bool = None
    ''' Display onion keyframes with a fade in color transparency

    :type: bool
    '''

    use_onion_loop: bool = None
    ''' Display onion keyframes for looping animations

    :type: bool
    '''

    use_onion_skinning: bool = None
    ''' Show ghosts of the keyframes before and after the current frame

    :type: bool
    '''

    use_stroke_edit_mode: bool = None
    ''' Edit Grease Pencil strokes instead of viewport data

    :type: bool
    '''

    zdepth_offset: float = None
    ''' Offset amount when drawing in surface mode

    :type: float
    '''

    def clear(self):
        ''' Remove all the Grease Pencil data

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Hair(ID, bpy_struct):
    ''' Hair data-block for hair curves
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    attributes: typing.Union[typing.Dict[str, 'Attribute'], typing.
                             List['Attribute'], 'bpy_prop_collection',
                             'AttributeGroup'] = None
    ''' Geometry attributes

    :type: typing.Union[typing.Dict[str, 'Attribute'], typing.List['Attribute'], 'bpy_prop_collection', 'AttributeGroup']
    '''

    curves: typing.Union[typing.Dict[str, 'HairCurve'], typing.
                         List['HairCurve'], 'bpy_prop_collection'] = None
    ''' All hair curves

    :type: typing.Union[typing.Dict[str, 'HairCurve'], typing.List['HairCurve'], 'bpy_prop_collection']
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'IDMaterials'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'IDMaterials']
    '''

    points: typing.Union[typing.Dict[str, 'HairPoint'], typing.
                         List['HairPoint'], 'bpy_prop_collection'] = None
    ''' Control points of all hair curves

    :type: typing.Union[typing.Dict[str, 'HairPoint'], typing.List['HairPoint'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Image(ID, bpy_struct):
    ''' Image data-block referencing an external or packed image
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha in the image file, to convert to and from when saving and loading the image * STRAIGHT Straight -- Store RGB and alpha channels separately with alpha acting as a mask, also known as unassociated alpha. Commonly used by image editing applications and file formats like PNG. * PREMUL Premultiplied -- Store RGB channels with alpha multiplied in, also known as associated alpha. The natural format for renders and used by file formats like OpenEXR. * CHANNEL_PACKED Channel Packed -- Different images are packed in the RGB and alpha channels, and they should not affect each other. Channel packing is commonly used by game engines to save memory. * NONE None -- Ignore alpha channel from the file and make image fully opaque.

    :type: typing.Union[int, str]
    '''

    bindcode: int = None
    ''' OpenGL bindcode

    :type: int
    '''

    channels: int = None
    ''' Number of channels in pixels buffer

    :type: int
    '''

    colorspace_settings: 'ColorManagedInputColorspaceSettings' = None
    ''' Input color space settings

    :type: 'ColorManagedInputColorspaceSettings'
    '''

    depth: int = None
    ''' Image bit depth

    :type: int
    '''

    display_aspect: typing.List[float] = None
    ''' Display Aspect for this image, does not affect rendering

    :type: typing.List[float]
    '''

    file_format: typing.Union[int, str] = None
    ''' Format used for re-saving this file * BMP BMP -- Output image in bitmap format. * IRIS Iris -- Output image in SGI IRIS format. * PNG PNG -- Output image in PNG format. * JPEG JPEG -- Output image in JPEG format. * JPEG2000 JPEG 2000 -- Output image in JPEG 2000 format. * TARGA Targa -- Output image in Targa format. * TARGA_RAW Targa Raw -- Output image in uncompressed Targa format. * CINEON Cineon -- Output image in Cineon format. * DPX DPX -- Output image in DPX format. * OPEN_EXR_MULTILAYER OpenEXR MultiLayer -- Output image in multilayer OpenEXR format. * OPEN_EXR OpenEXR -- Output image in OpenEXR format. * HDR Radiance HDR -- Output image in Radiance HDR format. * TIFF TIFF -- Output image in TIFF format. * AVI_JPEG AVI JPEG -- Output video in AVI JPEG format. * AVI_RAW AVI Raw -- Output video in AVI Raw format. * FFMPEG FFmpeg Video -- The most versatile way to output video files.

    :type: typing.Union[int, str]
    '''

    filepath: str = None
    ''' Image/Movie file name

    :type: str
    '''

    filepath_raw: str = None
    ''' Image/Movie file name (without data refreshing)

    :type: str
    '''

    frame_duration: int = None
    ''' Duration (in frames) of the image (1 when not a video/sequence)

    :type: int
    '''

    generated_color: typing.List[float] = None
    ''' Fill color for the generated image

    :type: typing.List[float]
    '''

    generated_height: int = None
    ''' Generated image height

    :type: int
    '''

    generated_type: typing.Union[int, str] = None
    ''' Generated image type * BLANK Blank -- Generate a blank image. * UV_GRID UV Grid -- Generated grid to test UV mappings. * COLOR_GRID Color Grid -- Generated improved UV grid to test UV mappings.

    :type: typing.Union[int, str]
    '''

    generated_width: int = None
    ''' Generated image width

    :type: int
    '''

    has_data: bool = None
    ''' True if the image data is loaded into memory

    :type: bool
    '''

    is_dirty: bool = None
    ''' Image has changed and is not saved

    :type: bool
    '''

    is_float: bool = None
    ''' True if this image is stored in floating-point buffer

    :type: bool
    '''

    is_multiview: bool = None
    ''' Image has more than one view

    :type: bool
    '''

    is_stereo_3d: bool = None
    ''' Image has left and right views

    :type: bool
    '''

    packed_file: 'PackedFile' = None
    ''' First packed file of the image

    :type: 'PackedFile'
    '''

    packed_files: typing.Union[typing.Dict[str, 'ImagePackedFile'], typing.
                               List['ImagePackedFile'],
                               'bpy_prop_collection'] = None
    ''' Collection of packed images

    :type: typing.Union[typing.Dict[str, 'ImagePackedFile'], typing.List['ImagePackedFile'], 'bpy_prop_collection']
    '''

    pixels: float = None
    ''' Image pixels in floating-point values

    :type: float
    '''

    render_slots: typing.Union[typing.Dict[str, 'RenderSlot'], typing.
                               List['RenderSlot'], 'bpy_prop_collection',
                               'RenderSlots'] = None
    ''' Render slots of the image

    :type: typing.Union[typing.Dict[str, 'RenderSlot'], typing.List['RenderSlot'], 'bpy_prop_collection', 'RenderSlots']
    '''

    resolution: typing.List[float] = None
    ''' X/Y pixels per meter

    :type: typing.List[float]
    '''

    size: typing.List[int] = None
    ''' Width and height in pixels, zero when image data can't be loaded

    :type: typing.List[int]
    '''

    source: typing.Union[int, str] = None
    ''' Where the image comes from * FILE Single Image -- Single image file. * SEQUENCE Image Sequence -- Multiple image files, as a sequence. * MOVIE Movie -- Movie file. * GENERATED Generated -- Generated image. * VIEWER Viewer -- Compositing node viewer. * TILED UDIM Tiles -- Tiled UDIM image texture.

    :type: typing.Union[int, str]
    '''

    stereo_3d_format: 'Stereo3dFormat' = None
    ''' Settings for stereo 3d

    :type: 'Stereo3dFormat'
    '''

    tiles: typing.Union[typing.Dict[str, 'UDIMTile'], typing.List['UDIMTile'],
                        'bpy_prop_collection', 'UDIMTiles'] = None
    ''' Tiles of the image

    :type: typing.Union[typing.Dict[str, 'UDIMTile'], typing.List['UDIMTile'], 'bpy_prop_collection', 'UDIMTiles']
    '''

    type: typing.Union[int, str] = None
    ''' How to generate the image

    :type: typing.Union[int, str]
    '''

    use_deinterlace: bool = None
    ''' Deinterlace movie file on load

    :type: bool
    '''

    use_generated_float: bool = None
    ''' Generate floating-point buffer

    :type: bool
    '''

    use_half_precision: bool = None
    ''' Use 16 bits per channel to lower the memory usage during rendering

    :type: bool
    '''

    use_multiview: bool = None
    ''' Use Multiple Views (when available)

    :type: bool
    '''

    use_view_as_render: bool = None
    ''' Apply render part of display transformation when displaying this image on the screen

    :type: bool
    '''

    views_format: typing.Union[int, str] = None
    ''' Mode to load image views * INDIVIDUAL Individual -- Individual files for each view with the prefix as defined by the scene views. * STEREO_3D Stereo 3D -- Single file with an encoded stereo pair.

    :type: typing.Union[int, str]
    '''

    def save_render(self, filepath: str, scene: 'Scene' = None):
        ''' Save image to a specific path using a scenes render settings

        :param filepath: Save path
        :type filepath: str
        :param scene: Scene to take image parameters from
        :type scene: 'Scene'
        '''
        pass

    def save(self):
        ''' Save image to its source path

        '''
        pass

    def pack(self, data: str = "", data_len: int = 0):
        ''' Pack an image as embedded data into the .blend file

        :param data: data, Raw data (bytes, exact content of the embedded file)
        :type data: str
        :param data_len: data_len, length of given data (mandatory if data is provided)
        :type data_len: int
        '''
        pass

    def unpack(self, method: typing.Union[int, str] = 'USE_LOCAL'):
        ''' Save an image packed in the .blend file to disk

        :param method: method, How to unpack
        :type method: typing.Union[int, str]
        '''
        pass

    def reload(self):
        ''' Reload the image from its source path

        '''
        pass

    def update(self):
        ''' Update the display image from the floating-point buffer

        '''
        pass

    def scale(self, width: int, height: int):
        ''' Scale the image in pixels

        :param width: Width
        :type width: int
        :param height: Height
        :type height: int
        '''
        pass

    def gl_touch(self,
                 frame: int = 0,
                 layer_index: int = 0,
                 pass_index: int = 0) -> int:
        ''' Delay the image from being cleaned from the cache due inactivity

        :param frame: Frame, Frame of image sequence or movie
        :type frame: int
        :param layer_index: Layer, Index of layer that should be loaded
        :type layer_index: int
        :param pass_index: Pass, Index of pass that should be loaded
        :type pass_index: int
        :rtype: int
        :return: Error, OpenGL error value
        '''
        pass

    def gl_load(self,
                frame: int = 0,
                layer_index: int = 0,
                pass_index: int = 0) -> int:
        ''' Load the image into an OpenGL texture. On success, image.bindcode will contain the OpenGL texture bindcode. Colors read from the texture will be in scene linear color space and have premultiplied or straight alpha matching the image alpha mode

        :param frame: Frame, Frame of image sequence or movie
        :type frame: int
        :param layer_index: Layer, Index of layer that should be loaded
        :type layer_index: int
        :param pass_index: Pass, Index of pass that should be loaded
        :type pass_index: int
        :rtype: int
        :return: Error, OpenGL error value
        '''
        pass

    def gl_free(self):
        ''' Free the image from OpenGL graphics memory

        '''
        pass

    def filepath_from_user(self, image_user: 'ImageUser' = None) -> str:
        ''' Return the absolute path to the filepath of an image frame specified by the image user

        :param image_user: Image user of the image to get filepath for
        :type image_user: 'ImageUser'
        :rtype: str
        :return: File Path, The resulting filepath from the image and its user
        '''
        pass

    def buffers_free(self):
        ''' Free the image buffers from memory

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Key(ID, bpy_struct):
    ''' Shape keys data-block containing different shapes of geometric data-blocks
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    eval_time: float = None
    ''' Evaluation time for absolute shape keys

    :type: float
    '''

    key_blocks: typing.Union[typing.Dict[str, 'ShapeKey'], typing.
                             List['ShapeKey'], 'bpy_prop_collection'] = None
    ''' Shape keys

    :type: typing.Union[typing.Dict[str, 'ShapeKey'], typing.List['ShapeKey'], 'bpy_prop_collection']
    '''

    reference_key: 'ShapeKey' = None
    ''' 

    :type: 'ShapeKey'
    '''

    use_relative: bool = None
    ''' Make shape keys relative, otherwise play through shapes as a sequence using the evaluation time

    :type: bool
    '''

    user: 'ID' = None
    ''' Data-block using these shape keys

    :type: 'ID'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Lattice(ID, bpy_struct):
    ''' Lattice data-block defining a grid for deforming other objects
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    interpolation_type_u: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    interpolation_type_v: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    interpolation_type_w: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    is_editmode: bool = None
    ''' True when used in editmode

    :type: bool
    '''

    points: typing.Union[typing.Dict[str, 'LatticePoint'], typing.
                         List['LatticePoint'], 'bpy_prop_collection'] = None
    ''' Points of the lattice

    :type: typing.Union[typing.Dict[str, 'LatticePoint'], typing.List['LatticePoint'], 'bpy_prop_collection']
    '''

    points_u: int = None
    ''' Point in U direction (can't be changed when there are shape keys)

    :type: int
    '''

    points_v: int = None
    ''' Point in V direction (can't be changed when there are shape keys)

    :type: int
    '''

    points_w: int = None
    ''' Point in W direction (can't be changed when there are shape keys)

    :type: int
    '''

    shape_keys: 'Key' = None
    ''' 

    :type: 'Key'
    '''

    use_outside: bool = None
    ''' Only display and take into account the outer vertices

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group to apply the influence of the lattice

    :type: str
    '''

    def transform(self, matrix: typing.List[float], shape_keys: bool = False):
        ''' Transform lattice by a matrix

        :param matrix: Matrix
        :type matrix: typing.List[float]
        :param shape_keys: Transform Shape Keys
        :type shape_keys: bool
        '''
        pass

    def update_gpu_tag(self):
        ''' update_gpu_tag

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Library(ID, bpy_struct):
    ''' External .blend file from which data is linked
    '''

    filepath: str = None
    ''' Path to the library .blend file

    :type: str
    '''

    packed_file: 'PackedFile' = None
    ''' 

    :type: 'PackedFile'
    '''

    parent: 'Library' = None
    ''' 

    :type: 'Library'
    '''

    version: typing.List[int] = None
    ''' Version of Blender the library .blend was saved with

    :type: typing.List[int]
    '''

    users_id = None
    ''' ID data blocks which use this library (readonly)'''

    def reload(self):
        ''' Reload this library and all its linked data-blocks

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Light(ID, bpy_struct):
    ''' Light data-block for lighting a scene
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    color: typing.List[float] = None
    ''' Light color

    :type: typing.List[float]
    '''

    cutoff_distance: float = None
    ''' Distance at which the light influence will be set to 0

    :type: float
    '''

    cycles = None
    ''' Cycles light settings'''

    diffuse_factor: float = None
    ''' Diffuse reflection multiplier

    :type: float
    '''

    distance: float = None
    ''' Falloff distance - the light is at half the original intensity at this point

    :type: float
    '''

    node_tree: 'NodeTree' = None
    ''' Node tree for node based lights

    :type: 'NodeTree'
    '''

    specular_factor: float = None
    ''' Specular reflection multiplier

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of light * POINT Point -- Omnidirectional point light source. * SUN Sun -- Constant direction parallel ray light source. * SPOT Spot -- Directional cone light source. * AREA Area -- Directional area light source.

    :type: typing.Union[int, str]
    '''

    use_custom_distance: bool = None
    ''' Use custom attenuation distance instead of global light threshold

    :type: bool
    '''

    use_nodes: bool = None
    ''' Use shader nodes to render the light

    :type: bool
    '''

    volume_factor: float = None
    ''' Volume light multiplier

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LightProbe(ID, bpy_struct):
    ''' Light Probe data-block for lighting capture objects
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    clip_end: float = None
    ''' Probe clip end, beyond which objects will not appear in reflections

    :type: float
    '''

    clip_start: float = None
    ''' Probe clip start, below which objects will not appear in reflections

    :type: float
    '''

    falloff: float = None
    ''' Control how fast the probe influence decreases

    :type: float
    '''

    grid_resolution_x: int = None
    ''' Number of sample along the x axis of the volume

    :type: int
    '''

    grid_resolution_y: int = None
    ''' Number of sample along the y axis of the volume

    :type: int
    '''

    grid_resolution_z: int = None
    ''' Number of sample along the z axis of the volume

    :type: int
    '''

    influence_distance: float = None
    ''' Influence distance of the probe

    :type: float
    '''

    influence_type: typing.Union[int, str] = None
    ''' Type of influence volume

    :type: typing.Union[int, str]
    '''

    intensity: float = None
    ''' Modify the intensity of the lighting captured by this probe

    :type: float
    '''

    invert_visibility_collection: bool = None
    ''' Invert visibility collection

    :type: bool
    '''

    parallax_distance: float = None
    ''' Lowest corner of the parallax bounding box

    :type: float
    '''

    parallax_type: typing.Union[int, str] = None
    ''' Type of parallax volume

    :type: typing.Union[int, str]
    '''

    show_clip: bool = None
    ''' Show the clipping distances in the 3D view

    :type: bool
    '''

    show_data: bool = None
    ''' Show captured lighting data into the 3D view for debugging purpose

    :type: bool
    '''

    show_influence: bool = None
    ''' Show the influence volume in the 3D view

    :type: bool
    '''

    show_parallax: bool = None
    ''' Show the parallax correction volume in the 3D view

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Type of light probe * CUBEMAP Reflection Cubemap -- Capture reflections. * PLANAR Reflection Plane. * GRID Irradiance Volume -- Volume used for precomputing indirect lighting.

    :type: typing.Union[int, str]
    '''

    use_custom_parallax: bool = None
    ''' Enable custom settings for the parallax correction volume

    :type: bool
    '''

    visibility_bleed_bias: float = None
    ''' Bias for reducing light-bleed on variance shadow maps

    :type: float
    '''

    visibility_blur: float = None
    ''' Filter size of the visibility blur

    :type: float
    '''

    visibility_buffer_bias: float = None
    ''' Bias for reducing self shadowing

    :type: float
    '''

    visibility_collection: 'Collection' = None
    ''' Restrict objects visible for this probe

    :type: 'Collection'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Mask(ID, bpy_struct):
    ''' Mask data-block defining mask for compositing
    '''

    active_layer_index: int = None
    ''' Index of active layer in list of all mask's layers

    :type: int
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    frame_end: int = None
    ''' Final frame of the mask (used for sequencer)

    :type: int
    '''

    frame_start: int = None
    ''' First frame of the mask (used for sequencer)

    :type: int
    '''

    layers: typing.Union[typing.Dict[str, 'MaskLayer'], typing.
                         List['MaskLayer'], 'bpy_prop_collection',
                         'MaskLayers'] = None
    ''' Collection of layers which defines this mask

    :type: typing.Union[typing.Dict[str, 'MaskLayer'], typing.List['MaskLayer'], 'bpy_prop_collection', 'MaskLayers']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Material(ID, bpy_struct):
    ''' Material data-block to define the appearance of geometric objects for rendering
    '''

    alpha_threshold: float = None
    ''' A pixel is rendered only if its alpha value is above this threshold

    :type: float
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    blend_method: typing.Union[int, str] = None
    ''' Blend Mode for Transparent Faces * OPAQUE Opaque -- Render surface without transparency. * CLIP Alpha Clip -- Use the alpha threshold to clip the visibility (binary visibility). * HASHED Alpha Hashed -- Use noise to dither the binary visibility (works well with multi-samples). * BLEND Alpha Blend -- Render polygon transparent, depending on alpha channel of the texture.

    :type: typing.Union[int, str]
    '''

    cycles = None
    ''' Cycles material settings'''

    diffuse_color: typing.List[float] = None
    ''' Diffuse color of the material

    :type: typing.List[float]
    '''

    grease_pencil: 'MaterialGPencilStyle' = None
    ''' Grease pencil color settings for material

    :type: 'MaterialGPencilStyle'
    '''

    is_grease_pencil: bool = None
    ''' True if this material has grease pencil data

    :type: bool
    '''

    line_color: typing.List[float] = None
    ''' Line color used for Freestyle line rendering

    :type: typing.List[float]
    '''

    line_priority: int = None
    ''' The line color of a higher priority is used at material boundaries

    :type: int
    '''

    lineart: 'MaterialLineArt' = None
    ''' Line art settings for material

    :type: 'MaterialLineArt'
    '''

    metallic: float = None
    ''' Amount of mirror reflection for raytrace

    :type: float
    '''

    node_tree: 'NodeTree' = None
    ''' Node tree for node based materials

    :type: 'NodeTree'
    '''

    paint_active_slot: int = None
    ''' Index of active texture paint slot

    :type: int
    '''

    paint_clone_slot: int = None
    ''' Index of clone texture paint slot

    :type: int
    '''

    pass_index: int = None
    ''' Index number for the "Material Index" render pass

    :type: int
    '''

    preview_render_type: typing.Union[int, str] = None
    ''' Type of preview render * FLAT Flat -- Flat XY plane. * SPHERE Sphere -- Sphere. * CUBE Cube -- Cube. * HAIR Hair -- Hair strands. * SHADERBALL Shader Ball -- Shader ball. * CLOTH Cloth -- Cloth. * FLUID Fluid -- Fluid.

    :type: typing.Union[int, str]
    '''

    refraction_depth: float = None
    ''' Approximate the thickness of the object to compute two refraction event (0 is disabled)

    :type: float
    '''

    roughness: float = None
    ''' Roughness of the material

    :type: float
    '''

    shadow_method: typing.Union[int, str] = None
    ''' Shadow mapping method * NONE None -- Material will cast no shadow. * OPAQUE Opaque -- Material will cast shadows without transparency. * CLIP Alpha Clip -- Use the alpha threshold to clip the visibility (binary visibility). * HASHED Alpha Hashed -- Use noise to dither the binary visibility and use filtering to reduce the noise.

    :type: typing.Union[int, str]
    '''

    show_transparent_back: bool = None
    ''' Limit transparency to a single layer (avoids transparency sorting problems)

    :type: bool
    '''

    specular_color: typing.List[float] = None
    ''' Specular color of the material

    :type: typing.List[float]
    '''

    specular_intensity: float = None
    ''' How intense (bright) the specular reflection is

    :type: float
    '''

    texture_paint_images: typing.Union[typing.Dict[str, 'Image'], typing.
                                       List['Image'],
                                       'bpy_prop_collection'] = None
    ''' Texture images used for texture painting

    :type: typing.Union[typing.Dict[str, 'Image'], typing.List['Image'], 'bpy_prop_collection']
    '''

    texture_paint_slots: typing.Union[typing.Dict[str, 'TexPaintSlot'], typing.
                                      List['TexPaintSlot'],
                                      'bpy_prop_collection'] = None
    ''' Texture slots defining the mapping and influence of textures

    :type: typing.Union[typing.Dict[str, 'TexPaintSlot'], typing.List['TexPaintSlot'], 'bpy_prop_collection']
    '''

    use_backface_culling: bool = None
    ''' Use back face culling to hide the back side of faces

    :type: bool
    '''

    use_nodes: bool = None
    ''' Use shader nodes to render the material

    :type: bool
    '''

    use_preview_world: bool = None
    ''' Use the current world background to light the preview render

    :type: bool
    '''

    use_screen_refraction: bool = None
    ''' Use raytraced screen space refractions

    :type: bool
    '''

    use_sss_translucency: bool = None
    ''' Add translucency effect to subsurface

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Mesh(ID, bpy_struct):
    ''' Mesh data-block defining geometric surfaces
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    attributes: typing.Union[typing.Dict[str, 'Attribute'], typing.
                             List['Attribute'], 'bpy_prop_collection',
                             'AttributeGroup'] = None
    ''' Geometry attributes

    :type: typing.Union[typing.Dict[str, 'Attribute'], typing.List['Attribute'], 'bpy_prop_collection', 'AttributeGroup']
    '''

    auto_smooth_angle: float = None
    ''' Maximum angle between face normals that will be considered as smooth (unused if custom split normals data are available)

    :type: float
    '''

    auto_texspace: bool = None
    ''' Adjust active object's texture space automatically when transforming object

    :type: bool
    '''

    cycles = None
    ''' Cycles mesh settings'''

    edges: typing.Union[typing.Dict[str, 'MeshEdge'], typing.List['MeshEdge'],
                        'bpy_prop_collection', 'MeshEdges'] = None
    ''' Edges of the mesh

    :type: typing.Union[typing.Dict[str, 'MeshEdge'], typing.List['MeshEdge'], 'bpy_prop_collection', 'MeshEdges']
    '''

    face_maps: typing.Union[typing.Dict[str, 'MeshFaceMapLayer'], typing.
                            List['MeshFaceMapLayer'], 'bpy_prop_collection',
                            'MeshFaceMapLayers'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshFaceMapLayer'], typing.List['MeshFaceMapLayer'], 'bpy_prop_collection', 'MeshFaceMapLayers']
    '''

    has_custom_normals: bool = None
    ''' True if there are custom split normals data in this mesh

    :type: bool
    '''

    is_editmode: bool = None
    ''' True when used in editmode

    :type: bool
    '''

    loop_triangles: typing.Union[
        typing.Dict[str, 'MeshLoopTriangle'], typing.List['MeshLoopTriangle'],
        'bpy_prop_collection', 'MeshLoopTriangles'] = None
    ''' Tessellation of mesh polygons into triangles

    :type: typing.Union[typing.Dict[str, 'MeshLoopTriangle'], typing.List['MeshLoopTriangle'], 'bpy_prop_collection', 'MeshLoopTriangles']
    '''

    loops: typing.Union[typing.Dict[str, 'MeshLoop'], typing.List['MeshLoop'],
                        'bpy_prop_collection', 'MeshLoops'] = None
    ''' Loops of the mesh (polygon corners)

    :type: typing.Union[typing.Dict[str, 'MeshLoop'], typing.List['MeshLoop'], 'bpy_prop_collection', 'MeshLoops']
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'IDMaterials'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'IDMaterials']
    '''

    polygon_layers_float: typing.Union[
        typing.Dict[str, 'MeshPolygonFloatPropertyLayer'], typing.
        List['MeshPolygonFloatPropertyLayer'], 'bpy_prop_collection',
        'PolygonFloatProperties'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshPolygonFloatPropertyLayer'], typing.List['MeshPolygonFloatPropertyLayer'], 'bpy_prop_collection', 'PolygonFloatProperties']
    '''

    polygon_layers_int: typing.Union[
        typing.Dict[str, 'MeshPolygonIntPropertyLayer'], typing.
        List['MeshPolygonIntPropertyLayer'], 'bpy_prop_collection',
        'PolygonIntProperties'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshPolygonIntPropertyLayer'], typing.List['MeshPolygonIntPropertyLayer'], 'bpy_prop_collection', 'PolygonIntProperties']
    '''

    polygon_layers_string: typing.Union[
        typing.Dict[str, 'MeshPolygonStringPropertyLayer'], typing.
        List['MeshPolygonStringPropertyLayer'], 'bpy_prop_collection',
        'PolygonStringProperties'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshPolygonStringPropertyLayer'], typing.List['MeshPolygonStringPropertyLayer'], 'bpy_prop_collection', 'PolygonStringProperties']
    '''

    polygons: typing.Union[typing.Dict[str, 'MeshPolygon'], typing.
                           List['MeshPolygon'], 'bpy_prop_collection',
                           'MeshPolygons'] = None
    ''' Polygons of the mesh

    :type: typing.Union[typing.Dict[str, 'MeshPolygon'], typing.List['MeshPolygon'], 'bpy_prop_collection', 'MeshPolygons']
    '''

    remesh_mode: typing.Union[int, str] = None
    ''' * VOXEL Voxel -- Use the voxel remesher. * QUAD Quad -- Use the quad remesher.

    :type: typing.Union[int, str]
    '''

    remesh_voxel_adaptivity: float = None
    ''' Reduces the final face count by simplifying geometry where detail is not needed, generating triangles. A value greater than 0 disables Fix Poles

    :type: float
    '''

    remesh_voxel_size: float = None
    ''' Size of the voxel in object space used for volume evaluation. Lower values preserve finer details

    :type: float
    '''

    sculpt_vertex_colors: typing.Union[
        typing.Dict[str, 'MeshVertColorLayer'], typing.
        List['MeshVertColorLayer'], 'bpy_prop_collection', 'VertColors'] = None
    ''' All vertex colors

    :type: typing.Union[typing.Dict[str, 'MeshVertColorLayer'], typing.List['MeshVertColorLayer'], 'bpy_prop_collection', 'VertColors']
    '''

    shape_keys: 'Key' = None
    ''' 

    :type: 'Key'
    '''

    skin_vertices: typing.Union[
        typing.Dict[str, 'MeshSkinVertexLayer'], typing.
        List['MeshSkinVertexLayer'], 'bpy_prop_collection'] = None
    ''' All skin vertices

    :type: typing.Union[typing.Dict[str, 'MeshSkinVertexLayer'], typing.List['MeshSkinVertexLayer'], 'bpy_prop_collection']
    '''

    texco_mesh: 'Mesh' = None
    ''' Derive texture coordinates from another mesh

    :type: 'Mesh'
    '''

    texspace_location: typing.List[float] = None
    ''' Texture space location

    :type: typing.List[float]
    '''

    texspace_size: typing.List[float] = None
    ''' Texture space size

    :type: typing.List[float]
    '''

    texture_mesh: 'Mesh' = None
    ''' Use another mesh for texture indices (vertex indices must be aligned)

    :type: 'Mesh'
    '''

    total_edge_sel: int = None
    ''' Selected edge count in editmode

    :type: int
    '''

    total_face_sel: int = None
    ''' Selected face count in editmode

    :type: int
    '''

    total_vert_sel: int = None
    ''' Selected vertex count in editmode

    :type: int
    '''

    use_auto_smooth: bool = None
    ''' Auto smooth (based on smooth/sharp faces/edges and angle between faces), or use custom split normals data if available

    :type: bool
    '''

    use_auto_texspace: bool = None
    ''' Adjust active object's texture space automatically when transforming object

    :type: bool
    '''

    use_customdata_edge_bevel: bool = None
    ''' 

    :type: bool
    '''

    use_customdata_edge_crease: bool = None
    ''' 

    :type: bool
    '''

    use_customdata_vertex_bevel: bool = None
    ''' 

    :type: bool
    '''

    use_mirror_topology: bool = None
    ''' Use topology based mirroring (for when both sides of mesh have matching, unique topology)

    :type: bool
    '''

    use_mirror_vertex_groups: bool = None
    ''' Mirror the left/right vertex groups when painting. The symmetry axis is determined by the symmetry settings

    :type: bool
    '''

    use_mirror_x: bool = None
    ''' Enable symmetry in the X axis

    :type: bool
    '''

    use_mirror_y: bool = None
    ''' Enable symmetry in the Y axis

    :type: bool
    '''

    use_mirror_z: bool = None
    ''' Enable symmetry in the Z axis

    :type: bool
    '''

    use_paint_mask: bool = None
    ''' Face selection masking for painting

    :type: bool
    '''

    use_paint_mask_vertex: bool = None
    ''' Vertex selection masking for painting

    :type: bool
    '''

    use_remesh_fix_poles: bool = None
    ''' Produces less poles and a better topology flow

    :type: bool
    '''

    use_remesh_preserve_paint_mask: bool = None
    ''' Keep the current mask on the new mesh

    :type: bool
    '''

    use_remesh_preserve_sculpt_face_sets: bool = None
    ''' Keep the current Face Sets on the new mesh

    :type: bool
    '''

    use_remesh_preserve_vertex_colors: bool = None
    ''' Keep the current vertex colors on the new mesh

    :type: bool
    '''

    use_remesh_preserve_volume: bool = None
    ''' Projects the mesh to preserve the volume and details of the original mesh

    :type: bool
    '''

    uv_layer_clone: 'MeshUVLoopLayer' = None
    ''' UV loop layer to be used as cloning source

    :type: 'MeshUVLoopLayer'
    '''

    uv_layer_clone_index: int = None
    ''' Clone UV loop layer index

    :type: int
    '''

    uv_layer_stencil: 'MeshUVLoopLayer' = None
    ''' UV loop layer to mask the painted area

    :type: 'MeshUVLoopLayer'
    '''

    uv_layer_stencil_index: int = None
    ''' Mask UV loop layer index

    :type: int
    '''

    uv_layers: typing.Union[typing.Dict[str, 'MeshUVLoopLayer'], typing.
                            List['MeshUVLoopLayer'], 'bpy_prop_collection',
                            'UVLoopLayers'] = None
    ''' All UV loop layers

    :type: typing.Union[typing.Dict[str, 'MeshUVLoopLayer'], typing.List['MeshUVLoopLayer'], 'bpy_prop_collection', 'UVLoopLayers']
    '''

    vertex_colors: typing.Union[typing.Dict[str, 'MeshLoopColorLayer'], typing.
                                List['MeshLoopColorLayer'],
                                'bpy_prop_collection', 'LoopColors'] = None
    ''' All vertex colors

    :type: typing.Union[typing.Dict[str, 'MeshLoopColorLayer'], typing.List['MeshLoopColorLayer'], 'bpy_prop_collection', 'LoopColors']
    '''

    vertex_layers_float: typing.Union[
        typing.Dict[str, 'MeshVertexFloatPropertyLayer'], typing.
        List['MeshVertexFloatPropertyLayer'], 'bpy_prop_collection',
        'VertexFloatProperties'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshVertexFloatPropertyLayer'], typing.List['MeshVertexFloatPropertyLayer'], 'bpy_prop_collection', 'VertexFloatProperties']
    '''

    vertex_layers_int: typing.Union[
        typing.Dict[str, 'MeshVertexIntPropertyLayer'], typing.
        List['MeshVertexIntPropertyLayer'], 'bpy_prop_collection',
        'VertexIntProperties'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshVertexIntPropertyLayer'], typing.List['MeshVertexIntPropertyLayer'], 'bpy_prop_collection', 'VertexIntProperties']
    '''

    vertex_layers_string: typing.Union[
        typing.Dict[str, 'MeshVertexStringPropertyLayer'], typing.
        List['MeshVertexStringPropertyLayer'], 'bpy_prop_collection',
        'VertexStringProperties'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'MeshVertexStringPropertyLayer'], typing.List['MeshVertexStringPropertyLayer'], 'bpy_prop_collection', 'VertexStringProperties']
    '''

    vertex_paint_masks: typing.Union[
        typing.Dict[str, 'MeshPaintMaskLayer'], typing.
        List['MeshPaintMaskLayer'], 'bpy_prop_collection'] = None
    ''' Vertex paint mask

    :type: typing.Union[typing.Dict[str, 'MeshPaintMaskLayer'], typing.List['MeshPaintMaskLayer'], 'bpy_prop_collection']
    '''

    vertices: typing.Union[typing.Dict[str, 'MeshVertex'], typing.
                           List['MeshVertex'], 'bpy_prop_collection',
                           'MeshVertices'] = None
    ''' Vertices of the mesh

    :type: typing.Union[typing.Dict[str, 'MeshVertex'], typing.List['MeshVertex'], 'bpy_prop_collection', 'MeshVertices']
    '''

    edge_keys = None
    ''' (readonly)'''

    def transform(self, matrix: typing.List[float], shape_keys: bool = False):
        ''' Transform mesh vertices by a matrix (Warning: inverts normals if matrix is negative)

        :param matrix: Matrix
        :type matrix: typing.List[float]
        :param shape_keys: Transform Shape Keys
        :type shape_keys: bool
        '''
        pass

    def flip_normals(self):
        ''' Invert winding of all polygons (clears tessellation, does not handle custom normals)

        '''
        pass

    def calc_normals(self):
        ''' Calculate vertex normals

        '''
        pass

    def create_normals_split(self):
        ''' Empty split vertex normals

        '''
        pass

    def calc_normals_split(self):
        ''' Calculate split vertex normals, which preserve sharp edges

        '''
        pass

    def free_normals_split(self):
        ''' Free split vertex normals

        '''
        pass

    def split_faces(self, free_loop_normals: bool = True):
        ''' Split faces based on the edge angle

        :param free_loop_normals: Free Loop Normals, Free loop normals custom data layer
        :type free_loop_normals: bool
        '''
        pass

    def calc_tangents(self, uvmap: str = ""):
        ''' Compute tangents and bitangent signs, to be used together with the split normals to get a complete tangent space for normal mapping (split normals are also computed if not yet present)

        :param uvmap: Name of the UV map to use for tangent space computation
        :type uvmap: str
        '''
        pass

    def free_tangents(self):
        ''' Free tangents

        '''
        pass

    def calc_loop_triangles(self):
        ''' Calculate loop triangle tessellation (supports editmode too)

        '''
        pass

    def calc_smooth_groups(self, use_bitflags: bool = False):
        ''' Calculate smooth groups from sharp edges

        :param use_bitflags: Produce bitflags groups instead of simple numeric values
        :type use_bitflags: bool
        '''
        pass

    def normals_split_custom_set(self, normals: typing.List[float]):
        ''' Define custom split normals of this mesh (use zero-vectors to keep auto ones)

        :param normals: Normals
        :type normals: typing.List[float]
        '''
        pass

    def normals_split_custom_set_from_vertices(self,
                                               normals: typing.List[float]):
        ''' Define custom split normals of this mesh, from vertices' normals (use zero-vectors to keep auto ones)

        :param normals: Normals
        :type normals: typing.List[float]
        '''
        pass

    def update(self, calc_edges: bool = False, calc_edges_loose: bool = False):
        ''' update

        :param calc_edges: Calculate Edges, Force recalculation of edges
        :type calc_edges: bool
        :param calc_edges_loose: Calculate Loose Edges, Calculate the loose state of each edge
        :type calc_edges_loose: bool
        '''
        pass

    def update_gpu_tag(self):
        ''' update_gpu_tag

        '''
        pass

    def unit_test_compare(self,
                          mesh: 'Mesh' = None,
                          threshold: float = 7.1526e-06) -> str:
        ''' unit_test_compare

        :param mesh: Mesh to compare to
        :type mesh: 'Mesh'
        :param threshold: Threshold, Comparison tolerance threshold
        :type threshold: float
        :rtype: str
        :return: Return value, String description of result of comparison
        '''
        pass

    def clear_geometry(self):
        ''' Remove all geometry from the mesh. Note that this does not free shape keys or materials

        '''
        pass

    def validate(self, verbose: bool = False,
                 clean_customdata: bool = True) -> bool:
        ''' Validate geometry, return True when the mesh has had invalid geometry corrected/removed

        :param verbose: Verbose, Output information about the errors found
        :type verbose: bool
        :param clean_customdata: Clean Custom Data, Remove temp/cached custom-data layers, like e.g. normals...
        :type clean_customdata: bool
        :rtype: bool
        :return: Result
        '''
        pass

    def validate_material_indices(self) -> bool:
        ''' Validate material indices of polygons, return True when the mesh has had invalid indices corrected (to default 0)

        :rtype: bool
        :return: Result
        '''
        pass

    def count_selected_items(self) -> typing.List[int]:
        ''' Return the number of selected items (vert, edge, face)

        :rtype: typing.List[int]
        :return: Result
        '''
        pass

    def from_pydata(self, vertices: 'bpy.context.object',
                    edges: 'bpy.context.object', faces: 'bpy.context.object'):
        ''' Make a mesh from a list of vertices/edges/faces Until we have a nicer way to make geometry, use this.

        :param vertices: float triplets each representing (X, Y, Z) eg: [(0.0, 1.0, 0.5), ...].
        :type vertices: 'bpy.context.object'
        :param edges: int pairs, each pair contains two indices to the *vertices* argument. eg: [(1, 2), ...] When an empty iterable is passed in, the edges are inferred from the polygons.
        :type edges: 'bpy.context.object'
        :param faces: iterator of faces, each faces contains three or more indices to the *vertices* argument. eg: [(5, 6, 8, 9), (1, 2, 3), ...]
        :type faces: 'bpy.context.object'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MetaBall(ID, bpy_struct):
    ''' Metaball data-block to defined blobby surfaces
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    cycles = None
    ''' Cycles mesh settings'''

    elements: typing.Union[typing.Dict[str, 'MetaElement'], typing.
                           List['MetaElement'], 'bpy_prop_collection',
                           'MetaBallElements'] = None
    ''' Metaball elements

    :type: typing.Union[typing.Dict[str, 'MetaElement'], typing.List['MetaElement'], 'bpy_prop_collection', 'MetaBallElements']
    '''

    is_editmode: bool = None
    ''' True when used in editmode

    :type: bool
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'IDMaterials'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'IDMaterials']
    '''

    render_resolution: float = None
    ''' Polygonization resolution in rendering

    :type: float
    '''

    resolution: float = None
    ''' Polygonization resolution in the 3D viewport

    :type: float
    '''

    texspace_location: typing.List[float] = None
    ''' Texture space location

    :type: typing.List[float]
    '''

    texspace_size: typing.List[float] = None
    ''' Texture space size

    :type: typing.List[float]
    '''

    threshold: float = None
    ''' Influence of metaball elements

    :type: float
    '''

    update_method: typing.Union[int, str] = None
    ''' Metaball edit update behavior * UPDATE_ALWAYS Always -- While editing, update metaball always. * HALFRES Half -- While editing, update metaball in half resolution. * FAST Fast -- While editing, update metaball without polygonization. * NEVER Never -- While editing, don't update metaball at all.

    :type: typing.Union[int, str]
    '''

    use_auto_texspace: bool = None
    ''' Adjust active object's texture space automatically when transforming object

    :type: bool
    '''

    def transform(self, matrix: typing.List[float]):
        ''' Transform metaball elements by a matrix

        :param matrix: Matrix
        :type matrix: typing.List[float]
        '''
        pass

    def update_gpu_tag(self):
        ''' update_gpu_tag

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieClip(ID, bpy_struct):
    ''' MovieClip data-block referencing an external movie file
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    colorspace_settings: 'ColorManagedInputColorspaceSettings' = None
    ''' Input color space settings

    :type: 'ColorManagedInputColorspaceSettings'
    '''

    display_aspect: typing.List[float] = None
    ''' Display Aspect for this clip, does not affect rendering

    :type: typing.List[float]
    '''

    filepath: str = None
    ''' Filename of the movie or sequence file

    :type: str
    '''

    fps: float = None
    ''' Detected frame rate of the movie clip in frames per second

    :type: float
    '''

    frame_duration: int = None
    ''' Detected duration of movie clip in frames

    :type: int
    '''

    frame_offset: int = None
    ''' Offset of footage first frame relative to its file name (affects only how footage is loading, does not change data associated with a clip)

    :type: int
    '''

    frame_start: int = None
    ''' Global scene frame number at which this movie starts playing (affects all data associated with a clip)

    :type: int
    '''

    grease_pencil: 'GreasePencil' = None
    ''' Grease pencil data for this movie clip

    :type: 'GreasePencil'
    '''

    proxy: 'MovieClipProxy' = None
    ''' 

    :type: 'MovieClipProxy'
    '''

    size: typing.List[int] = None
    ''' Width and height in pixels, zero when image data can't be loaded

    :type: typing.List[int]
    '''

    source: typing.Union[int, str] = None
    ''' Where the clip comes from * SEQUENCE Image Sequence -- Multiple image files, as a sequence. * MOVIE Movie File -- Movie file.

    :type: typing.Union[int, str]
    '''

    tracking: 'MovieTracking' = None
    ''' 

    :type: 'MovieTracking'
    '''

    use_proxy: bool = None
    ''' Use a preview proxy and/or timecode index for this clip

    :type: bool
    '''

    use_proxy_custom_directory: bool = None
    ''' Create proxy images in a custom directory (default is movie location)

    :type: bool
    '''

    def metadata(self) -> 'IDPropertyWrapPtr':
        ''' Retrieve metadata of the movie file

        :rtype: 'IDPropertyWrapPtr'
        :return: Dict-like object containing the metadata
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeTree(ID, bpy_struct):
    ''' Node tree consisting of linked nodes used for shading, textures and compositing
    '''

    active_input: int = None
    ''' Index of the active input

    :type: int
    '''

    active_output: int = None
    ''' Index of the active output

    :type: int
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    bl_description: str = None
    ''' 

    :type: str
    '''

    bl_icon: typing.Union[int, str] = None
    ''' The node tree icon

    :type: typing.Union[int, str]
    '''

    bl_idname: str = None
    ''' 

    :type: str
    '''

    bl_label: str = None
    ''' The node tree label

    :type: str
    '''

    grease_pencil: 'GreasePencil' = None
    ''' Grease Pencil data-block

    :type: 'GreasePencil'
    '''

    inputs: typing.Union[typing.Dict[str, 'NodeSocketInterface'], typing.
                         List['NodeSocketInterface'], 'bpy_prop_collection',
                         'NodeTreeInputs'] = None
    ''' Node tree inputs

    :type: typing.Union[typing.Dict[str, 'NodeSocketInterface'], typing.List['NodeSocketInterface'], 'bpy_prop_collection', 'NodeTreeInputs']
    '''

    links: typing.Union[typing.Dict[str, 'NodeLink'], typing.List['NodeLink'],
                        'bpy_prop_collection', 'NodeLinks'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'NodeLink'], typing.List['NodeLink'], 'bpy_prop_collection', 'NodeLinks']
    '''

    nodes: typing.Union[typing.Dict[str, 'Node'], typing.
                        List['Node'], 'bpy_prop_collection', 'Nodes'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Node'], typing.List['Node'], 'bpy_prop_collection', 'Nodes']
    '''

    outputs: typing.Union[typing.Dict[str, 'NodeSocketInterface'], typing.
                          List['NodeSocketInterface'], 'bpy_prop_collection',
                          'NodeTreeOutputs'] = None
    ''' Node tree outputs

    :type: typing.Union[typing.Dict[str, 'NodeSocketInterface'], typing.List['NodeSocketInterface'], 'bpy_prop_collection', 'NodeTreeOutputs']
    '''

    type: typing.Union[int, str] = None
    ''' Node Tree type (deprecated, bl_idname is the actual node tree type identifier) * UNDEFINED Undefined -- Undefined type of nodes (can happen e.g. when a linked node tree goes missing). * SHADER Shader -- Shader nodes. * TEXTURE Texture -- Texture nodes. * COMPOSITING Compositing -- Compositing nodes. * GEOMETRY Geometry -- Geometry nodes.

    :type: typing.Union[int, str]
    '''

    view_center: typing.List[float] = None
    ''' The current location (offset) of the view for this Node Tree

    :type: typing.List[float]
    '''

    def interface_update(self, context: 'Context'):
        ''' Updated node group interface

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def poll(cls, context: 'Context'):
        ''' Check visibility in the editor

        :param context: 
        :type context: 'Context'
        '''
        pass

    def update(self):
        ''' Update on editor changes

        '''
        pass

    @classmethod
    def get_from_context(cls, context: 'Context'):
        ''' Get a node tree from the context

        :param context: 
        :type context: 'Context'
        '''
        pass

    @classmethod
    def valid_socket_type(cls, idname: str):
        ''' Check if the socket type is valid for the node tree

        :param idname: Socket Type, Identifier of the socket type
        :type idname: str
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Object(ID, bpy_struct):
    ''' Object data-block defining an object in a scene
    '''

    active_material: 'Material' = None
    ''' Active material being displayed

    :type: 'Material'
    '''

    active_material_index: int = None
    ''' Index of active material slot

    :type: int
    '''

    active_shape_key: 'ShapeKey' = None
    ''' Current shape key

    :type: 'ShapeKey'
    '''

    active_shape_key_index: int = None
    ''' Current shape key index

    :type: int
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    animation_visualization: 'AnimViz' = None
    ''' Animation data for this data-block

    :type: 'AnimViz'
    '''

    bound_box: typing.List[float] = None
    ''' Object's bounding box in object-space coordinates, all values are -1.0 when not available

    :type: typing.List[float]
    '''

    collision: 'CollisionSettings' = None
    ''' Settings for using the object as a collider in physics simulation

    :type: 'CollisionSettings'
    '''

    color: typing.List[float] = None
    ''' Object color and alpha, used when faces have the ObColor mode enabled

    :type: typing.List[float]
    '''

    constraints: typing.Union[typing.Dict[str, 'Constraint'], typing.
                              List['Constraint'], 'bpy_prop_collection',
                              'ObjectConstraints'] = None
    ''' Constraints affecting the transformation of the object

    :type: typing.Union[typing.Dict[str, 'Constraint'], typing.List['Constraint'], 'bpy_prop_collection', 'ObjectConstraints']
    '''

    cycles = None
    ''' Cycles object settings'''

    data: 'ID' = None
    ''' Object data

    :type: 'ID'
    '''

    delta_location: typing.List[float] = None
    ''' Extra translation added to the location of the object

    :type: typing.List[float]
    '''

    delta_rotation_euler: typing.List[float] = None
    ''' Extra rotation added to the rotation of the object (when using Euler rotations)

    :type: typing.List[float]
    '''

    delta_rotation_quaternion: typing.List[float] = None
    ''' Extra rotation added to the rotation of the object (when using Quaternion rotations)

    :type: typing.List[float]
    '''

    delta_scale: typing.List[float] = None
    ''' Extra scaling added to the scale of the object

    :type: typing.List[float]
    '''

    dimensions: typing.List[float] = None
    ''' Absolute bounding box dimensions of the object. Warning: Assigning to it or its members multiple consecutive times will not work correctly, as this needs up-to-date evaluated data

    :type: typing.List[float]
    '''

    display: 'ObjectDisplay' = None
    ''' Object display settings for 3D viewport

    :type: 'ObjectDisplay'
    '''

    display_bounds_type: typing.Union[int, str] = None
    ''' Object boundary display type * BOX Box -- Display bounds as box. * SPHERE Sphere -- Display bounds as sphere. * CYLINDER Cylinder -- Display bounds as cylinder. * CONE Cone -- Display bounds as cone. * CAPSULE Capsule -- Display bounds as capsule.

    :type: typing.Union[int, str]
    '''

    display_type: typing.Union[int, str] = None
    ''' How to display object in viewport * BOUNDS Bounds -- Display the bounds of the object. * WIRE Wire -- Display the object as a wireframe. * SOLID Solid -- Display the object as a solid (if solid drawing is enabled in the viewport). * TEXTURED Textured -- Display the object with textures (if textures are enabled in the viewport).

    :type: typing.Union[int, str]
    '''

    empty_display_size: float = None
    ''' Size of display for empties in the viewport

    :type: float
    '''

    empty_display_type: typing.Union[int, str] = None
    ''' Viewport display style for empties

    :type: typing.Union[int, str]
    '''

    empty_image_depth: typing.Union[int, str] = None
    ''' Determine which other objects will occlude the image

    :type: typing.Union[int, str]
    '''

    empty_image_offset: typing.List[float] = None
    ''' Origin offset distance

    :type: typing.List[float]
    '''

    empty_image_side: typing.Union[int, str] = None
    ''' Show front/back side

    :type: typing.Union[int, str]
    '''

    face_maps: typing.Union[typing.Dict[str, 'FaceMap'], typing.
                            List['FaceMap'], 'bpy_prop_collection',
                            'FaceMaps'] = None
    ''' Maps of faces of the object

    :type: typing.Union[typing.Dict[str, 'FaceMap'], typing.List['FaceMap'], 'bpy_prop_collection', 'FaceMaps']
    '''

    field: 'FieldSettings' = None
    ''' Settings for using the object as a field in physics simulation

    :type: 'FieldSettings'
    '''

    grease_pencil_modifiers: typing.Union[
        typing.Dict[str, 'GpencilModifier'], typing.List['GpencilModifier'],
        'bpy_prop_collection', 'ObjectGpencilModifiers'] = None
    ''' Modifiers affecting the data of the grease pencil object

    :type: typing.Union[typing.Dict[str, 'GpencilModifier'], typing.List['GpencilModifier'], 'bpy_prop_collection', 'ObjectGpencilModifiers']
    '''

    hide_render: bool = None
    ''' Globally disable in renders

    :type: bool
    '''

    hide_select: bool = None
    ''' Disable selection in viewport

    :type: bool
    '''

    hide_viewport: bool = None
    ''' Globally disable in viewports

    :type: bool
    '''

    image_user: 'ImageUser' = None
    ''' Parameters defining which layer, pass and frame of the image is displayed

    :type: 'ImageUser'
    '''

    instance_collection: 'Collection' = None
    ''' Instance an existing collection

    :type: 'Collection'
    '''

    instance_faces_scale: float = None
    ''' Scale the face instance objects

    :type: float
    '''

    instance_type: typing.Union[int, str] = None
    ''' If not None, object instancing method to use * NONE None. * VERTS Vertices -- Instantiate child objects on all vertices. * FACES Faces -- Instantiate child objects on all faces. * COLLECTION Collection -- Enable collection instancing.

    :type: typing.Union[int, str]
    '''

    is_from_instancer: bool = None
    ''' Object comes from a instancer

    :type: bool
    '''

    is_from_set: bool = None
    ''' Object comes from a background set

    :type: bool
    '''

    is_holdout: bool = None
    ''' Render objects as a holdout or matte, creating a hole in the image with zero alpha, to fill out in compositing with real footage or another render

    :type: bool
    '''

    is_instancer: bool = None
    ''' 

    :type: bool
    '''

    is_shadow_catcher: bool = None
    ''' Only render shadows and reflections on this object, for compositing renders into real footage. Objects with this setting are considered to already exist in the footage, objects without it are synthetic objects being composited into it

    :type: bool
    '''

    lineart: 'ObjectLineArt' = None
    ''' Line art settings for the object

    :type: 'ObjectLineArt'
    '''

    location: typing.List[float] = None
    ''' Location of the object

    :type: typing.List[float]
    '''

    lock_location: typing.List[bool] = None
    ''' Lock editing of location when transforming

    :type: typing.List[bool]
    '''

    lock_rotation: typing.List[bool] = None
    ''' Lock editing of rotation when transforming

    :type: typing.List[bool]
    '''

    lock_rotation_w: bool = None
    ''' Lock editing of 'angle' component of four-component rotations when transforming

    :type: bool
    '''

    lock_rotations_4d: bool = None
    ''' Lock editing of four component rotations by components (instead of as Eulers)

    :type: bool
    '''

    lock_scale: typing.List[bool] = None
    ''' Lock editing of scale when transforming

    :type: typing.List[bool]
    '''

    material_slots: typing.Union[typing.Dict[str, 'MaterialSlot'], typing.
                                 List['MaterialSlot'],
                                 'bpy_prop_collection'] = None
    ''' Material slots in the object

    :type: typing.Union[typing.Dict[str, 'MaterialSlot'], typing.List['MaterialSlot'], 'bpy_prop_collection']
    '''

    matrix_basis: typing.List[float] = None
    ''' Matrix access to location, rotation and scale (including deltas), before constraints and parenting are applied

    :type: typing.List[float]
    '''

    matrix_local: typing.List[float] = None
    ''' Parent relative transformation matrix. Warning: Only takes into account object parenting, so e.g. in case of bone parenting you get a matrix relative to the Armature object, not to the actual parent bone

    :type: typing.List[float]
    '''

    matrix_parent_inverse: typing.List[float] = None
    ''' Inverse of object's parent matrix at time of parenting

    :type: typing.List[float]
    '''

    matrix_world: typing.List[float] = None
    ''' Worldspace transformation matrix

    :type: typing.List[float]
    '''

    mode: typing.Union[int, str] = None
    ''' Object interaction mode * OBJECT Object Mode. * EDIT Edit Mode. * POSE Pose Mode. * SCULPT Sculpt Mode. * VERTEX_PAINT Vertex Paint. * WEIGHT_PAINT Weight Paint. * TEXTURE_PAINT Texture Paint. * PARTICLE_EDIT Particle Edit. * EDIT_GPENCIL Edit Mode -- Edit Grease Pencil Strokes. * SCULPT_GPENCIL Sculpt Mode -- Sculpt Grease Pencil Strokes. * PAINT_GPENCIL Draw Mode -- Paint Grease Pencil Strokes. * WEIGHT_GPENCIL Weight Paint -- Grease Pencil Weight Paint Strokes. * VERTEX_GPENCIL Vertex Paint -- Grease Pencil Vertex Paint Strokes.

    :type: typing.Union[int, str]
    '''

    modifiers: typing.Union[typing.Dict[str, 'Modifier'], typing.
                            List['Modifier'], 'bpy_prop_collection',
                            'ObjectModifiers'] = None
    ''' Modifiers affecting the geometric data of the object

    :type: typing.Union[typing.Dict[str, 'Modifier'], typing.List['Modifier'], 'bpy_prop_collection', 'ObjectModifiers']
    '''

    motion_path: 'MotionPath' = None
    ''' Motion Path for this element

    :type: 'MotionPath'
    '''

    parent: 'Object' = None
    ''' Parent object

    :type: 'Object'
    '''

    parent_bone: str = None
    ''' Name of parent bone in case of a bone parenting relation

    :type: str
    '''

    parent_type: typing.Union[int, str] = None
    ''' Type of parent relation * OBJECT Object -- The object is parented to an object. * ARMATURE Armature. * LATTICE Lattice -- The object is parented to a lattice. * VERTEX Vertex -- The object is parented to a vertex. * VERTEX_3 3 Vertices. * BONE Bone -- The object is parented to a bone.

    :type: typing.Union[int, str]
    '''

    parent_vertices: typing.List[int] = None
    ''' Indices of vertices in case of a vertex parenting relation

    :type: typing.List[int]
    '''

    particle_systems: typing.Union[
        typing.Dict[str, 'ParticleSystem'], typing.List['ParticleSystem'],
        'bpy_prop_collection', 'ParticleSystems'] = None
    ''' Particle systems emitted from the object

    :type: typing.Union[typing.Dict[str, 'ParticleSystem'], typing.List['ParticleSystem'], 'bpy_prop_collection', 'ParticleSystems']
    '''

    pass_index: int = None
    ''' Index number for the "Object Index" render pass

    :type: int
    '''

    pose: 'Pose' = None
    ''' Current pose for armatures

    :type: 'Pose'
    '''

    pose_library: 'Action' = None
    ''' Action used as a pose library for armatures

    :type: 'Action'
    '''

    proxy: 'Object' = None
    ''' Library object this proxy object controls

    :type: 'Object'
    '''

    proxy_collection: 'Object' = None
    ''' Library collection duplicator object this proxy object controls

    :type: 'Object'
    '''

    rigid_body: 'RigidBodyObject' = None
    ''' Settings for rigid body simulation

    :type: 'RigidBodyObject'
    '''

    rigid_body_constraint: 'RigidBodyConstraint' = None
    ''' Constraint constraining rigid bodies

    :type: 'RigidBodyConstraint'
    '''

    rotation_axis_angle: typing.List[float] = None
    ''' Angle of Rotation for Axis-Angle rotation representation

    :type: typing.List[float]
    '''

    rotation_euler: typing.List[float] = None
    ''' Rotation in Eulers

    :type: typing.List[float]
    '''

    rotation_mode: typing.Union[int, str] = None
    ''' * QUATERNION Quaternion (WXYZ) -- No Gimbal Lock. * XYZ XYZ Euler -- XYZ Rotation Order - prone to Gimbal Lock (default). * XZY XZY Euler -- XZY Rotation Order - prone to Gimbal Lock. * YXZ YXZ Euler -- YXZ Rotation Order - prone to Gimbal Lock. * YZX YZX Euler -- YZX Rotation Order - prone to Gimbal Lock. * ZXY ZXY Euler -- ZXY Rotation Order - prone to Gimbal Lock. * ZYX ZYX Euler -- ZYX Rotation Order - prone to Gimbal Lock. * AXIS_ANGLE Axis Angle -- Axis Angle (W+XYZ), defines a rotation around some axis defined by 3D-Vector.

    :type: typing.Union[int, str]
    '''

    rotation_quaternion: typing.List[float] = None
    ''' Rotation in Quaternions

    :type: typing.List[float]
    '''

    scale: typing.List[float] = None
    ''' Scaling of the object

    :type: typing.List[float]
    '''

    shader_effects: typing.Union[typing.Dict[str, 'ShaderFx'], typing.
                                 List['ShaderFx'], 'bpy_prop_collection',
                                 'ObjectShaderFx'] = None
    ''' Effects affecting display of object

    :type: typing.Union[typing.Dict[str, 'ShaderFx'], typing.List['ShaderFx'], 'bpy_prop_collection', 'ObjectShaderFx']
    '''

    show_all_edges: bool = None
    ''' Display all edges for mesh objects

    :type: bool
    '''

    show_axis: bool = None
    ''' Display the object's origin and axes

    :type: bool
    '''

    show_bounds: bool = None
    ''' Display the object's bounds

    :type: bool
    '''

    show_empty_image_only_axis_aligned: bool = None
    ''' Only display the image when it is aligned with the view axis

    :type: bool
    '''

    show_empty_image_orthographic: bool = None
    ''' Display image in orthographic mode

    :type: bool
    '''

    show_empty_image_perspective: bool = None
    ''' Display image in perspective mode

    :type: bool
    '''

    show_in_front: bool = None
    ''' Make the object display in front of others

    :type: bool
    '''

    show_instancer_for_render: bool = None
    ''' Make instancer visible when rendering

    :type: bool
    '''

    show_instancer_for_viewport: bool = None
    ''' Make instancer visible in the viewport

    :type: bool
    '''

    show_name: bool = None
    ''' Display the object's name

    :type: bool
    '''

    show_only_shape_key: bool = None
    ''' Always show the current shape for this object

    :type: bool
    '''

    show_texture_space: bool = None
    ''' Display the object's texture space

    :type: bool
    '''

    show_transparent: bool = None
    ''' Display material transparency in the object

    :type: bool
    '''

    show_wire: bool = None
    ''' Display the object's wireframe over solid shading

    :type: bool
    '''

    soft_body: 'SoftBodySettings' = None
    ''' Settings for soft body simulation

    :type: 'SoftBodySettings'
    '''

    track_axis: typing.Union[int, str] = None
    ''' Axis that points in the 'forward' direction (applies to Instance Vertices when Align to Vertex Normal is enabled)

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' Type of object

    :type: typing.Union[int, str]
    '''

    up_axis: typing.Union[int, str] = None
    ''' Axis that points in the upward direction (applies to Instance Vertices when Align to Vertex Normal is enabled)

    :type: typing.Union[int, str]
    '''

    use_camera_lock_parent: bool = None
    ''' View Lock 3D viewport camera transformation affects the object's parent instead

    :type: bool
    '''

    use_dynamic_topology_sculpting: bool = None
    ''' 

    :type: bool
    '''

    use_empty_image_alpha: bool = None
    ''' Use alpha blending instead of alpha test (can produce sorting artifacts)

    :type: bool
    '''

    use_grease_pencil_lights: bool = None
    ''' Lights affect grease pencil object

    :type: bool
    '''

    use_instance_faces_scale: bool = None
    ''' Scale instance based on face size

    :type: bool
    '''

    use_instance_vertices_rotation: bool = None
    ''' Rotate instance according to vertex normal

    :type: bool
    '''

    use_mesh_mirror_x: bool = None
    ''' Enable mesh symmetry in the X axis

    :type: bool
    '''

    use_mesh_mirror_y: bool = None
    ''' Enable mesh symmetry in the Y axis

    :type: bool
    '''

    use_mesh_mirror_z: bool = None
    ''' Enable mesh symmetry in the Z axis

    :type: bool
    '''

    use_shape_key_edit_mode: bool = None
    ''' Apply shape keys in edit mode (for meshes only)

    :type: bool
    '''

    vertex_groups: typing.Union[typing.Dict[str, 'VertexGroup'], typing.
                                List['VertexGroup'], 'bpy_prop_collection',
                                'VertexGroups'] = None
    ''' Vertex groups of the object

    :type: typing.Union[typing.Dict[str, 'VertexGroup'], typing.List['VertexGroup'], 'bpy_prop_collection', 'VertexGroups']
    '''

    visible_camera: bool = None
    ''' Object visibility to camera rays

    :type: bool
    '''

    visible_diffuse: bool = None
    ''' Object visibility to diffuse rays

    :type: bool
    '''

    visible_glossy: bool = None
    ''' Object visibility to glossy rays

    :type: bool
    '''

    visible_shadow: bool = None
    ''' Object visibility to shadow rays

    :type: bool
    '''

    visible_transmission: bool = None
    ''' Object visibility to transmission rays

    :type: bool
    '''

    visible_volume_scatter: bool = None
    ''' Object visibility to volume scattering rays

    :type: bool
    '''

    children = None
    ''' All the children of this object. .. note:: Takes O(len(bpy.data.objects)) time. (readonly)'''

    users_collection = None
    ''' The collections this object is in. (readonly)'''

    users_scene = None
    ''' The scenes this object is in. .. note:: Takes O(len(bpy.data.scenes) * len(bpy.data.objects)) time. (readonly)'''

    def select_get(self, view_layer: 'ViewLayer' = None) -> bool:
        ''' Test if the object is selected. The selection state is per view layer

        :param view_layer: Use this instead of the active view layer
        :type view_layer: 'ViewLayer'
        :rtype: bool
        :return: Object selected
        '''
        pass

    def select_set(self, state: bool, view_layer: 'ViewLayer' = None):
        ''' Select or deselect the object. The selection state is per view layer

        :param state: Selection state to define
        :type state: bool
        :param view_layer: Use this instead of the active view layer
        :type view_layer: 'ViewLayer'
        '''
        pass

    def hide_get(self, view_layer: 'ViewLayer' = None) -> bool:
        ''' Test if the object is hidden for viewport editing. This hiding state is per view layer

        :param view_layer: Use this instead of the active view layer
        :type view_layer: 'ViewLayer'
        :rtype: bool
        :return: Object hidden
        '''
        pass

    def hide_set(self, state: bool, view_layer: 'ViewLayer' = None):
        ''' Hide the object for viewport editing. This hiding state is per view layer

        :param state: Hide state to define
        :type state: bool
        :param view_layer: Use this instead of the active view layer
        :type view_layer: 'ViewLayer'
        '''
        pass

    def visible_get(self,
                    view_layer: 'ViewLayer' = None,
                    viewport: 'SpaceView3D' = None) -> bool:
        ''' Test if the object is visible in the 3D viewport, taking into account all visibility settings

        :param view_layer: Use this instead of the active view layer
        :type view_layer: 'ViewLayer'
        :param viewport: Use this instead of the active 3D viewport
        :type viewport: 'SpaceView3D'
        :rtype: bool
        :return: Object visible
        '''
        pass

    def holdout_get(self, view_layer: 'ViewLayer' = None) -> bool:
        ''' Test if object is masked in the view layer

        :param view_layer: Use this instead of the active view layer
        :type view_layer: 'ViewLayer'
        :rtype: bool
        :return: Object holdout
        '''
        pass

    def indirect_only_get(self, view_layer: 'ViewLayer' = None) -> bool:
        ''' Test if object is set to contribute only indirectly (through shadows and reflections) in the view layer

        :param view_layer: Use this instead of the active view layer
        :type view_layer: 'ViewLayer'
        :rtype: bool
        :return: Object indirect only
        '''
        pass

    def local_view_get(self, viewport: 'SpaceView3D') -> bool:
        ''' Get the local view state for this object

        :param viewport: Viewport in local view
        :type viewport: 'SpaceView3D'
        :rtype: bool
        :return: Object local view state
        '''
        pass

    def local_view_set(self, viewport: 'SpaceView3D', state: bool):
        ''' Set the local view state for this object

        :param viewport: Viewport in local view
        :type viewport: 'SpaceView3D'
        :param state: Local view state to define
        :type state: bool
        '''
        pass

    def visible_in_viewport_get(self, viewport: 'SpaceView3D') -> bool:
        ''' Check for local view and local collections for this viewport and object

        :param viewport: Viewport in local collections
        :type viewport: 'SpaceView3D'
        :rtype: bool
        :return: Object viewport visibility
        '''
        pass

    def convert_space(
            self,
            pose_bone: 'PoseBone' = None,
            matrix: typing.List[float] = ((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)),
            from_space: typing.Union[int, str] = 'WORLD',
            to_space: typing.Union[int, str] = 'WORLD') -> typing.List[float]:
        ''' Convert (transform) the given matrix from one space to another

        :param pose_bone: Bone to use to define spaces (may be None, in which case only the two 'WORLD' and 'LOCAL' spaces are usable)
        :type pose_bone: 'PoseBone'
        :param matrix: The matrix to transform
        :type matrix: typing.List[float]
        :param from_space: The space in which 'matrix' is currently * WORLD World Space -- The most global space in Blender. * POSE Pose Space -- The pose space of a bone (its armature's object space). * LOCAL_WITH_PARENT Local With Parent -- The rest pose local space of a bone (thus matrix includes parent transforms). * LOCAL Local Space -- The local space of an object/bone.
        :type from_space: typing.Union[int, str]
        :param to_space: The space to which you want to transform 'matrix' * WORLD World Space -- The most global space in Blender. * POSE Pose Space -- The pose space of a bone (its armature's object space). * LOCAL_WITH_PARENT Local With Parent -- The rest pose local space of a bone (thus matrix includes parent transforms). * LOCAL Local Space -- The local space of an object/bone.
        :type to_space: typing.Union[int, str]
        :rtype: typing.List[float]
        :return: The transformed matrix
        '''
        pass

    def calc_matrix_camera(self,
                           depsgraph: 'Depsgraph',
                           x: int = 1,
                           y: int = 1,
                           scale_x: float = 1.0,
                           scale_y: float = 1.0) -> typing.List[float]:
        ''' Generate the camera projection matrix of this object (mostly useful for Camera and Light types)

        :param depsgraph: Depsgraph to get evaluated data from
        :type depsgraph: 'Depsgraph'
        :param x: Width of the render area
        :type x: int
        :param y: Height of the render area
        :type y: int
        :param scale_x: Width scaling factor
        :type scale_x: float
        :param scale_y: Height scaling factor
        :type scale_y: float
        :rtype: typing.List[float]
        :return: The camera projection matrix
        '''
        pass

    def camera_fit_coords(self, depsgraph: 'Depsgraph',
                          coordinates: typing.List[float]):
        ''' Compute the coordinate (and scale for ortho cameras) given object should be to 'see' all given coordinates

        :param depsgraph: Depsgraph to get evaluated data from
        :type depsgraph: 'Depsgraph'
        :param coordinates: Coordinates to fit in
        :type coordinates: typing.List[float]
        '''
        pass

    def to_mesh(self,
                preserve_all_data_layers: bool = False,
                depsgraph: 'Depsgraph' = None) -> 'Mesh':
        ''' Create a Mesh data-block from the current state of the object. The object owns the data-block. To force free it use to_mesh_clear(). The result is temporary and can not be used by objects from the main database

        :param preserve_all_data_layers: Preserve all data layers in the mesh, like UV maps and vertex groups. By default Blender only computes the subset of data layers needed for viewport display and rendering, for better performance
        :type preserve_all_data_layers: bool
        :param depsgraph: Dependency Graph, Evaluated dependency graph which is required when preserve_all_data_layers is true
        :type depsgraph: 'Depsgraph'
        :rtype: 'Mesh'
        :return: Mesh created from object
        '''
        pass

    def to_mesh_clear(self):
        ''' Clears mesh data-block created by to_mesh()

        '''
        pass

    def to_curve(self, depsgraph: 'Depsgraph',
                 apply_modifiers: bool = False) -> 'Curve':
        ''' Create a Curve data-block from the current state of the object. This only works for curve and text objects. The object owns the data-block. To force free it, use to_curve_clear(). The result is temporary and can not be used by objects from the main database

        :param depsgraph: Dependency Graph, Evaluated dependency graph
        :type depsgraph: 'Depsgraph'
        :param apply_modifiers: Apply the deform modifiers on the control points of the curve. This is only supported for curve objects
        :type apply_modifiers: bool
        :rtype: 'Curve'
        :return: Curve created from object
        '''
        pass

    def to_curve_clear(self):
        ''' Clears curve data-block created by to_curve()

        '''
        pass

    def find_armature(self) -> 'Object':
        ''' Find armature influencing this object as a parent or via a modifier

        :rtype: 'Object'
        :return: Armature object influencing this object or NULL
        '''
        pass

    def shape_key_add(self, name: str = "Key",
                      from_mix: bool = True) -> 'ShapeKey':
        ''' Add shape key to this object

        :param name: Unique name for the new keyblock
        :type name: str
        :param from_mix: Create new shape from existing mix of shapes
        :type from_mix: bool
        :rtype: 'ShapeKey'
        :return: New shape keyblock
        '''
        pass

    def shape_key_remove(self, key: 'ShapeKey'):
        ''' Remove a Shape Key from this object

        :param key: Keyblock to be removed
        :type key: 'ShapeKey'
        '''
        pass

    def shape_key_clear(self):
        ''' Remove all Shape Keys from this object

        '''
        pass

    def ray_cast(self,
                 origin: typing.List[float],
                 direction: typing.List[float],
                 distance: float = 1.70141e+38,
                 depsgraph: 'Depsgraph' = None):
        ''' Cast a ray onto evaluated geometry, in object space (using context's or provided depsgraph to get evaluated mesh if needed)

        :param origin: Origin of the ray, in object space
        :type origin: typing.List[float]
        :param direction: Direction of the ray, in object space
        :type direction: typing.List[float]
        :param distance: Maximum distance
        :type distance: float
        :param depsgraph: Depsgraph to use to get evaluated data, when called from original object (only needed if current Context's depsgraph is not suitable)
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def closest_point_on_mesh(self,
                              origin: typing.List[float],
                              distance: float = 1.84467e+19,
                              depsgraph: 'Depsgraph' = None):
        ''' Find the nearest point on evaluated geometry, in object space (using context's or provided depsgraph to get evaluated mesh if needed)

        :param origin: Point to find closest geometry from (in object space)
        :type origin: typing.List[float]
        :param distance: Maximum distance
        :type distance: float
        :param depsgraph: Depsgraph to use to get evaluated data, when called from original object (only needed if current Context's depsgraph is not suitable)
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def is_modified(self, scene: 'Scene',
                    settings: typing.Union[int, str]) -> bool:
        ''' Determine if this object is modified from the base mesh data

        :param scene: Scene in which to check the object
        :type scene: 'Scene'
        :param settings: Modifier settings to apply * PREVIEW Preview -- Apply modifier preview settings. * RENDER Render -- Apply modifier render settings.
        :type settings: typing.Union[int, str]
        :rtype: bool
        :return: Whether the object is modified
        '''
        pass

    def is_deform_modified(self, scene: 'Scene',
                           settings: typing.Union[int, str]) -> bool:
        ''' Determine if this object is modified by a deformation from the base mesh data

        :param scene: Scene in which to check the object
        :type scene: 'Scene'
        :param settings: Modifier settings to apply * PREVIEW Preview -- Apply modifier preview settings. * RENDER Render -- Apply modifier render settings.
        :type settings: typing.Union[int, str]
        :rtype: bool
        :return: Whether the object is deform-modified
        '''
        pass

    def update_from_editmode(self) -> bool:
        ''' Load the objects edit-mode data into the object data

        :rtype: bool
        :return: Success
        '''
        pass

    def cache_release(self):
        ''' Release memory used by caches associated with this object. Intended to be used by render engines only

        '''
        pass

    def generate_gpencil_strokes(self,
                                 grease_pencil_object: 'Object',
                                 use_collections: bool = True,
                                 scale_thickness: float = 1.0,
                                 sample: float = 0.0) -> bool:
        ''' Convert a curve object to grease pencil strokes.

        :param grease_pencil_object: Grease Pencil object used to create new strokes
        :type grease_pencil_object: 'Object'
        :param use_collections: Use Collections
        :type use_collections: bool
        :param scale_thickness: Thickness scaling factor
        :type scale_thickness: float
        :param sample: Sample distance, zero to disable
        :type sample: float
        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PaintCurve(ID, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Palette(ID, bpy_struct):
    colors: typing.Union[typing.Dict[str, 'PaletteColor'], typing.
                         List['PaletteColor'], 'bpy_prop_collection',
                         'PaletteColors'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'PaletteColor'], typing.List['PaletteColor'], 'bpy_prop_collection', 'PaletteColors']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleSettings(ID, bpy_struct):
    ''' Particle settings, reusable by multiple particle systems
    '''

    active_instanceweight: 'ParticleDupliWeight' = None
    ''' 

    :type: 'ParticleDupliWeight'
    '''

    active_instanceweight_index: int = None
    ''' 

    :type: int
    '''

    active_texture: 'Texture' = None
    ''' Active texture slot being displayed

    :type: 'Texture'
    '''

    active_texture_index: int = None
    ''' Index of active texture slot

    :type: int
    '''

    adaptive_angle: int = None
    ''' How many degrees path has to curve to make another render segment

    :type: int
    '''

    adaptive_pixel: int = None
    ''' How many pixels path has to cover to make another render segment

    :type: int
    '''

    angular_velocity_factor: float = None
    ''' Angular velocity amount (in radians per second)

    :type: float
    '''

    angular_velocity_mode: typing.Union[int, str] = None
    ''' What axis is used to change particle rotation with time

    :type: typing.Union[int, str]
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    apply_effector_to_children: bool = None
    ''' Apply effectors to children

    :type: bool
    '''

    apply_guide_to_children: bool = None
    ''' 

    :type: bool
    '''

    bending_random: float = None
    ''' Random stiffness of hairs

    :type: float
    '''

    boids: 'BoidSettings' = None
    ''' 

    :type: 'BoidSettings'
    '''

    branch_threshold: float = None
    ''' Threshold of branching

    :type: float
    '''

    brownian_factor: float = None
    ''' Amount of random, erratic particle movement

    :type: float
    '''

    child_length: float = None
    ''' Length of child paths

    :type: float
    '''

    child_length_threshold: float = None
    ''' Amount of particles left untouched by child path length

    :type: float
    '''

    child_nbr: int = None
    ''' Number of children per parent

    :type: int
    '''

    child_parting_factor: float = None
    ''' Create parting in the children based on parent strands

    :type: float
    '''

    child_parting_max: float = None
    ''' Maximum root to tip angle (tip distance/root distance for long hair)

    :type: float
    '''

    child_parting_min: float = None
    ''' Minimum root to tip angle (tip distance/root distance for long hair)

    :type: float
    '''

    child_radius: float = None
    ''' Radius of children around parent

    :type: float
    '''

    child_roundness: float = None
    ''' Roundness of children around parent

    :type: float
    '''

    child_size: float = None
    ''' A multiplier for the child particle size

    :type: float
    '''

    child_size_random: float = None
    ''' Random variation to the size of the child particles

    :type: float
    '''

    child_type: typing.Union[int, str] = None
    ''' Create child particles

    :type: typing.Union[int, str]
    '''

    clump_curve: 'CurveMapping' = None
    ''' Curve defining clump tapering

    :type: 'CurveMapping'
    '''

    clump_factor: float = None
    ''' Amount of clumping

    :type: float
    '''

    clump_noise_size: float = None
    ''' Size of clump noise

    :type: float
    '''

    clump_shape: float = None
    ''' Shape of clumping

    :type: float
    '''

    collision_collection: 'Collection' = None
    ''' Limit colliders to this collection

    :type: 'Collection'
    '''

    color_maximum: float = None
    ''' Maximum length of the particle color vector

    :type: float
    '''

    count: int = None
    ''' Total number of particles

    :type: int
    '''

    courant_target: float = None
    ''' The relative distance a particle can move before requiring more subframes (target Courant number); 0.01 to 0.3 is the recommended range

    :type: float
    '''

    create_long_hair_children: bool = None
    ''' Calculate children that suit long hair well

    :type: bool
    '''

    damping: float = None
    ''' Amount of damping

    :type: float
    '''

    display_color: typing.Union[int, str] = None
    ''' Display additional particle data as a color

    :type: typing.Union[int, str]
    '''

    display_method: typing.Union[int, str] = None
    ''' How particles are displayed in viewport

    :type: typing.Union[int, str]
    '''

    display_percentage: int = None
    ''' Percentage of particles to display in 3D view

    :type: int
    '''

    display_size: float = None
    ''' Size of particles on viewport

    :type: float
    '''

    display_step: int = None
    ''' How many steps paths are displayed with (power of 2)

    :type: int
    '''

    distribution: typing.Union[int, str] = None
    ''' How to distribute particles on selected element

    :type: typing.Union[int, str]
    '''

    drag_factor: float = None
    ''' Amount of air drag

    :type: float
    '''

    effect_hair: float = None
    ''' Hair stiffness for effectors

    :type: float
    '''

    effector_amount: int = None
    ''' How many particles are effectors (0 is all particles)

    :type: int
    '''

    effector_weights: 'EffectorWeights' = None
    ''' 

    :type: 'EffectorWeights'
    '''

    emit_from: typing.Union[int, str] = None
    ''' Where to emit particles from

    :type: typing.Union[int, str]
    '''

    factor_random: float = None
    ''' Give the starting velocity a random variation

    :type: float
    '''

    fluid: 'SPHFluidSettings' = None
    ''' 

    :type: 'SPHFluidSettings'
    '''

    force_field_1: 'FieldSettings' = None
    ''' 

    :type: 'FieldSettings'
    '''

    force_field_2: 'FieldSettings' = None
    ''' 

    :type: 'FieldSettings'
    '''

    frame_end: float = None
    ''' Frame number to stop emitting particles

    :type: float
    '''

    frame_start: float = None
    ''' Frame number to start emitting particles

    :type: float
    '''

    grid_random: float = None
    ''' Add random offset to the grid locations

    :type: float
    '''

    grid_resolution: int = None
    ''' The resolution of the particle grid

    :type: int
    '''

    hair_length: float = None
    ''' Length of the hair

    :type: float
    '''

    hair_step: int = None
    ''' Number of hair segments

    :type: int
    '''

    hexagonal_grid: bool = None
    ''' Create the grid in a hexagonal pattern

    :type: bool
    '''

    instance_collection: 'Collection' = None
    ''' Show objects in this collection in place of particles

    :type: 'Collection'
    '''

    instance_object: 'Object' = None
    ''' Show this object in place of particles

    :type: 'Object'
    '''

    instance_weights: typing.Union[
        typing.Dict[str, 'ParticleDupliWeight'], typing.
        List['ParticleDupliWeight'], 'bpy_prop_collection'] = None
    ''' Weights for all of the objects in the instance collection

    :type: typing.Union[typing.Dict[str, 'ParticleDupliWeight'], typing.List['ParticleDupliWeight'], 'bpy_prop_collection']
    '''

    integrator: typing.Union[int, str] = None
    ''' Algorithm used to calculate physics, from the fastest to the most stable and accurate: Midpoint, Euler, Verlet, RK4

    :type: typing.Union[int, str]
    '''

    invert_grid: bool = None
    ''' Invert what is considered object and what is not

    :type: bool
    '''

    is_fluid: bool = None
    ''' Particles were created by a fluid simulation

    :type: bool
    '''

    jitter_factor: float = None
    ''' Amount of jitter applied to the sampling

    :type: float
    '''

    keyed_loops: int = None
    ''' Number of times the keys are looped

    :type: int
    '''

    keys_step: int = None
    ''' 

    :type: int
    '''

    kink: typing.Union[int, str] = None
    ''' Type of periodic offset on the path

    :type: typing.Union[int, str]
    '''

    kink_amplitude: float = None
    ''' The amplitude of the offset

    :type: float
    '''

    kink_amplitude_clump: float = None
    ''' How much clump affects kink amplitude

    :type: float
    '''

    kink_amplitude_random: float = None
    ''' Random variation of the amplitude

    :type: float
    '''

    kink_axis: typing.Union[int, str] = None
    ''' Which axis to use for offset

    :type: typing.Union[int, str]
    '''

    kink_axis_random: float = None
    ''' Random variation of the orientation

    :type: float
    '''

    kink_extra_steps: int = None
    ''' Extra steps for resolution of special kink features

    :type: int
    '''

    kink_flat: float = None
    ''' How flat the hairs are

    :type: float
    '''

    kink_frequency: float = None
    ''' The frequency of the offset (1/total length)

    :type: float
    '''

    kink_shape: float = None
    ''' Adjust the offset to the beginning/end

    :type: float
    '''

    length_random: float = None
    ''' Give path length a random variation

    :type: float
    '''

    lifetime: float = None
    ''' Life span of the particles

    :type: float
    '''

    lifetime_random: float = None
    ''' Give the particle life a random variation

    :type: float
    '''

    line_length_head: float = None
    ''' Length of the line's head

    :type: float
    '''

    line_length_tail: float = None
    ''' Length of the line's tail

    :type: float
    '''

    lock_boids_to_surface: bool = None
    ''' Constrain boids to a surface

    :type: bool
    '''

    mass: float = None
    ''' Mass of the particles

    :type: float
    '''

    material: int = None
    ''' Index of material slot used for rendering particles

    :type: int
    '''

    material_slot: typing.Union[int, str] = None
    ''' Material slot used for rendering particles

    :type: typing.Union[int, str]
    '''

    normal_factor: float = None
    ''' Let the surface normal give the particle a starting velocity

    :type: float
    '''

    object_align_factor: typing.List[float] = None
    ''' Let the emitter object orientation give the particle a starting velocity

    :type: typing.List[float]
    '''

    object_factor: float = None
    ''' Let the object give the particle a starting velocity

    :type: float
    '''

    particle_factor: float = None
    ''' Let the target particle give the particle a starting velocity

    :type: float
    '''

    particle_size: float = None
    ''' The size of the particles

    :type: float
    '''

    path_end: float = None
    ''' End time of path

    :type: float
    '''

    path_start: float = None
    ''' Starting time of path

    :type: float
    '''

    phase_factor: float = None
    ''' Rotation around the chosen orientation axis

    :type: float
    '''

    phase_factor_random: float = None
    ''' Randomize rotation around the chosen orientation axis

    :type: float
    '''

    physics_type: typing.Union[int, str] = None
    ''' Particle physics type

    :type: typing.Union[int, str]
    '''

    radius_scale: float = None
    ''' Multiplier of diameter properties

    :type: float
    '''

    react_event: typing.Union[int, str] = None
    ''' The event of target particles to react on

    :type: typing.Union[int, str]
    '''

    reactor_factor: float = None
    ''' Let the vector away from the target particle's location give the particle a starting velocity

    :type: float
    '''

    render_step: int = None
    ''' How many steps paths are rendered with (power of 2)

    :type: int
    '''

    render_type: typing.Union[int, str] = None
    ''' How particles are rendered

    :type: typing.Union[int, str]
    '''

    rendered_child_count: int = None
    ''' Number of children per parent for rendering

    :type: int
    '''

    root_radius: float = None
    ''' Strand diameter width at the root

    :type: float
    '''

    rotation_factor_random: float = None
    ''' Randomize particle orientation

    :type: float
    '''

    rotation_mode: typing.Union[int, str] = None
    ''' Particle orientation axis (does not affect Explode modifier's results)

    :type: typing.Union[int, str]
    '''

    roughness_1: float = None
    ''' Amount of location dependent roughness

    :type: float
    '''

    roughness_1_size: float = None
    ''' Size of location dependent roughness

    :type: float
    '''

    roughness_2: float = None
    ''' Amount of random roughness

    :type: float
    '''

    roughness_2_size: float = None
    ''' Size of random roughness

    :type: float
    '''

    roughness_2_threshold: float = None
    ''' Amount of particles left untouched by random roughness

    :type: float
    '''

    roughness_curve: 'CurveMapping' = None
    ''' Curve defining roughness

    :type: 'CurveMapping'
    '''

    roughness_end_shape: float = None
    ''' Shape of endpoint roughness

    :type: float
    '''

    roughness_endpoint: float = None
    ''' Amount of endpoint roughness

    :type: float
    '''

    shape: float = None
    ''' Strand shape parameter

    :type: float
    '''

    show_guide_hairs: bool = None
    ''' Show guide hairs

    :type: bool
    '''

    show_hair_grid: bool = None
    ''' Show hair simulation grid

    :type: bool
    '''

    show_health: bool = None
    ''' Display boid health

    :type: bool
    '''

    show_number: bool = None
    ''' Show particle number

    :type: bool
    '''

    show_size: bool = None
    ''' Show particle size

    :type: bool
    '''

    show_unborn: bool = None
    ''' Show particles before they are emitted

    :type: bool
    '''

    show_velocity: bool = None
    ''' Show particle velocity

    :type: bool
    '''

    size_random: float = None
    ''' Give the particle size a random variation

    :type: float
    '''

    subframes: int = None
    ''' Subframes to simulate for improved stability and finer granularity simulations (dt = timestep / (subframes + 1))

    :type: int
    '''

    tangent_factor: float = None
    ''' Let the surface tangent give the particle a starting velocity

    :type: float
    '''

    tangent_phase: float = None
    ''' Rotate the surface tangent

    :type: float
    '''

    texture_slots: typing.Union[
        typing.Dict[str, 'ParticleSettingsTextureSlot'], typing.
        List['ParticleSettingsTextureSlot'], 'bpy_prop_collection',
        'ParticleSettingsTextureSlots'] = None
    ''' Texture slots defining the mapping and influence of textures

    :type: typing.Union[typing.Dict[str, 'ParticleSettingsTextureSlot'], typing.List['ParticleSettingsTextureSlot'], 'bpy_prop_collection', 'ParticleSettingsTextureSlots']
    '''

    time_tweak: float = None
    ''' A multiplier for physics timestep (1.0 means one frame = 1/25 seconds)

    :type: float
    '''

    timestep: float = None
    ''' The simulation timestep per frame (seconds per frame)

    :type: float
    '''

    tip_radius: float = None
    ''' Strand diameter width at the tip

    :type: float
    '''

    trail_count: int = None
    ''' Number of trail particles

    :type: int
    '''

    twist: float = None
    ''' Number of turns around parent along the strand

    :type: float
    '''

    twist_curve: 'CurveMapping' = None
    ''' Curve defining twist

    :type: 'CurveMapping'
    '''

    type: typing.Union[int, str] = None
    ''' Particle type

    :type: typing.Union[int, str]
    '''

    use_absolute_path_time: bool = None
    ''' Path timing is in absolute frames

    :type: bool
    '''

    use_adaptive_subframes: bool = None
    ''' Automatically set the number of subframes

    :type: bool
    '''

    use_advanced_hair: bool = None
    ''' Use full physics calculations for growing hair

    :type: bool
    '''

    use_close_tip: bool = None
    ''' Set tip radius to zero

    :type: bool
    '''

    use_clump_curve: bool = None
    ''' Use a curve to define clump tapering

    :type: bool
    '''

    use_clump_noise: bool = None
    ''' Create random clumps around the parent

    :type: bool
    '''

    use_collection_count: bool = None
    ''' Use object multiple times in the same collection

    :type: bool
    '''

    use_collection_pick_random: bool = None
    ''' Pick objects from collection randomly

    :type: bool
    '''

    use_dead: bool = None
    ''' Show particles after they have died

    :type: bool
    '''

    use_die_on_collision: bool = None
    ''' Particles die when they collide with a deflector object

    :type: bool
    '''

    use_dynamic_rotation: bool = None
    ''' Particle rotations are affected by collisions and effectors

    :type: bool
    '''

    use_emit_random: bool = None
    ''' Emit in random order of elements

    :type: bool
    '''

    use_even_distribution: bool = None
    ''' Use even distribution from faces based on face areas or edge lengths

    :type: bool
    '''

    use_global_instance: bool = None
    ''' Use object's global coordinates for duplication

    :type: bool
    '''

    use_hair_bspline: bool = None
    ''' Interpolate hair using B-Splines

    :type: bool
    '''

    use_modifier_stack: bool = None
    ''' Emit particles from mesh with modifiers applied (must use same subdivision surface level for viewport and render for correct results)

    :type: bool
    '''

    use_multiply_size_mass: bool = None
    ''' Multiply mass by particle size

    :type: bool
    '''

    use_parent_particles: bool = None
    ''' Render parent particles

    :type: bool
    '''

    use_react_multiple: bool = None
    ''' React multiple times

    :type: bool
    '''

    use_react_start_end: bool = None
    ''' Give birth to unreacted particles eventually

    :type: bool
    '''

    use_regrow_hair: bool = None
    ''' Regrow hair for each frame

    :type: bool
    '''

    use_render_adaptive: bool = None
    ''' Display steps of the particle path

    :type: bool
    '''

    use_rotation_instance: bool = None
    ''' Use object's rotation for duplication (global x-axis is aligned particle rotation axis)

    :type: bool
    '''

    use_rotations: bool = None
    ''' Calculate particle rotations

    :type: bool
    '''

    use_roughness_curve: bool = None
    ''' Use a curve to define roughness

    :type: bool
    '''

    use_scale_instance: bool = None
    ''' Use object's scale for duplication

    :type: bool
    '''

    use_self_effect: bool = None
    ''' Particle effectors affect themselves

    :type: bool
    '''

    use_size_deflect: bool = None
    ''' Use particle's size in deflection

    :type: bool
    '''

    use_strand_primitive: bool = None
    ''' Use the strand primitive for rendering

    :type: bool
    '''

    use_twist_curve: bool = None
    ''' Use a curve to define twist

    :type: bool
    '''

    use_velocity_length: bool = None
    ''' Multiply line length by particle speed

    :type: bool
    '''

    use_whole_collection: bool = None
    ''' Use whole collection at once

    :type: bool
    '''

    userjit: int = None
    ''' Emission locations per face (0 = automatic)

    :type: int
    '''

    virtual_parents: float = None
    ''' Relative amount of virtual parents

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PointCloud(ID, bpy_struct):
    ''' Point cloud data-block
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    attributes: typing.Union[typing.Dict[str, 'Attribute'], typing.
                             List['Attribute'], 'bpy_prop_collection',
                             'AttributeGroup'] = None
    ''' Geometry attributes

    :type: typing.Union[typing.Dict[str, 'Attribute'], typing.List['Attribute'], 'bpy_prop_collection', 'AttributeGroup']
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'IDMaterials'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'IDMaterials']
    '''

    points: typing.Union[typing.Dict[str, 'Point'], typing.
                         List['Point'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Point'], typing.List['Point'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Scene(ID, bpy_struct):
    ''' Scene data-block, consisting in objects and defining time and render related settings
    '''

    active_clip: 'MovieClip' = None
    ''' Active movie clip used for constraints and viewport drawing

    :type: 'MovieClip'
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    audio_distance_model: typing.Union[int, str] = None
    ''' Distance model for distance attenuation calculation * NONE None -- No distance attenuation. * INVERSE Inverse -- Inverse distance model. * INVERSE_CLAMPED Inverse Clamped -- Inverse distance model with clamping. * LINEAR Linear -- Linear distance model. * LINEAR_CLAMPED Linear Clamped -- Linear distance model with clamping. * EXPONENT Exponent -- Exponent distance model. * EXPONENT_CLAMPED Exponent Clamped -- Exponent distance model with clamping.

    :type: typing.Union[int, str]
    '''

    audio_doppler_factor: float = None
    ''' Pitch factor for Doppler effect calculation

    :type: float
    '''

    audio_doppler_speed: float = None
    ''' Speed of sound for Doppler effect calculation

    :type: float
    '''

    audio_volume: float = None
    ''' Audio volume

    :type: float
    '''

    background_set: 'Scene' = None
    ''' Background set scene

    :type: 'Scene'
    '''

    camera: 'Object' = None
    ''' Active camera, used for rendering the scene

    :type: 'Object'
    '''

    collection: 'Collection' = None
    ''' Scene root collection that owns all the objects and other collections instantiated in the scene

    :type: 'Collection'
    '''

    cursor: 'View3DCursor' = None
    ''' 

    :type: 'View3DCursor'
    '''

    cycles = None
    ''' Cycles render settings'''

    cycles_curves = None
    ''' Cycles hair rendering settings'''

    display: 'SceneDisplay' = None
    ''' Scene display settings for 3D viewport

    :type: 'SceneDisplay'
    '''

    display_settings: 'ColorManagedDisplaySettings' = None
    ''' Settings of device saved image would be displayed on

    :type: 'ColorManagedDisplaySettings'
    '''

    eevee: 'SceneEEVEE' = None
    ''' Eevee settings for the scene

    :type: 'SceneEEVEE'
    '''

    frame_current: int = None
    ''' Current frame, to update animation data from python frame_set() instead

    :type: int
    '''

    frame_current_final: float = None
    ''' Current frame with subframe and time remapping applied

    :type: float
    '''

    frame_end: int = None
    ''' Final frame of the playback/rendering range

    :type: int
    '''

    frame_float: float = None
    ''' 

    :type: float
    '''

    frame_preview_end: int = None
    ''' Alternative end frame for UI playback

    :type: int
    '''

    frame_preview_start: int = None
    ''' Alternative start frame for UI playback

    :type: int
    '''

    frame_start: int = None
    ''' First frame of the playback/rendering range

    :type: int
    '''

    frame_step: int = None
    ''' Number of frames to skip forward while rendering/playing back each frame

    :type: int
    '''

    frame_subframe: float = None
    ''' 

    :type: float
    '''

    gravity: typing.List[float] = None
    ''' Constant acceleration in a given direction

    :type: typing.List[float]
    '''

    grease_pencil: 'GreasePencil' = None
    ''' Grease Pencil data-block used for annotations in the 3D view

    :type: 'GreasePencil'
    '''

    grease_pencil_settings: 'SceneGpencil' = None
    ''' Grease Pencil settings for the scene

    :type: 'SceneGpencil'
    '''

    is_nla_tweakmode: bool = None
    ''' Whether there is any action referenced by NLA being edited (strictly read-only)

    :type: bool
    '''

    keying_sets: typing.Union[typing.Dict[str, 'KeyingSet'], typing.
                              List['KeyingSet'], 'bpy_prop_collection',
                              'KeyingSets'] = None
    ''' Absolute Keying Sets for this Scene

    :type: typing.Union[typing.Dict[str, 'KeyingSet'], typing.List['KeyingSet'], 'bpy_prop_collection', 'KeyingSets']
    '''

    keying_sets_all: typing.Union[typing.Dict[str, 'KeyingSet'], typing.
                                  List['KeyingSet'], 'bpy_prop_collection',
                                  'KeyingSetsAll'] = None
    ''' All Keying Sets available for use (Builtins and Absolute Keying Sets for this Scene)

    :type: typing.Union[typing.Dict[str, 'KeyingSet'], typing.List['KeyingSet'], 'bpy_prop_collection', 'KeyingSetsAll']
    '''

    lock_frame_selection_to_range: bool = None
    ''' Don't allow frame to be selected with mouse outside of frame range

    :type: bool
    '''

    node_tree: 'NodeTree' = None
    ''' Compositing node tree

    :type: 'NodeTree'
    '''

    objects: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'],
                          'bpy_prop_collection', 'SceneObjects'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Object'], typing.List['Object'], 'bpy_prop_collection', 'SceneObjects']
    '''

    render: 'RenderSettings' = None
    ''' 

    :type: 'RenderSettings'
    '''

    rigidbody_world: 'RigidBodyWorld' = None
    ''' 

    :type: 'RigidBodyWorld'
    '''

    safe_areas: 'DisplaySafeAreas' = None
    ''' 

    :type: 'DisplaySafeAreas'
    '''

    sequence_editor: 'SequenceEditor' = None
    ''' 

    :type: 'SequenceEditor'
    '''

    sequencer_colorspace_settings: 'ColorManagedSequencerColorspaceSettings' = None
    ''' Settings of color space sequencer is working in

    :type: 'ColorManagedSequencerColorspaceSettings'
    '''

    show_keys_from_selected_only: bool = None
    ''' Consider keyframes for active object and/or its selected bones only (in timeline and when jumping between keyframes)

    :type: bool
    '''

    show_subframe: bool = None
    ''' Show current scene subframe and allow set it using interface tools

    :type: bool
    '''

    sync_mode: typing.Union[int, str] = None
    ''' How to sync playback * NONE Play Every Frame -- Do not sync, play every frame. * FRAME_DROP Frame Dropping -- Drop frames if playback is too slow. * AUDIO_SYNC Sync to Audio -- Sync to audio playback, dropping frames.

    :type: typing.Union[int, str]
    '''

    timeline_markers: typing.Union[
        typing.Dict[str, 'TimelineMarker'], typing.List['TimelineMarker'],
        'bpy_prop_collection', 'TimelineMarkers'] = None
    ''' Markers used in all timelines for the current scene

    :type: typing.Union[typing.Dict[str, 'TimelineMarker'], typing.List['TimelineMarker'], 'bpy_prop_collection', 'TimelineMarkers']
    '''

    tool_settings: 'ToolSettings' = None
    ''' 

    :type: 'ToolSettings'
    '''

    transform_orientation_slots: typing.Union[
        typing.Dict[str, 'TransformOrientationSlot'], typing.
        List['TransformOrientationSlot'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'TransformOrientationSlot'], typing.List['TransformOrientationSlot'], 'bpy_prop_collection']
    '''

    unit_settings: 'UnitSettings' = None
    ''' Unit editing settings

    :type: 'UnitSettings'
    '''

    use_audio: bool = None
    ''' Play back of audio from Sequence Editor will be muted

    :type: bool
    '''

    use_audio_scrub: bool = None
    ''' Play audio from Sequence Editor while scrubbing

    :type: bool
    '''

    use_gravity: bool = None
    ''' Use global gravity for all dynamics

    :type: bool
    '''

    use_nodes: bool = None
    ''' Enable the compositing node tree

    :type: bool
    '''

    use_preview_range: bool = None
    ''' Use an alternative start/end frame range for animation playback and view renders

    :type: bool
    '''

    use_stamp_note: str = None
    ''' User defined note for the render stamping

    :type: str
    '''

    view_layers: typing.Union[typing.Dict[str, 'ViewLayer'], typing.
                              List['ViewLayer'], 'bpy_prop_collection',
                              'ViewLayers'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'ViewLayer'], typing.List['ViewLayer'], 'bpy_prop_collection', 'ViewLayers']
    '''

    view_settings: 'ColorManagedViewSettings' = None
    ''' Color management settings applied on image before saving

    :type: 'ColorManagedViewSettings'
    '''

    world: 'World' = None
    ''' World used for rendering the scene

    :type: 'World'
    '''

    @classmethod
    def update_render_engine(cls):
        ''' Trigger a render engine update

        '''
        pass

    def statistics(self, view_layer: 'ViewLayer') -> str:
        ''' statistics

        :param view_layer: View Layer
        :type view_layer: 'ViewLayer'
        :rtype: str
        :return: Statistics
        '''
        pass

    def frame_set(self, frame: int, subframe: float = 0.0):
        ''' Set scene frame updating all objects immediately

        :param frame: Frame number to set
        :type frame: int
        :param subframe: Subframe time, between 0.0 and 1.0
        :type subframe: float
        '''
        pass

    def uvedit_aspect(self, object: 'Object') -> typing.List[float]:
        ''' Get uv aspect for current object

        :param object: Object
        :type object: 'Object'
        :rtype: typing.List[float]
        :return: aspect
        '''
        pass

    def ray_cast(self,
                 depsgraph: 'Depsgraph',
                 origin: typing.List[float],
                 direction: typing.List[float],
                 distance: float = 1.70141e+38):
        ''' Cast a ray onto in object space

        :param depsgraph: The current dependency graph
        :type depsgraph: 'Depsgraph'
        :param origin: 
        :type origin: typing.List[float]
        :param direction: 
        :type direction: typing.List[float]
        :param distance: Maximum distance
        :type distance: float
        '''
        pass

    def sequence_editor_create(self) -> 'SequenceEditor':
        ''' Ensure sequence editor is valid in this scene

        :rtype: 'SequenceEditor'
        :return: New sequence editor data or NULL
        '''
        pass

    def sequence_editor_clear(self):
        ''' Clear sequence editor in this scene

        '''
        pass

    def alembic_export(self,
                       filepath: str,
                       frame_start: int = 1,
                       frame_end: int = 1,
                       xform_samples: int = 1,
                       geom_samples: int = 1,
                       shutter_open: float = 0.0,
                       shutter_close: float = 1.0,
                       selected_only: bool = False,
                       uvs: bool = True,
                       normals: bool = True,
                       vcolors: bool = False,
                       apply_subdiv: bool = True,
                       flatten: bool = False,
                       visible_objects_only: bool = False,
                       face_sets: bool = False,
                       subdiv_schema: bool = False,
                       export_hair: bool = True,
                       export_particles: bool = True,
                       packuv: bool = False,
                       scale: float = 1.0,
                       triangulate: bool = False,
                       quad_method: typing.Union[int, str] = 'BEAUTY',
                       ngon_method: typing.Union[int, str] = 'BEAUTY'):
        ''' Export to Alembic file (deprecated, use the Alembic export operator)

        :param filepath: File Path, File path to write Alembic file
        :type filepath: str
        :param frame_start: Start, Start Frame
        :type frame_start: int
        :param frame_end: End, End Frame
        :type frame_end: int
        :param xform_samples: Xform samples, Transform samples per frame
        :type xform_samples: int
        :param geom_samples: Geom samples, Geometry samples per frame
        :type geom_samples: int
        :param shutter_open: Shutter open
        :type shutter_open: float
        :param shutter_close: Shutter close
        :type shutter_close: float
        :param selected_only: Selected only, Export only selected objects
        :type selected_only: bool
        :param uvs: UVs, Export UVs
        :type uvs: bool
        :param normals: Normals, Export normals
        :type normals: bool
        :param vcolors: Vertex colors, Export vertex colors
        :type vcolors: bool
        :param apply_subdiv: Subsurfs as meshes, Export subdivision surfaces as meshes
        :type apply_subdiv: bool
        :param flatten: Flatten hierarchy, Flatten hierarchy
        :type flatten: bool
        :param visible_objects_only: Visible layers only, Export only objects in visible layers
        :type visible_objects_only: bool
        :param face_sets: Facesets, Export face sets
        :type face_sets: bool
        :param subdiv_schema: Use Alembic subdivision Schema, Use Alembic subdivision Schema
        :type subdiv_schema: bool
        :param export_hair: Export Hair, Exports hair particle systems as animated curves
        :type export_hair: bool
        :param export_particles: Export Particles, Exports non-hair particle systems
        :type export_particles: bool
        :param packuv: Export with packed UV islands, Export with packed UV islands
        :type packuv: bool
        :param scale: Scale, Value by which to enlarge or shrink the objects with respect to the world's origin
        :type scale: float
        :param triangulate: Triangulate, Export polygons (quads and n-gons) as triangles
        :type triangulate: bool
        :param quad_method: Quad Method, Method for splitting the quads into triangles * BEAUTY Beauty -- Split the quads in nice triangles, slower method. * FIXED Fixed -- Split the quads on the first and third vertices. * FIXED_ALTERNATE Fixed Alternate -- Split the quads on the 2nd and 4th vertices. * SHORTEST_DIAGONAL Shortest Diagonal -- Split the quads based on the distance between the vertices.
        :type quad_method: typing.Union[int, str]
        :param ngon_method: N-gon Method, Method for splitting the n-gons into triangles * BEAUTY Beauty -- Arrange the new triangles evenly (slow). * CLIP Clip -- Split the polygons with an ear clipping algorithm.
        :type ngon_method: typing.Union[int, str]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Screen(ID, bpy_struct):
    ''' Screen data-block, defining the layout of areas in a window
    '''

    areas: typing.Union[typing.Dict[str, 'Area'], typing.
                        List['Area'], 'bpy_prop_collection'] = None
    ''' Areas the screen is subdivided into

    :type: typing.Union[typing.Dict[str, 'Area'], typing.List['Area'], 'bpy_prop_collection']
    '''

    is_animation_playing: bool = None
    ''' Animation playback is active

    :type: bool
    '''

    is_scrubbing: bool = None
    ''' True when the user is scrubbing through time

    :type: bool
    '''

    is_temporary: bool = None
    ''' 

    :type: bool
    '''

    show_fullscreen: bool = None
    ''' An area is maximized, filling this screen

    :type: bool
    '''

    show_statusbar: bool = None
    ''' Show status bar

    :type: bool
    '''

    use_follow: bool = None
    ''' Follow current frame in editors

    :type: bool
    '''

    use_play_3d_editors: bool = None
    ''' 

    :type: bool
    '''

    use_play_animation_editors: bool = None
    ''' 

    :type: bool
    '''

    use_play_clip_editors: bool = None
    ''' 

    :type: bool
    '''

    use_play_image_editors: bool = None
    ''' 

    :type: bool
    '''

    use_play_node_editors: bool = None
    ''' 

    :type: bool
    '''

    use_play_properties_editors: bool = None
    ''' 

    :type: bool
    '''

    use_play_sequence_editors: bool = None
    ''' 

    :type: bool
    '''

    use_play_top_left_3d_editor: bool = None
    ''' 

    :type: bool
    '''

    def statusbar_info(self) -> str:
        ''' statusbar_info

        :rtype: str
        :return: Status Bar Info
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Simulation(ID, bpy_struct):
    ''' Simulation data-block
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    node_tree: 'NodeTree' = None
    ''' Node tree defining the simulation

    :type: 'NodeTree'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Sound(ID, bpy_struct):
    ''' Sound data-block referencing an external or packed sound file
    '''

    filepath: str = None
    ''' Sound sample file used by this Sound data-block

    :type: str
    '''

    packed_file: 'PackedFile' = None
    ''' 

    :type: 'PackedFile'
    '''

    use_memory_cache: bool = None
    ''' The sound file is decoded and loaded into RAM

    :type: bool
    '''

    use_mono: bool = None
    ''' If the file contains multiple audio channels they are rendered to a single one

    :type: bool
    '''

    factory = None
    ''' The aud.Factory object of the sound. (readonly)'''

    def pack(self):
        ''' Pack the sound into the current blend file

        '''
        pass

    def unpack(self, method: typing.Union[int, str] = 'USE_LOCAL'):
        ''' Unpack the sound to the samples filename

        :param method: method, How to unpack
        :type method: typing.Union[int, str]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Speaker(ID, bpy_struct):
    ''' Speaker data-block for 3D audio speaker objects
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    attenuation: float = None
    ''' How strong the distance affects volume, depending on distance model

    :type: float
    '''

    cone_angle_inner: float = None
    ''' Angle of the inner cone, in degrees, inside the cone the volume is 100%

    :type: float
    '''

    cone_angle_outer: float = None
    ''' Angle of the outer cone, in degrees, outside this cone the volume is the outer cone volume, between inner and outer cone the volume is interpolated

    :type: float
    '''

    cone_volume_outer: float = None
    ''' Volume outside the outer cone

    :type: float
    '''

    distance_max: float = None
    ''' Maximum distance for volume calculation, no matter how far away the object is

    :type: float
    '''

    distance_reference: float = None
    ''' Reference distance at which volume is 100%

    :type: float
    '''

    muted: bool = None
    ''' Mute the speaker

    :type: bool
    '''

    pitch: float = None
    ''' Playback pitch of the sound

    :type: float
    '''

    sound: 'Sound' = None
    ''' Sound data-block used by this speaker

    :type: 'Sound'
    '''

    volume: float = None
    ''' How loud the sound is

    :type: float
    '''

    volume_max: float = None
    ''' Maximum volume, no matter how near the object is

    :type: float
    '''

    volume_min: float = None
    ''' Minimum volume, no matter how far away the object is

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Text(ID, bpy_struct):
    ''' Text data-block referencing an external or packed text file
    '''

    current_character: int = None
    ''' Index of current character in current line, and also start index of character in selection if one exists

    :type: int
    '''

    current_line: 'TextLine' = None
    ''' Current line, and start line of selection if one exists

    :type: 'TextLine'
    '''

    current_line_index: int = None
    ''' Index of current TextLine in TextLine collection

    :type: int
    '''

    filepath: str = None
    ''' Filename of the text file

    :type: str
    '''

    indentation: typing.Union[int, str] = None
    ''' Use tabs or spaces for indentation * TABS Tabs -- Indent using tabs. * SPACES Spaces -- Indent using spaces.

    :type: typing.Union[int, str]
    '''

    is_dirty: bool = None
    ''' Text file has been edited since last save

    :type: bool
    '''

    is_in_memory: bool = None
    ''' Text file is in memory, without a corresponding file on disk

    :type: bool
    '''

    is_modified: bool = None
    ''' Text file on disk is different than the one in memory

    :type: bool
    '''

    lines: typing.Union[typing.Dict[str, 'TextLine'], typing.
                        List['TextLine'], 'bpy_prop_collection'] = None
    ''' Lines of text

    :type: typing.Union[typing.Dict[str, 'TextLine'], typing.List['TextLine'], 'bpy_prop_collection']
    '''

    select_end_character: int = None
    ''' Index of character after end of selection in the selection end line

    :type: int
    '''

    select_end_line: 'TextLine' = None
    ''' End line of selection

    :type: 'TextLine'
    '''

    select_end_line_index: int = None
    ''' Index of last TextLine in selection

    :type: int
    '''

    use_module: bool = None
    ''' Run this text as a Python script on loading

    :type: bool
    '''

    def clear(self):
        ''' clear the text block

        '''
        pass

    def write(self, text: str):
        ''' write text at the cursor location and advance to the end of the text block

        :param text: New text for this data-block
        :type text: str
        '''
        pass

    def is_syntax_highlight_supported(self):
        ''' Returns True if the editor supports syntax highlighting for the current text datablock

        '''
        pass

    def select_set(self, line_start: int, char_start: int, line_end: int,
                   char_end: int):
        ''' Set selection range by line and character index

        :param line_start: Start Line
        :type line_start: int
        :param char_start: Start Character
        :type char_start: int
        :param line_end: End Line
        :type line_end: int
        :param char_end: End Character
        :type char_end: int
        '''
        pass

    def cursor_set(self, line: int, character: int = 0, select: bool = False):
        ''' Set cursor by line and (optionally) character index

        :param line: Line
        :type line: int
        :param character: Character
        :type character: int
        :param select: Select when moving the cursor
        :type select: bool
        '''
        pass

    def as_module(self):
        ''' 

        '''
        pass

    def as_string(self):
        ''' Return the text as a string.

        '''
        pass

    def from_string(self, string):
        ''' Replace text with this string.

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Texture(ID, bpy_struct):
    ''' Texture data-block used by materials, lights, worlds and brushes
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    color_ramp: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    contrast: float = None
    ''' Adjust the contrast of the texture

    :type: float
    '''

    factor_blue: float = None
    ''' 

    :type: float
    '''

    factor_green: float = None
    ''' 

    :type: float
    '''

    factor_red: float = None
    ''' 

    :type: float
    '''

    intensity: float = None
    ''' Adjust the brightness of the texture

    :type: float
    '''

    node_tree: 'NodeTree' = None
    ''' Node tree for node-based textures

    :type: 'NodeTree'
    '''

    saturation: float = None
    ''' Adjust the saturation of colors in the texture

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' * NONE None. * BLEND Blend -- Procedural - create a ramp texture. * CLOUDS Clouds -- Procedural - create a cloud-like fractal noise texture. * DISTORTED_NOISE Distorted Noise -- Procedural - noise texture distorted by two noise algorithms. * IMAGE Image or Movie -- Allow for images or movies to be used as textures. * MAGIC Magic -- Procedural - color texture based on trigonometric functions. * MARBLE Marble -- Procedural - marble-like noise texture with wave generated bands. * MUSGRAVE Musgrave -- Procedural - highly flexible fractal noise texture. * NOISE Noise -- Procedural - random noise, gives a different result every time, for every frame, for every pixel. * STUCCI Stucci -- Procedural - create a fractal noise texture. * VORONOI Voronoi -- Procedural - create cell-like patterns based on Worley noise. * WOOD Wood -- Procedural - wave generated bands or rings, with optional noise.

    :type: typing.Union[int, str]
    '''

    use_clamp: bool = None
    ''' Set negative texture RGB and intensity values to zero, for some uses like displacement this option can be disabled to get the full range

    :type: bool
    '''

    use_color_ramp: bool = None
    ''' Map the texture intensity to the color ramp. Note that the alpha value is used for image textures, enable "Calculate Alpha" for images without an alpha channel

    :type: bool
    '''

    use_nodes: bool = None
    ''' Make this a node-based texture

    :type: bool
    '''

    use_preview_alpha: bool = None
    ''' Show Alpha in Preview Render

    :type: bool
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    def evaluate(self, value: typing.List[float]) -> typing.List[float]:
        ''' Evaluate the texture at the a given coordinate and returns the result

        :param value: The coordinates (x,y,z) of the texture, in case of a 3D texture, the z value is the slice of the texture that is evaluated. For 2D textures such as images, the z value is ignored
        :type value: typing.List[float]
        :rtype: typing.List[float]
        :return: The result of the texture where (x,y,z,w) are (red, green, blue, intensity). For grayscale textures, often intensity only will be used
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VectorFont(ID, bpy_struct):
    ''' Vector font for Text objects
    '''

    filepath: str = None
    ''' 

    :type: str
    '''

    packed_file: 'PackedFile' = None
    ''' 

    :type: 'PackedFile'
    '''

    def pack(self):
        ''' Pack the font into the current blend file

        '''
        pass

    def unpack(self, method: typing.Union[int, str] = 'USE_LOCAL'):
        ''' Unpack the font to the samples filename

        :param method: method, How to unpack
        :type method: typing.Union[int, str]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Volume(ID, bpy_struct):
    ''' Volume data-block for 3D volume grids
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    display: 'VolumeDisplay' = None
    ''' Volume display settings for 3D viewport

    :type: 'VolumeDisplay'
    '''

    filepath: str = None
    ''' Volume file used by this Volume data-block

    :type: str
    '''

    frame_duration: int = None
    ''' Number of frames of the sequence to use

    :type: int
    '''

    frame_offset: int = None
    ''' Offset the number of the frame to use in the animation

    :type: int
    '''

    frame_start: int = None
    ''' Global starting frame of the sequence, assuming first has a #1

    :type: int
    '''

    grids: typing.Union[typing.Dict[str, 'VolumeGrid'], typing.
                        List['VolumeGrid'], 'bpy_prop_collection',
                        'VolumeGrids'] = None
    ''' 3D volume grids

    :type: typing.Union[typing.Dict[str, 'VolumeGrid'], typing.List['VolumeGrid'], 'bpy_prop_collection', 'VolumeGrids']
    '''

    is_sequence: bool = None
    ''' Whether the cache is separated in a series of files

    :type: bool
    '''

    materials: typing.Union[typing.Dict[str, 'Material'], typing.
                            List['Material'], 'bpy_prop_collection',
                            'IDMaterials'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'Material'], typing.List['Material'], 'bpy_prop_collection', 'IDMaterials']
    '''

    packed_file: 'PackedFile' = None
    ''' 

    :type: 'PackedFile'
    '''

    render: 'VolumeRender' = None
    ''' Volume render settings for 3D viewport

    :type: 'VolumeRender'
    '''

    sequence_mode: typing.Union[int, str] = None
    ''' Sequence playback mode * CLIP Clip -- Hide frames outside the specified frame range. * EXTEND Extend -- Repeat the start frame before, and the end frame after the frame range. * REPEAT Repeat -- Cycle the frames in the sequence. * PING_PONG Ping-Pong -- Repeat the frames, reversing the playback direction every other cycle.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WindowManager(ID, bpy_struct):
    ''' Window manager data-block defining open windows and other user interface data
    '''

    addon_filter: typing.Union[int, str] = None
    ''' Filter add-ons by category

    :type: typing.Union[int, str]
    '''

    addon_search: str = None
    ''' Search within the selected filter

    :type: str
    '''

    addon_support: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Display support level * OFFICIAL Official -- Officially supported. * COMMUNITY Community -- Maintained by community developers. * TESTING Testing -- Newly contributed scripts (excluded from release builds).

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    asset_path_dummy: str = None
    ''' Full path to the Blender file containing the active asset

    :type: str
    '''

    is_interface_locked: bool = None
    ''' If true, the interface is currently locked by a running job and data shouldn't be modified from application timers. Otherwise, the running job might conflict with the handler causing unexpected results or even crashes

    :type: bool
    '''

    keyconfigs: typing.Union[typing.Dict[str, 'KeyConfig'], typing.
                             List['KeyConfig'], 'bpy_prop_collection',
                             'KeyConfigurations'] = None
    ''' Registered key configurations

    :type: typing.Union[typing.Dict[str, 'KeyConfig'], typing.List['KeyConfig'], 'bpy_prop_collection', 'KeyConfigurations']
    '''

    operators: typing.Union[typing.Dict[str, 'Operator'], typing.
                            List['Operator'], 'bpy_prop_collection'] = None
    ''' Operator registry

    :type: typing.Union[typing.Dict[str, 'Operator'], typing.List['Operator'], 'bpy_prop_collection']
    '''

    pose_assets: typing.Union[typing.Dict[str, 'AssetHandle'], typing.
                              List['AssetHandle'],
                              'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'AssetHandle'], typing.List['AssetHandle'], 'bpy_prop_collection']
    '''

    poselib_flipped: bool = None
    ''' 

    :type: bool
    '''

    poselib_previous_action: 'Action' = None
    ''' 

    :type: 'Action'
    '''

    preset_name: str = None
    ''' Name for new preset

    :type: str
    '''

    windows: typing.Union[typing.Dict[str, 'Window'], typing.
                          List['Window'], 'bpy_prop_collection'] = None
    ''' Open windows

    :type: typing.Union[typing.Dict[str, 'Window'], typing.List['Window'], 'bpy_prop_collection']
    '''

    xr_session_settings: 'XrSessionSettings' = None
    ''' 

    :type: 'XrSessionSettings'
    '''

    xr_session_state: 'XrSessionState' = None
    ''' Runtime state information about the VR session

    :type: 'XrSessionState'
    '''

    @classmethod
    def fileselect_add(cls, operator: 'Operator'):
        ''' Opens a file selector with an operator. The string properties 'filepath', 'filename', 'directory' and a 'files' collection are assigned when present in the operator

        :param operator: Operator to call
        :type operator: 'Operator'
        '''
        pass

    @classmethod
    def modal_handler_add(cls, operator: 'Operator') -> bool:
        ''' Add a modal handler to the window manager, for the given modal operator (called by invoke() with self, just before returning {'RUNNING_MODAL'})

        :param operator: Operator to call
        :type operator: 'Operator'
        :rtype: bool
        :return: Whether adding the handler was successful
        '''
        pass

    def event_timer_add(self, time_step: float, window: 'Window' = None):
        ''' Add a timer to the given window, to generate periodic 'TIMER' events

        :param time_step: Time Step, Interval in seconds between timer events
        :type time_step: float
        :param window: Window to attach the timer to, or None
        :type window: 'Window'
        '''
        pass

    def event_timer_remove(self, timer: 'Timer'):
        ''' event_timer_remove

        :param timer: 
        :type timer: 'Timer'
        '''
        pass

    @classmethod
    def gizmo_group_type_ensure(cls, identifier: str):
        ''' Activate an existing widget group (when the persistent option isn't set)

        :param identifier: Gizmo group type name
        :type identifier: str
        '''
        pass

    @classmethod
    def gizmo_group_type_unlink_delayed(cls, identifier: str):
        ''' Unlink a widget group (when the persistent option is set)

        :param identifier: Gizmo group type name
        :type identifier: str
        '''
        pass

    def progress_begin(self, min: float, max: float):
        ''' Start progress report

        :param min: min, any value in range [0,9999]
        :type min: float
        :param max: max, any value in range [min+1,9998]
        :type max: float
        '''
        pass

    def progress_update(self, value: float):
        ''' Update the progress feedback

        :param value: value, Any value between min and max as set in progress_begin()
        :type value: float
        '''
        pass

    def progress_end(self):
        ''' Terminate progress report

        '''
        pass

    @classmethod
    def invoke_props_popup(cls, operator: 'Operator', event: 'Event'
                           ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' Operator popup invoke (show operator properties and execute it automatically on changes)

        :param operator: Operator to call
        :type operator: 'Operator'
        :param event: Event
        :type event: 'Event'
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    @classmethod
    def invoke_props_dialog(
            cls, operator: 'Operator', width: int = 300
    ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' Operator dialog (non-autoexec popup) invoke (show operator properties and only execute it on click on OK button)

        :param operator: Operator to call
        :type operator: 'Operator'
        :param width: Width of the popup
        :type width: int
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    @classmethod
    def invoke_search_popup(cls, operator: 'Operator'):
        ''' Operator search popup invoke which searches values of the operator's bpy.types.Operator.bl_property (which must be an EnumProperty), executing it on confirmation

        :param operator: Operator to call
        :type operator: 'Operator'
        '''
        pass

    @classmethod
    def invoke_popup(cls, operator: 'Operator', width: int = 300
                     ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' Operator popup invoke (only shows operator's properties, without executing it)

        :param operator: Operator to call
        :type operator: 'Operator'
        :param width: Width of the popup
        :type width: int
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    @classmethod
    def invoke_confirm(cls, operator: 'Operator', event: 'Event'
                       ) -> typing.Union[typing.Set[int], typing.Set[str]]:
        ''' Operator confirmation popup (only to let user confirm the execution, no operator properties shown)

        :param operator: Operator to call
        :type operator: 'Operator'
        :param event: Event
        :type event: 'Event'
        :rtype: typing.Union[typing.Set[int], typing.Set[str]]
        :return: result * RUNNING_MODAL Running Modal -- Keep the operator running with blender. * CANCELLED Cancelled -- The operator exited without doing anything, so no undo entry should be pushed. * FINISHED Finished -- The operator exited after completing its action. * PASS_THROUGH Pass Through -- Do nothing and pass the event on. * INTERFACE Interface -- Handled but not executed (popup menus).
        '''
        pass

    @classmethod
    def popmenu_begin__internal(cls,
                                title: str,
                                icon: typing.Union[int, str] = 'NONE'):
        ''' popmenu_begin__internal

        :param title: 
        :type title: str
        :param icon: icon
        :type icon: typing.Union[int, str]
        '''
        pass

    @classmethod
    def popmenu_end__internal(cls, menu: 'UIPopupMenu'):
        ''' popmenu_end__internal

        :param menu: 
        :type menu: 'UIPopupMenu'
        '''
        pass

    @classmethod
    def popover_begin__internal(cls,
                                ui_units_x: int = 0,
                                from_active_button: bool = False):
        ''' popover_begin__internal

        :param ui_units_x: ui_units_x
        :type ui_units_x: int
        :param from_active_button: Use Button, Use the active button for positioning
        :type from_active_button: bool
        '''
        pass

    @classmethod
    def popover_end__internal(cls, menu: 'UIPopover', keymap: 'KeyMap' = None):
        ''' popover_end__internal

        :param menu: 
        :type menu: 'UIPopover'
        :param keymap: Key Map, Active key map
        :type keymap: 'KeyMap'
        '''
        pass

    @classmethod
    def piemenu_begin__internal(cls,
                                title: str,
                                icon: typing.Union[int, str] = 'NONE',
                                event: 'Event' = None):
        ''' piemenu_begin__internal

        :param title: 
        :type title: str
        :param icon: icon
        :type icon: typing.Union[int, str]
        :param event: 
        :type event: 'Event'
        '''
        pass

    @classmethod
    def piemenu_end__internal(cls, menu: 'UIPieMenu'):
        ''' piemenu_end__internal

        :param menu: 
        :type menu: 'UIPieMenu'
        '''
        pass

    @classmethod
    def operator_properties_last(cls, operator: str):
        ''' operator_properties_last

        :param operator: 
        :type operator: str
        '''
        pass

    def print_undo_steps(self):
        ''' print_undo_steps

        '''
        pass

    @classmethod
    def tag_script_reload(cls):
        ''' Tag for refreshing the interface after scripts have been reloaded

        '''
        pass

    def popover(self,
                draw_func,
                *,
                ui_units_x=0,
                keymap=None,
                from_active_button=False):
        ''' 

        '''
        pass

    def popup_menu(self, draw_func, *, title='', icon='NONE'):
        ''' Popup menus can be useful for creating menus without having to register menu classes. Note that they will not block the scripts execution, so the caller can't wait for user input.

        '''
        pass

    def popup_menu_pie(self, event, draw_func, *, title='', icon='NONE'):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    @staticmethod
    def draw_cursor_add():
        ''' Undocumented, consider contributing <https://developer.blender.org/T51061> __.

        '''
        pass

    @staticmethod
    def draw_cursor_remove():
        ''' Undocumented, consider contributing <https://developer.blender.org/T51061> __.

        '''
        pass


class WorkSpace(ID, bpy_struct):
    ''' Workspace data-block, defining the working environment for the user
    '''

    active_pose_asset_index: int = None
    ''' Per workspace index of the active pose asset

    :type: int
    '''

    asset_library_ref: typing.Union[int, str] = None
    ''' Active asset library to show in the UI, not used by the Asset Browser (which has its own active asset library)

    :type: typing.Union[int, str]
    '''

    object_mode: typing.Union[int, str] = None
    ''' Switch to this object mode when activating the workspace * OBJECT Object Mode. * EDIT Edit Mode. * POSE Pose Mode. * SCULPT Sculpt Mode. * VERTEX_PAINT Vertex Paint. * WEIGHT_PAINT Weight Paint. * TEXTURE_PAINT Texture Paint. * PARTICLE_EDIT Particle Edit. * EDIT_GPENCIL Grease Pencil Edit Mode -- Edit Grease Pencil Strokes. * SCULPT_GPENCIL Grease Pencil Sculpt Mode -- Sculpt Grease Pencil Strokes. * PAINT_GPENCIL Grease Pencil Draw -- Paint Grease Pencil Strokes. * VERTEX_GPENCIL Grease Pencil Vertex Paint -- Grease Pencil Vertex Paint Strokes. * WEIGHT_GPENCIL Grease Pencil Weight Paint -- Grease Pencil Weight Paint Strokes.

    :type: typing.Union[int, str]
    '''

    owner_ids: typing.Union[typing.Dict[str, 'wmOwnerID'], typing.
                            List['wmOwnerID'], 'bpy_prop_collection',
                            'wmOwnerIDs'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'wmOwnerID'], typing.List['wmOwnerID'], 'bpy_prop_collection', 'wmOwnerIDs']
    '''

    screens: typing.Union[typing.Dict[str, 'Screen'], typing.
                          List['Screen'], 'bpy_prop_collection'] = None
    ''' Screen layouts of a workspace

    :type: typing.Union[typing.Dict[str, 'Screen'], typing.List['Screen'], 'bpy_prop_collection']
    '''

    tools: typing.Union[typing.Dict[str, 'WorkSpaceTool'], typing.
                        List['WorkSpaceTool'], 'bpy_prop_collection',
                        'wmTools'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'WorkSpaceTool'], typing.List['WorkSpaceTool'], 'bpy_prop_collection', 'wmTools']
    '''

    use_filter_by_owner: bool = None
    ''' Filter the UI by tags

    :type: bool
    '''

    @classmethod
    def status_text_set_internal(cls, text: str):
        ''' Set the status bar text, typically key shortcuts for modal operators

        :param text: Text, New string for the status bar, None clears the text
        :type text: str
        '''
        pass

    def status_text_set(self, text):
        ''' Set the status text or None to clear, When text is a function, this will be called with the (header, context) arguments.

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class World(ID, bpy_struct):
    ''' World data-block describing the environment and ambient lighting of a scene
    '''

    animation_data: 'AnimData' = None
    ''' Animation data for this data-block

    :type: 'AnimData'
    '''

    color: typing.List[float] = None
    ''' Color of the background

    :type: typing.List[float]
    '''

    cycles = None
    ''' Cycles world settings'''

    cycles_visibility = None
    ''' Cycles visibility settings'''

    light_settings: 'WorldLighting' = None
    ''' World lighting settings

    :type: 'WorldLighting'
    '''

    mist_settings: 'WorldMistSettings' = None
    ''' World mist settings

    :type: 'WorldMistSettings'
    '''

    node_tree: 'NodeTree' = None
    ''' Node tree for node based worlds

    :type: 'NodeTree'
    '''

    use_nodes: bool = None
    ''' Use shader nodes to render the world

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Itasc(IKParam, bpy_struct):
    ''' Parameters for the iTaSC IK solver
    '''

    damping_epsilon: float = None
    ''' Singular value under which damping is progressively applied (higher values produce results with more stability, less reactivity)

    :type: float
    '''

    damping_max: float = None
    ''' Maximum damping coefficient when singular value is nearly 0 (higher values produce results with more stability, less reactivity)

    :type: float
    '''

    feedback: float = None
    ''' Feedback coefficient for error correction, average response time is 1/feedback

    :type: float
    '''

    iterations: int = None
    ''' Maximum number of iterations for convergence in case of reiteration

    :type: int
    '''

    mode: typing.Union[int, str] = None
    ''' * ANIMATION Animation -- Stateless solver computing pose starting from current action and non-IK constraints. * SIMULATION Simulation -- State-full solver running in real-time context and ignoring actions and non-IK constraints.

    :type: typing.Union[int, str]
    '''

    precision: float = None
    ''' Precision of convergence in case of reiteration

    :type: float
    '''

    reiteration_method: typing.Union[int, str] = None
    ''' Defines if the solver is allowed to reiterate (converge until precision is met) on none, first or all frames * NEVER Never -- The solver does not reiterate, not even on first frame (starts from rest pose). * INITIAL Initial -- The solver reiterates (converges) on the first frame but not on subsequent frame. * ALWAYS Always -- The solver reiterates (converges) on all frames.

    :type: typing.Union[int, str]
    '''

    solver: typing.Union[int, str] = None
    ''' Solving method selection: automatic damping or manual damping * SDLS SDLS -- Selective Damped Least Square. * DLS DLS -- Damped Least Square with Numerical Filtering.

    :type: typing.Union[int, str]
    '''

    step_count: int = None
    ''' Divide the frame interval into this many steps

    :type: int
    '''

    step_max: float = None
    ''' Higher bound for timestep in second in case of automatic substeps

    :type: float
    '''

    step_min: float = None
    ''' Lower bound for timestep in second in case of automatic substeps

    :type: float
    '''

    use_auto_step: bool = None
    ''' Automatically determine the optimal number of steps for best performance/accuracy trade off

    :type: bool
    '''

    velocity_max: float = None
    ''' Maximum joint velocity in radians/second

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier(LineStyleModifier, bpy_struct):
    ''' Base type to define alpha transparency modifiers
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier(LineStyleModifier, bpy_struct):
    ''' Base type to define line color modifiers
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier(LineStyleModifier, bpy_struct):
    ''' Base type to define stroke geometry modifiers
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier(LineStyleModifier, bpy_struct):
    ''' Base type to define line thickness modifiers
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArmatureModifier(Modifier, bpy_struct):
    ''' Armature deformation modifier
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    object: 'Object' = None
    ''' Armature object to deform with

    :type: 'Object'
    '''

    use_bone_envelopes: bool = None
    ''' Bind Bone envelopes to armature modifier

    :type: bool
    '''

    use_deform_preserve_volume: bool = None
    ''' Deform rotation interpolation with quaternions

    :type: bool
    '''

    use_multi_modifier: bool = None
    ''' Use same input as previous modifier, and mix results using overall vgroup

    :type: bool
    '''

    use_vertex_groups: bool = None
    ''' Bind vertex groups to armature modifier

    :type: bool
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ArrayModifier(Modifier, bpy_struct):
    ''' Array duplication modifier
    '''

    constant_offset_displace: typing.List[float] = None
    ''' Value for the distance between arrayed items

    :type: typing.List[float]
    '''

    count: int = None
    ''' Number of duplicates to make

    :type: int
    '''

    curve: 'Object' = None
    ''' Curve object to fit array length to

    :type: 'Object'
    '''

    end_cap: 'Object' = None
    ''' Mesh object to use as an end cap

    :type: 'Object'
    '''

    fit_length: float = None
    ''' Length to fit array within

    :type: float
    '''

    fit_type: typing.Union[int, str] = None
    ''' Array length calculation method * FIXED_COUNT Fixed Count -- Duplicate the object a certain number of times. * FIT_LENGTH Fit Length -- Duplicate the object as many times as fits in a certain length. * FIT_CURVE Fit Curve -- Fit the duplicated objects to a curve.

    :type: typing.Union[int, str]
    '''

    merge_threshold: float = None
    ''' Limit below which to merge vertices

    :type: float
    '''

    offset_object: 'Object' = None
    ''' Use the location and rotation of another object to determine the distance and rotational change between arrayed items

    :type: 'Object'
    '''

    offset_u: float = None
    ''' Amount to offset array UVs on the U axis

    :type: float
    '''

    offset_v: float = None
    ''' Amount to offset array UVs on the V axis

    :type: float
    '''

    relative_offset_displace: typing.List[float] = None
    ''' The size of the geometry will determine the distance between arrayed items

    :type: typing.List[float]
    '''

    start_cap: 'Object' = None
    ''' Mesh object to use as a start cap

    :type: 'Object'
    '''

    use_constant_offset: bool = None
    ''' Add a constant offset

    :type: bool
    '''

    use_merge_vertices: bool = None
    ''' Merge vertices in adjacent duplicates

    :type: bool
    '''

    use_merge_vertices_cap: bool = None
    ''' Merge vertices in first and last duplicates

    :type: bool
    '''

    use_object_offset: bool = None
    ''' Add another object's transformation to the total offset

    :type: bool
    '''

    use_relative_offset: bool = None
    ''' Add an offset relative to the object's bounding box

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BevelModifier(Modifier, bpy_struct):
    ''' Bevel modifier to make edges and vertices more rounded
    '''

    affect: typing.Union[int, str] = None
    ''' Affect edges or vertices * VERTICES Vertices -- Affect only vertices. * EDGES Edges -- Affect only edges.

    :type: typing.Union[int, str]
    '''

    angle_limit: float = None
    ''' Angle above which to bevel edges

    :type: float
    '''

    custom_profile: 'CurveProfile' = None
    ''' The path for the custom profile

    :type: 'CurveProfile'
    '''

    face_strength_mode: typing.Union[int, str] = None
    ''' Whether to set face strength, and which faces to set it on * FSTR_NONE None -- Do not set face strength. * FSTR_NEW New -- Set face strength on new faces only. * FSTR_AFFECTED Affected -- Set face strength on new and affected faces only. * FSTR_ALL All -- Set face strength on all faces.

    :type: typing.Union[int, str]
    '''

    harden_normals: bool = None
    ''' Match normals of new faces to adjacent faces

    :type: bool
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    limit_method: typing.Union[int, str] = None
    ''' * NONE None -- Bevel the entire mesh by a constant amount. * ANGLE Angle -- Only bevel edges with sharp enough angles between faces. * WEIGHT Weight -- Use bevel weights to determine how much bevel is applied in edge mode. * VGROUP Vertex Group -- Use vertex group weights to select whether vertex or edge is beveled.

    :type: typing.Union[int, str]
    '''

    loop_slide: bool = None
    ''' Prefer sliding along edges to having even widths

    :type: bool
    '''

    mark_seam: bool = None
    ''' Mark Seams along beveled edges

    :type: bool
    '''

    mark_sharp: bool = None
    ''' Mark beveled edges as sharp

    :type: bool
    '''

    material: int = None
    ''' Material index of generated faces, -1 for automatic

    :type: int
    '''

    miter_inner: typing.Union[int, str] = None
    ''' Pattern to use for inside of miters * MITER_SHARP Sharp -- Inside of miter is sharp. * MITER_ARC Arc -- Inside of miter is arc.

    :type: typing.Union[int, str]
    '''

    miter_outer: typing.Union[int, str] = None
    ''' Pattern to use for outside of miters * MITER_SHARP Sharp -- Outside of miter is sharp. * MITER_PATCH Patch -- Outside of miter is squared-off patch. * MITER_ARC Arc -- Outside of miter is arc.

    :type: typing.Union[int, str]
    '''

    offset_type: typing.Union[int, str] = None
    ''' What distance Width measures * 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: typing.Union[int, str]
    '''

    profile: float = None
    ''' The profile shape (0.5 = round)

    :type: float
    '''

    profile_type: typing.Union[int, str] = None
    ''' 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: typing.Union[int, str]
    '''

    segments: int = None
    ''' Number of segments for round edges/verts

    :type: int
    '''

    spread: float = None
    ''' Spread distance for inner miter arcs

    :type: float
    '''

    use_clamp_overlap: bool = None
    ''' Clamp the width to avoid overlap

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    vmesh_method: typing.Union[int, str] = None
    ''' The method to use to create the mesh at intersections * ADJ Grid Fill -- Default patterned fill. * CUTOFF Cutoff -- A cut-off at the end of each profile before the intersection.

    :type: typing.Union[int, str]
    '''

    width: float = None
    ''' Bevel amount

    :type: float
    '''

    width_pct: float = None
    ''' Bevel amount for percentage method

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BooleanModifier(Modifier, bpy_struct):
    ''' Boolean operations modifier
    '''

    collection: 'Collection' = None
    ''' Use mesh objects in this collection for Boolean operation

    :type: 'Collection'
    '''

    debug_options: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Debugging options, only when started with '-d'

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    double_threshold: float = None
    ''' Threshold for checking overlapping geometry

    :type: float
    '''

    object: 'Object' = None
    ''' Mesh object to use for Boolean operation

    :type: 'Object'
    '''

    operand_type: typing.Union[int, str] = None
    ''' * OBJECT Object -- Use a mesh object as the operand for the Boolean operation. * COLLECTION Collection -- Use a collection of mesh objects as the operand for the Boolean operation.

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' * INTERSECT Intersect -- Keep the part of the mesh that is common between all operands. * UNION Union -- Combine meshes in an additive way. * DIFFERENCE Difference -- Combine meshes in a subtractive way.

    :type: typing.Union[int, str]
    '''

    solver: typing.Union[int, str] = None
    ''' Method for calculating booleans * FAST Fast -- Simple solver for the best performance, without support for overlapping geometry. * EXACT Exact -- Advanced solver for the best result.

    :type: typing.Union[int, str]
    '''

    use_hole_tolerant: bool = None
    ''' Better results when there are holes (slower)

    :type: bool
    '''

    use_self: bool = None
    ''' Allow self-intersection in operands

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BuildModifier(Modifier, bpy_struct):
    ''' Build effect modifier
    '''

    frame_duration: float = None
    ''' Total time the build effect requires

    :type: float
    '''

    frame_start: float = None
    ''' Start frame of the effect

    :type: float
    '''

    seed: int = None
    ''' Seed for random if used

    :type: int
    '''

    use_random_order: bool = None
    ''' Randomize the faces or edges during build

    :type: bool
    '''

    use_reverse: bool = None
    ''' Deconstruct the mesh instead of building it

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CastModifier(Modifier, bpy_struct):
    ''' Modifier to cast to other shapes
    '''

    cast_type: typing.Union[int, str] = None
    ''' Target object shape

    :type: typing.Union[int, str]
    '''

    factor: float = None
    ''' 

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    object: 'Object' = None
    ''' Control object: if available, its location determines the center of the effect

    :type: 'Object'
    '''

    radius: float = None
    ''' Only deform vertices within this distance from the center of the effect (leave as 0 for infinite.)

    :type: float
    '''

    size: float = None
    ''' Size of projection shape (leave as 0 for auto)

    :type: float
    '''

    use_radius_as_size: bool = None
    ''' Use radius as size of projection shape (0 = auto)

    :type: bool
    '''

    use_transform: bool = None
    ''' Use object transform to control projection shape

    :type: bool
    '''

    use_x: bool = None
    ''' 

    :type: bool
    '''

    use_y: bool = None
    ''' 

    :type: bool
    '''

    use_z: bool = None
    ''' 

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ClothModifier(Modifier, bpy_struct):
    ''' Cloth simulation modifier
    '''

    collision_settings: 'ClothCollisionSettings' = None
    ''' 

    :type: 'ClothCollisionSettings'
    '''

    hair_grid_max: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    hair_grid_min: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    hair_grid_resolution: typing.List[int] = None
    ''' 

    :type: typing.List[int]
    '''

    point_cache: 'PointCache' = None
    ''' 

    :type: 'PointCache'
    '''

    settings: 'ClothSettings' = None
    ''' 

    :type: 'ClothSettings'
    '''

    solver_result: 'ClothSolverResult' = None
    ''' 

    :type: 'ClothSolverResult'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CollisionModifier(Modifier, bpy_struct):
    ''' Collision modifier defining modifier stack position used for collision
    '''

    settings: 'CollisionSettings' = None
    ''' 

    :type: 'CollisionSettings'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CorrectiveSmoothModifier(Modifier, bpy_struct):
    ''' Correct distortion caused by deformation
    '''

    factor: float = None
    ''' Smooth factor effect

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    is_bind: bool = None
    ''' 

    :type: bool
    '''

    iterations: int = None
    ''' 

    :type: int
    '''

    rest_source: typing.Union[int, str] = None
    ''' Select the source of rest positions * ORCO Original Coords -- Use base mesh vertex coords as the rest position. * BIND Bind Coords -- Use bind vertex coords for rest position.

    :type: typing.Union[int, str]
    '''

    scale: float = None
    ''' Compensate for scale applied by other modifiers

    :type: float
    '''

    smooth_type: typing.Union[int, str] = None
    ''' Method used for smoothing * SIMPLE Simple -- Use the average of adjacent edge-vertices. * LENGTH_WEIGHTED Length Weight -- Use the average of adjacent edge-vertices weighted by their length.

    :type: typing.Union[int, str]
    '''

    use_only_smooth: bool = None
    ''' Apply smoothing without reconstructing the surface

    :type: bool
    '''

    use_pin_boundary: bool = None
    ''' Excludes boundary vertices from being smoothed

    :type: bool
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurveModifier(Modifier, bpy_struct):
    ''' Curve deformation modifier
    '''

    deform_axis: typing.Union[int, str] = None
    ''' The axis that the curve deforms along

    :type: typing.Union[int, str]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    object: 'Object' = None
    ''' Curve object to deform with

    :type: 'Object'
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DataTransferModifier(Modifier, bpy_struct):
    ''' Modifier transferring some data from a source mesh
    '''

    data_types_edges: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Which edge data layers to transfer * SHARP_EDGE Sharp -- Transfer sharp mark. * SEAM UV Seam -- Transfer UV seam mark. * CREASE Crease -- Transfer subdivision crease values. * BEVEL_WEIGHT_EDGE Bevel Weight -- Transfer bevel weights. * FREESTYLE_EDGE Freestyle -- Transfer Freestyle edge mark.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    data_types_loops: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Which face corner data layers to transfer * CUSTOM_NORMAL Custom Normals -- Transfer custom normals. * VCOL Vertex Colors -- Vertex (face corners) colors. * UV UVs -- Transfer UV layers.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    data_types_polys: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Which poly data layers to transfer * SMOOTH Smooth -- Transfer flat/smooth mark. * FREESTYLE_FACE Freestyle Mark -- Transfer Freestyle face mark.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    data_types_verts: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Which vertex data layers to transfer * VGROUP_WEIGHTS Vertex Groups -- Transfer active or all vertex groups. * BEVEL_WEIGHT_VERT Bevel Weight -- Transfer bevel weights.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    edge_mapping: typing.Union[int, str] = None
    ''' Method used to map source edges to destination ones * TOPOLOGY Topology -- Copy from identical topology meshes. * VERT_NEAREST Nearest Vertices -- Copy from most similar edge (edge which vertices are the closest of destination edge's ones). * NEAREST Nearest Edge -- Copy from closest edge (using midpoints). * POLY_NEAREST Nearest Face Edge -- Copy from closest edge of closest face (using midpoints). * EDGEINTERP_VNORPROJ Projected Edge Interpolated -- Interpolate all source edges hit by the projection of destination one along its own normal (from vertices).

    :type: typing.Union[int, str]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    islands_precision: float = None
    ''' Factor controlling precision of islands handling (typically, 0.1 should be enough, higher values can make things really slow)

    :type: float
    '''

    layers_uv_select_dst: typing.Union[int, str] = None
    ''' How to match source and destination layers * ACTIVE Active Layer -- Affect active data layer of all targets. * NAME By Name -- Match target data layers to affect by name. * INDEX By Order -- Match target data layers to affect by order (indices).

    :type: typing.Union[int, str]
    '''

    layers_uv_select_src: typing.Union[int, str] = None
    ''' Which layers to transfer, in case of multi-layers types * ACTIVE Active Layer -- Only transfer active data layer. * ALL All Layers -- Transfer all data layers. * BONE_SELECT Selected Pose Bones -- Transfer all vertex groups used by selected pose bones. * BONE_DEFORM Deform Pose Bones -- Transfer all vertex groups used by deform bones.

    :type: typing.Union[int, str]
    '''

    layers_vcol_select_dst: typing.Union[int, str] = None
    ''' How to match source and destination layers * ACTIVE Active Layer -- Affect active data layer of all targets. * NAME By Name -- Match target data layers to affect by name. * INDEX By Order -- Match target data layers to affect by order (indices).

    :type: typing.Union[int, str]
    '''

    layers_vcol_select_src: typing.Union[int, str] = None
    ''' Which layers to transfer, in case of multi-layers types * ACTIVE Active Layer -- Only transfer active data layer. * ALL All Layers -- Transfer all data layers. * BONE_SELECT Selected Pose Bones -- Transfer all vertex groups used by selected pose bones. * BONE_DEFORM Deform Pose Bones -- Transfer all vertex groups used by deform bones.

    :type: typing.Union[int, str]
    '''

    layers_vgroup_select_dst: typing.Union[int, str] = None
    ''' How to match source and destination layers * ACTIVE Active Layer -- Affect active data layer of all targets. * NAME By Name -- Match target data layers to affect by name. * INDEX By Order -- Match target data layers to affect by order (indices).

    :type: typing.Union[int, str]
    '''

    layers_vgroup_select_src: typing.Union[int, str] = None
    ''' Which layers to transfer, in case of multi-layers types * ACTIVE Active Layer -- Only transfer active data layer. * ALL All Layers -- Transfer all data layers. * BONE_SELECT Selected Pose Bones -- Transfer all vertex groups used by selected pose bones. * BONE_DEFORM Deform Pose Bones -- Transfer all vertex groups used by deform bones.

    :type: typing.Union[int, str]
    '''

    loop_mapping: typing.Union[int, str] = None
    ''' Method used to map source faces' corners to destination ones * TOPOLOGY Topology -- Copy from identical topology meshes. * NEAREST_NORMAL Nearest Corner and Best Matching Normal -- Copy from nearest corner which has the best matching normal. * NEAREST_POLYNOR Nearest Corner and Best Matching Face Normal -- Copy from nearest corner which has the face with the best matching normal to destination corner's face one. * NEAREST_POLY Nearest Corner of Nearest Face -- Copy from nearest corner of nearest polygon. * POLYINTERP_NEAREST Nearest Face Interpolated -- Copy from interpolated corners of the nearest source polygon. * POLYINTERP_LNORPROJ Projected Face Interpolated -- Copy from interpolated corners of the source polygon hit by corner normal projection.

    :type: typing.Union[int, str]
    '''

    max_distance: float = None
    ''' Maximum allowed distance between source and destination element, for non-topology mappings

    :type: float
    '''

    mix_factor: float = None
    ''' Factor to use when applying data to destination (exact behavior depends on mix mode, multiplied with weights from vertex group when defined)

    :type: float
    '''

    mix_mode: typing.Union[int, str] = None
    ''' How to affect destination elements with source values * REPLACE Replace -- Overwrite all elements' data. * ABOVE_THRESHOLD Above Threshold -- Only replace destination elements where data is above given threshold (exact behavior depends on data type). * BELOW_THRESHOLD Below Threshold -- Only replace destination elements where data is below given threshold (exact behavior depends on data type). * MIX Mix -- Mix source value into destination one, using given threshold as factor. * ADD Add -- Add source value to destination one, using given threshold as factor. * SUB Subtract -- Subtract source value to destination one, using given threshold as factor. * MUL Multiply -- Multiply source value to destination one, using given threshold as factor.

    :type: typing.Union[int, str]
    '''

    object: 'Object' = None
    ''' Object to transfer data from

    :type: 'Object'
    '''

    poly_mapping: typing.Union[int, str] = None
    ''' Method used to map source faces to destination ones * TOPOLOGY Topology -- Copy from identical topology meshes. * NEAREST Nearest Face -- Copy from nearest polygon (using center points). * NORMAL Best Normal-Matching -- Copy from source polygon which normal is the closest to destination one. * POLYINTERP_PNORPROJ Projected Face Interpolated -- Interpolate all source polygons intersected by the projection of destination one along its own normal.

    :type: typing.Union[int, str]
    '''

    ray_radius: float = None
    ''' 'Width' of rays (especially useful when raycasting against vertices or edges)

    :type: float
    '''

    use_edge_data: bool = None
    ''' Enable edge data transfer

    :type: bool
    '''

    use_loop_data: bool = None
    ''' Enable face corner data transfer

    :type: bool
    '''

    use_max_distance: bool = None
    ''' Source elements must be closer than given distance from destination one

    :type: bool
    '''

    use_object_transform: bool = None
    ''' Evaluate source and destination meshes in global space

    :type: bool
    '''

    use_poly_data: bool = None
    ''' Enable face data transfer

    :type: bool
    '''

    use_vert_data: bool = None
    ''' Enable vertex data transfer

    :type: bool
    '''

    vert_mapping: typing.Union[int, str] = None
    ''' Method used to map source vertices to destination ones * TOPOLOGY Topology -- Copy from identical topology meshes. * NEAREST Nearest Vertex -- Copy from closest vertex. * EDGE_NEAREST Nearest Edge Vertex -- Copy from closest vertex of closest edge. * EDGEINTERP_NEAREST Nearest Edge Interpolated -- Copy from interpolated values of vertices from closest point on closest edge. * POLY_NEAREST Nearest Face Vertex -- Copy from closest vertex of closest face. * POLYINTERP_NEAREST Nearest Face Interpolated -- Copy from interpolated values of vertices from closest point on closest face. * POLYINTERP_VNORPROJ Projected Face Interpolated -- Copy from interpolated values of vertices from point on closest face hit by normal-projection.

    :type: typing.Union[int, str]
    '''

    vertex_group: str = None
    ''' Vertex group name for selecting the affected areas

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DecimateModifier(Modifier, bpy_struct):
    ''' Decimation modifier
    '''

    angle_limit: float = None
    ''' Only dissolve angles below this (planar only)

    :type: float
    '''

    decimate_type: typing.Union[int, str] = None
    ''' * COLLAPSE Collapse -- Use edge collapsing. * UNSUBDIV Un-Subdivide -- Use un-subdivide face reduction. * DISSOLVE Planar -- Dissolve geometry to form planar polygons.

    :type: typing.Union[int, str]
    '''

    delimit: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Limit merging geometry * NORMAL Normal -- Delimit by face directions. * MATERIAL Material -- Delimit by face material. * SEAM Seam -- Delimit by edge seams. * SHARP Sharp -- Delimit by sharp edges. * UV UVs -- Delimit by UV coordinates.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    face_count: int = None
    ''' The current number of faces in the decimated mesh

    :type: int
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence (collapse only)

    :type: bool
    '''

    iterations: int = None
    ''' Number of times reduce the geometry (unsubdivide only)

    :type: int
    '''

    ratio: float = None
    ''' Ratio of triangles to reduce to (collapse only)

    :type: float
    '''

    symmetry_axis: typing.Union[int, str] = None
    ''' Axis of symmetry

    :type: typing.Union[int, str]
    '''

    use_collapse_triangulate: bool = None
    ''' Keep triangulated faces resulting from decimation (collapse only)

    :type: bool
    '''

    use_dissolve_boundaries: bool = None
    ''' Dissolve all vertices in between face boundaries (planar only)

    :type: bool
    '''

    use_symmetry: bool = None
    ''' Maintain symmetry on an axis

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name (collapse only)

    :type: str
    '''

    vertex_group_factor: float = None
    ''' Vertex group strength

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DisplaceModifier(Modifier, bpy_struct):
    ''' Displacement modifier
    '''

    direction: typing.Union[int, str] = None
    ''' * X X -- Use the texture's intensity value to displace in the X direction. * Y Y -- Use the texture's intensity value to displace in the Y direction. * Z Z -- Use the texture's intensity value to displace in the Z direction. * NORMAL Normal -- Use the texture's intensity value to displace along the vertex normal. * CUSTOM_NORMAL Custom Normal -- Use the texture's intensity value to displace along the (averaged) custom normal (falls back to vertex). * RGB_TO_XYZ RGB to XYZ -- Use the texture's RGB values to displace the mesh in the XYZ direction.

    :type: typing.Union[int, str]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    mid_level: float = None
    ''' Material value that gives no displacement

    :type: float
    '''

    space: typing.Union[int, str] = None
    ''' * LOCAL Local -- Direction is defined in local coordinates. * GLOBAL Global -- Direction is defined in global coordinates.

    :type: typing.Union[int, str]
    '''

    strength: float = None
    ''' Amount to displace geometry

    :type: float
    '''

    texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    texture_coords: typing.Union[int, str] = None
    ''' * LOCAL Local -- Use the local coordinate system for the texture coordinates. * GLOBAL Global -- Use the global coordinate system for the texture coordinates. * OBJECT Object -- Use the linked object's local coordinate system for the texture coordinates. * UV UV -- Use UV coordinates for the texture coordinates.

    :type: typing.Union[int, str]
    '''

    texture_coords_bone: str = None
    ''' Bone to set the texture coordinates

    :type: str
    '''

    texture_coords_object: 'Object' = None
    ''' Object to set the texture coordinates

    :type: 'Object'
    '''

    uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DynamicPaintModifier(Modifier, bpy_struct):
    ''' Dynamic Paint modifier
    '''

    brush_settings: 'DynamicPaintBrushSettings' = None
    ''' 

    :type: 'DynamicPaintBrushSettings'
    '''

    canvas_settings: 'DynamicPaintCanvasSettings' = None
    ''' 

    :type: 'DynamicPaintCanvasSettings'
    '''

    ui_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class EdgeSplitModifier(Modifier, bpy_struct):
    ''' Edge splitting modifier to create sharp edges
    '''

    split_angle: float = None
    ''' Angle above which to split edges

    :type: float
    '''

    use_edge_angle: bool = None
    ''' Split edges with high angle between faces

    :type: bool
    '''

    use_edge_sharp: bool = None
    ''' Split edges that are marked as sharp

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ExplodeModifier(Modifier, bpy_struct):
    ''' Explosion effect modifier based on a particle system
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    particle_uv: str = None
    ''' UV map to change with particle age

    :type: str
    '''

    protect: float = None
    ''' Clean vertex group edges

    :type: float
    '''

    show_alive: bool = None
    ''' Show mesh when particles are alive

    :type: bool
    '''

    show_dead: bool = None
    ''' Show mesh when particles are dead

    :type: bool
    '''

    show_unborn: bool = None
    ''' Show mesh when particles are unborn

    :type: bool
    '''

    use_edge_cut: bool = None
    ''' Cut face edges for nicer shrapnel

    :type: bool
    '''

    use_size: bool = None
    ''' Use particle size for the shrapnel

    :type: bool
    '''

    vertex_group: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FluidModifier(Modifier, bpy_struct):
    ''' Fluid simulation modifier
    '''

    domain_settings: 'FluidDomainSettings' = None
    ''' 

    :type: 'FluidDomainSettings'
    '''

    effector_settings: 'FluidEffectorSettings' = None
    ''' 

    :type: 'FluidEffectorSettings'
    '''

    flow_settings: 'FluidFlowSettings' = None
    ''' 

    :type: 'FluidFlowSettings'
    '''

    fluid_type: typing.Union[int, str] = None
    ''' * NONE None. * DOMAIN Domain. * FLOW Flow -- Inflow/Outflow. * EFFECTOR Effector.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class HookModifier(Modifier, bpy_struct):
    ''' Hook modifier to modify the location of vertices
    '''

    center: typing.List[float] = None
    ''' Center of the hook, used for falloff and display

    :type: typing.List[float]
    '''

    falloff_curve: 'CurveMapping' = None
    ''' Custom falloff curve

    :type: 'CurveMapping'
    '''

    falloff_radius: float = None
    ''' If not zero, the distance from the hook where influence ends

    :type: float
    '''

    falloff_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    matrix_inverse: typing.List[float] = None
    ''' Reverse the transformation between this object and its target

    :type: typing.List[float]
    '''

    object: 'Object' = None
    ''' Parent Object for hook, also recalculates and clears offset

    :type: 'Object'
    '''

    strength: float = None
    ''' Relative force of the hook

    :type: float
    '''

    subtarget: str = None
    ''' Name of Parent Bone for hook (if applicable), also recalculates and clears offset

    :type: str
    '''

    use_falloff_uniform: bool = None
    ''' Compensate for non-uniform object scale

    :type: bool
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    vertex_indices: typing.List[int] = None
    ''' Indices of vertices bound to the modifier. For bezier curves, handles count as additional vertices

    :type: typing.List[int]
    '''

    def vertex_indices_set(self, indices: typing.List[int]):
        ''' Validates and assigns the array of vertex indices bound to the modifier

        :param indices: Vertex Indices
        :type indices: typing.List[int]
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LaplacianDeformModifier(Modifier, bpy_struct):
    ''' Mesh deform modifier
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    is_bind: bool = None
    ''' Whether geometry has been bound to anchors

    :type: bool
    '''

    iterations: int = None
    ''' 

    :type: int
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines Anchors

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LaplacianSmoothModifier(Modifier, bpy_struct):
    ''' Smoothing effect modifier
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    iterations: int = None
    ''' 

    :type: int
    '''

    lambda_border: float = None
    ''' Lambda factor in border

    :type: float
    '''

    lambda_factor: float = None
    ''' Smooth factor effect

    :type: float
    '''

    use_normalized: bool = None
    ''' Improve and stabilize the enhanced shape

    :type: bool
    '''

    use_volume_preserve: bool = None
    ''' Apply volume preservation after smooth

    :type: bool
    '''

    use_x: bool = None
    ''' Smooth object along X axis

    :type: bool
    '''

    use_y: bool = None
    ''' Smooth object along Y axis

    :type: bool
    '''

    use_z: bool = None
    ''' Smooth object along Z axis

    :type: bool
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LatticeModifier(Modifier, bpy_struct):
    ''' Lattice deformation modifier
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    object: 'Object' = None
    ''' Lattice object to deform with

    :type: 'Object'
    '''

    strength: float = None
    ''' Strength of modifier effect

    :type: float
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskModifier(Modifier, bpy_struct):
    ''' Mask modifier to hide parts of the mesh
    '''

    armature: 'Object' = None
    ''' Armature to use as source of bones to mask

    :type: 'Object'
    '''

    invert_vertex_group: bool = None
    ''' Use vertices that are not part of region defined

    :type: bool
    '''

    mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    threshold: float = None
    ''' Weights over this threshold remain

    :type: float
    '''

    use_smooth: bool = None
    ''' Use vertex group weights to cut faces at the weight contour

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshCacheModifier(Modifier, bpy_struct):
    ''' Cache Mesh
    '''

    cache_format: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    deform_mode: typing.Union[int, str] = None
    ''' * OVERWRITE Overwrite -- Replace vertex coords with cached values. * INTEGRATE Integrate -- Integrate deformation from this modifiers input with the mesh-cache coords (useful for shape keys).

    :type: typing.Union[int, str]
    '''

    eval_factor: float = None
    ''' Evaluation time in seconds

    :type: float
    '''

    eval_frame: float = None
    ''' The frame to evaluate (starting at 0)

    :type: float
    '''

    eval_time: float = None
    ''' Evaluation time in seconds

    :type: float
    '''

    factor: float = None
    ''' Influence of the deformation

    :type: float
    '''

    filepath: str = None
    ''' Path to external displacements file

    :type: str
    '''

    flip_axis: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' 

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    forward_axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    frame_scale: float = None
    ''' Evaluation time in seconds

    :type: float
    '''

    frame_start: float = None
    ''' Add this to the start frame

    :type: float
    '''

    interpolation: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    play_mode: typing.Union[int, str] = None
    ''' * SCENE Scene -- Use the time from the scene. * CUSTOM Custom -- Use the modifier's own time evaluation.

    :type: typing.Union[int, str]
    '''

    time_mode: typing.Union[int, str] = None
    ''' Method to control playback time * FRAME Frame -- Control playback using a frame-number (ignoring time FPS and start frame from the file). * TIME Time -- Control playback using time in seconds. * FACTOR Factor -- Control playback using a value between 0 and 1.

    :type: typing.Union[int, str]
    '''

    up_axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    vertex_group: str = None
    ''' Name of the Vertex Group which determines the influence of the modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshDeformModifier(Modifier, bpy_struct):
    ''' Mesh deformation modifier to deform with other meshes
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    is_bound: bool = None
    ''' Whether geometry has been bound to control cage

    :type: bool
    '''

    object: 'Object' = None
    ''' Mesh object to deform with

    :type: 'Object'
    '''

    precision: int = None
    ''' The grid size for binding

    :type: int
    '''

    use_dynamic_bind: bool = None
    ''' Recompute binding dynamically on top of other deformers (slower and more memory consuming)

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshSequenceCacheModifier(Modifier, bpy_struct):
    ''' Cache Mesh
    '''

    cache_file: 'CacheFile' = None
    ''' 

    :type: 'CacheFile'
    '''

    object_path: str = None
    ''' Path to the object in the Alembic archive used to lookup geometric data

    :type: str
    '''

    read_data: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Data to read from the cache

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    use_vertex_interpolation: bool = None
    ''' Allow interpolation of vertex positions

    :type: bool
    '''

    velocity_scale: float = None
    ''' Multiplier used to control the magnitude of the velocity vectors for time effects

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MeshToVolumeModifier(Modifier, bpy_struct):
    density: float = None
    ''' Density of the new volume

    :type: float
    '''

    exterior_band_width: float = None
    ''' Width of the volume outside of the mesh

    :type: float
    '''

    interior_band_width: float = None
    ''' Width of the volume inside of the mesh

    :type: float
    '''

    object: 'Object' = None
    ''' Object

    :type: 'Object'
    '''

    resolution_mode: typing.Union[int, str] = None
    ''' Mode for how the desired voxel size is specified * VOXEL_AMOUNT Voxel Amount -- Desired number of voxels along one axis. * VOXEL_SIZE Voxel Size -- Desired voxel side length.

    :type: typing.Union[int, str]
    '''

    use_fill_volume: bool = None
    ''' Initialize the density grid in every cell inside the enclosed volume

    :type: bool
    '''

    voxel_amount: int = None
    ''' Approximate number of voxels along one axis

    :type: int
    '''

    voxel_size: float = None
    ''' Smaller values result in a higher resolution output

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MirrorModifier(Modifier, bpy_struct):
    ''' Mirroring modifier
    '''

    bisect_threshold: float = None
    ''' Distance from the bisect plane within which vertices are removed

    :type: float
    '''

    merge_threshold: float = None
    ''' Distance within which mirrored vertices are merged

    :type: float
    '''

    mirror_object: 'Object' = None
    ''' Object to use as mirror

    :type: 'Object'
    '''

    mirror_offset_u: float = None
    ''' Amount to offset mirrored UVs flipping point from the 0.5 on the U axis

    :type: float
    '''

    mirror_offset_v: float = None
    ''' Amount to offset mirrored UVs flipping point from the 0.5 point on the V axis

    :type: float
    '''

    offset_u: float = None
    ''' Mirrored UV offset on the U axis

    :type: float
    '''

    offset_v: float = None
    ''' Mirrored UV offset on the V axis

    :type: float
    '''

    use_axis: typing.List[bool] = None
    ''' Enable axis mirror

    :type: typing.List[bool]
    '''

    use_bisect_axis: typing.List[bool] = None
    ''' Cuts the mesh across the mirror plane

    :type: typing.List[bool]
    '''

    use_bisect_flip_axis: typing.List[bool] = None
    ''' Flips the direction of the slice

    :type: typing.List[bool]
    '''

    use_clip: bool = None
    ''' Prevent vertices from going through the mirror during transform

    :type: bool
    '''

    use_mirror_merge: bool = None
    ''' Merge vertices within the merge threshold

    :type: bool
    '''

    use_mirror_u: bool = None
    ''' Mirror the U texture coordinate around the flip offset point

    :type: bool
    '''

    use_mirror_udim: bool = None
    ''' Mirror the texture coordinate around each tile center

    :type: bool
    '''

    use_mirror_v: bool = None
    ''' Mirror the V texture coordinate around the flip offset point

    :type: bool
    '''

    use_mirror_vertex_groups: bool = None
    ''' Mirror vertex groups (e.g. .R->.L)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MultiresModifier(Modifier, bpy_struct):
    ''' Multiresolution mesh modifier
    '''

    boundary_smooth: typing.Union[int, str] = None
    ''' Controls how open boundaries are smoothed * PRESERVE_CORNERS Keep Corners -- Smooth boundaries, but corners are kept sharp. * ALL All -- Smooth boundaries, including corners.

    :type: typing.Union[int, str]
    '''

    filepath: str = None
    ''' Path to external displacements file

    :type: str
    '''

    is_external: bool = None
    ''' Store multires displacements outside the .blend file, to save memory

    :type: bool
    '''

    levels: int = None
    ''' Number of subdivisions to use in the viewport

    :type: int
    '''

    quality: int = None
    ''' Accuracy of vertex positions, lower value is faster but less precise

    :type: int
    '''

    render_levels: int = None
    ''' The subdivision level visible at render time

    :type: int
    '''

    sculpt_levels: int = None
    ''' Number of subdivisions to use in sculpt mode

    :type: int
    '''

    show_only_control_edges: bool = None
    ''' Skip drawing/rendering of interior subdivided edges

    :type: bool
    '''

    total_levels: int = None
    ''' Number of subdivisions for which displacements are stored

    :type: int
    '''

    use_creases: bool = None
    ''' Use mesh edge crease information to sharpen edges

    :type: bool
    '''

    use_custom_normals: bool = None
    ''' Interpolates existing custom normals to resulting mesh

    :type: bool
    '''

    use_sculpt_base_mesh: bool = None
    ''' Make Sculpt Mode tools deform the base mesh while previewing the displacement of higher subdivision levels

    :type: bool
    '''

    uv_smooth: typing.Union[int, str] = None
    ''' Controls how smoothing is applied to UVs * NONE None -- UVs are not smoothed, boundaries are kept sharp. * PRESERVE_CORNERS Keep Corners -- UVs are smoothed, corners on discontinuous boundary are kept sharp. * PRESERVE_CORNERS_AND_JUNCTIONS Keep Corners, Junctions -- UVs are smoothed, corners on discontinuous boundary and junctions of 3 or more regions are kept sharp. * PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE Keep Corners, Junctions, Concave -- UVs are smoothed, corners on discontinuous boundary, junctions of 3 or more regions and darts and concave corners are kept sharp. * PRESERVE_BOUNDARIES Keep Boundaries -- UVs are smoothed, boundaries are kept sharp. * SMOOTH_ALL All -- UVs and boundaries are smoothed.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodesModifier(Modifier, bpy_struct):
    node_group: 'NodeTree' = None
    ''' Node group that controls what this modifier does

    :type: 'NodeTree'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NormalEditModifier(Modifier, bpy_struct):
    ''' Modifier affecting/generating custom normals
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    mix_factor: float = None
    ''' How much of generated normals to mix with exiting ones

    :type: float
    '''

    mix_limit: float = None
    ''' Maximum angle between old and new normals

    :type: float
    '''

    mix_mode: typing.Union[int, str] = None
    ''' How to mix generated normals with existing ones * COPY Copy -- Copy new normals (overwrite existing). * ADD Add -- Copy sum of new and old normals. * SUB Subtract -- Copy new normals minus old normals. * MUL Multiply -- Copy product of old and new normals (not cross product).

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' How to affect (generate) normals * RADIAL Radial -- From an ellipsoid (shape defined by the boundbox's dimensions, target is optional). * DIRECTIONAL Directional -- Normals 'track' (point to) the target object.

    :type: typing.Union[int, str]
    '''

    no_polynors_fix: bool = None
    ''' Do not flip polygons when their normals are not consistent with their newly computed custom vertex normals

    :type: bool
    '''

    offset: typing.List[float] = None
    ''' Offset from object's center

    :type: typing.List[float]
    '''

    target: 'Object' = None
    ''' Target object used to affect normals

    :type: 'Object'
    '''

    use_direction_parallel: bool = None
    ''' Use same direction for all normals, from origin to target's center (Directional mode only)

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for selecting/weighting the affected areas

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OceanModifier(Modifier, bpy_struct):
    ''' Simulate an ocean surface
    '''

    bake_foam_fade: float = None
    ''' How much foam accumulates over time (baked ocean only)

    :type: float
    '''

    choppiness: float = None
    ''' Choppiness of the wave's crest (adds some horizontal component to the displacement)

    :type: float
    '''

    damping: float = None
    ''' Damp reflected waves going in opposite direction to the wind

    :type: float
    '''

    depth: float = None
    ''' Depth of the solid ground below the water surface

    :type: float
    '''

    fetch_jonswap: float = None
    ''' This is the distance from a lee shore, called the fetch, or the distance over which the wind blows with constant velocity. Used by 'JONSWAP' and 'TMA' models

    :type: float
    '''

    filepath: str = None
    ''' Path to a folder to store external baked images

    :type: str
    '''

    foam_coverage: float = None
    ''' Amount of generated foam

    :type: float
    '''

    foam_layer_name: str = None
    ''' Name of the vertex color layer used for foam

    :type: str
    '''

    frame_end: int = None
    ''' End frame of the ocean baking

    :type: int
    '''

    frame_start: int = None
    ''' Start frame of the ocean baking

    :type: int
    '''

    geometry_mode: typing.Union[int, str] = None
    ''' Method of modifying geometry * GENERATE Generate -- Generate ocean surface geometry at the specified resolution. * DISPLACE Displace -- Displace existing geometry according to simulation.

    :type: typing.Union[int, str]
    '''

    invert_spray: bool = None
    ''' Invert the spray direction map

    :type: bool
    '''

    is_cached: bool = None
    ''' Whether the ocean is using cached data or simulating

    :type: bool
    '''

    random_seed: int = None
    ''' Seed of the random generator

    :type: int
    '''

    repeat_x: int = None
    ''' Repetitions of the generated surface in X

    :type: int
    '''

    repeat_y: int = None
    ''' Repetitions of the generated surface in Y

    :type: int
    '''

    resolution: int = None
    ''' Resolution of the generated surface for rendering and baking

    :type: int
    '''

    sharpen_peak_jonswap: float = None
    ''' Peak sharpening for 'JONSWAP' and 'TMA' models

    :type: float
    '''

    size: float = None
    ''' Surface scale factor (does not affect the height of the waves)

    :type: float
    '''

    spatial_size: int = None
    ''' Size of the simulation domain (in meters), and of the generated geometry (in BU)

    :type: int
    '''

    spectrum: typing.Union[int, str] = None
    ''' Spectrum to use * PHILLIPS Turbulent Ocean -- Use for turbulent seas with foam. * PIERSON_MOSKOWITZ Established Ocean -- Use for a large area, established ocean (Pierson-Moskowitz method). * JONSWAP Established Ocean (Sharp Peaks) -- Use for sharp peaks ('JONSWAP', Pierson-Moskowitz method) with peak sharpening. * TEXEL_MARSEN_ARSLOE Shallow Water -- Use for shallow water ('JONSWAP', 'TMA' - Texel-Marsen-Arsloe method).

    :type: typing.Union[int, str]
    '''

    spray_layer_name: str = None
    ''' Name of the vertex color layer used for the spray direction map

    :type: str
    '''

    time: float = None
    ''' Current time of the simulation

    :type: float
    '''

    use_foam: bool = None
    ''' Generate foam mask as a vertex color channel

    :type: bool
    '''

    use_normals: bool = None
    ''' Output normals for bump mapping - disabling can speed up performance if its not needed

    :type: bool
    '''

    use_spray: bool = None
    ''' Generate map of spray direction as a vertex color channel

    :type: bool
    '''

    viewport_resolution: int = None
    ''' Viewport resolution of the generated surface

    :type: int
    '''

    wave_alignment: float = None
    ''' How much the waves are aligned to each other

    :type: float
    '''

    wave_direction: float = None
    ''' Main direction of the waves when they are (partially) aligned

    :type: float
    '''

    wave_scale: float = None
    ''' Scale of the displacement effect

    :type: float
    '''

    wave_scale_min: float = None
    ''' Shortest allowed wavelength

    :type: float
    '''

    wind_velocity: float = None
    ''' Wind speed

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleInstanceModifier(Modifier, bpy_struct):
    ''' Particle system instancing modifier
    '''

    axis: typing.Union[int, str] = None
    ''' Pole axis for rotation

    :type: typing.Union[int, str]
    '''

    index_layer_name: str = None
    ''' Custom data layer name for the index

    :type: str
    '''

    object: 'Object' = None
    ''' Object that has the particle system

    :type: 'Object'
    '''

    particle_amount: float = None
    ''' Amount of particles to use for instancing

    :type: float
    '''

    particle_offset: float = None
    ''' Relative offset of particles to use for instancing, to avoid overlap of multiple instances

    :type: float
    '''

    particle_system: 'ParticleSystem' = None
    ''' 

    :type: 'ParticleSystem'
    '''

    particle_system_index: int = None
    ''' 

    :type: int
    '''

    position: float = None
    ''' Position along path

    :type: float
    '''

    random_position: float = None
    ''' Randomize position along path

    :type: float
    '''

    random_rotation: float = None
    ''' Randomize rotation around path

    :type: float
    '''

    rotation: float = None
    ''' Rotation around path

    :type: float
    '''

    show_alive: bool = None
    ''' Show instances when particles are alive

    :type: bool
    '''

    show_dead: bool = None
    ''' Show instances when particles are dead

    :type: bool
    '''

    show_unborn: bool = None
    ''' Show instances when particles are unborn

    :type: bool
    '''

    space: typing.Union[int, str] = None
    ''' Space to use for copying mesh data * LOCAL Local -- Use offset from the particle object in the instance object. * WORLD World -- Use world space offset in the instance object.

    :type: typing.Union[int, str]
    '''

    use_children: bool = None
    ''' Create instances from child particles

    :type: bool
    '''

    use_normal: bool = None
    ''' Create instances from normal particles

    :type: bool
    '''

    use_path: bool = None
    ''' Create instances along particle paths

    :type: bool
    '''

    use_preserve_shape: bool = None
    ''' Don't stretch the object

    :type: bool
    '''

    use_size: bool = None
    ''' Use particle size to scale the instances

    :type: bool
    '''

    value_layer_name: str = None
    ''' Custom data layer name for the randomized value

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleSystemModifier(Modifier, bpy_struct):
    ''' Particle system simulation modifier
    '''

    particle_system: 'ParticleSystem' = None
    ''' Particle System that this modifier controls

    :type: 'ParticleSystem'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RemeshModifier(Modifier, bpy_struct):
    ''' Generate a new surface with regular topology that follows the shape of the input mesh
    '''

    adaptivity: float = None
    ''' Reduces the final face count by simplifying geometry where detail is not needed, generating triangles. A value greater than 0 disables Fix Poles

    :type: float
    '''

    mode: typing.Union[int, str] = None
    ''' * BLOCKS Blocks -- Output a blocky surface with no smoothing. * SMOOTH Smooth -- Output a smooth surface with no sharp-features detection. * SHARP Sharp -- Output a surface that reproduces sharp edges and corners from the input mesh. * VOXEL Voxel -- Output a mesh corresponding to the volume of the original mesh.

    :type: typing.Union[int, str]
    '''

    octree_depth: int = None
    ''' Resolution of the octree; higher values give finer details

    :type: int
    '''

    scale: float = None
    ''' The ratio of the largest dimension of the model over the size of the grid

    :type: float
    '''

    sharpness: float = None
    ''' Tolerance for outliers; lower values filter noise while higher values will reproduce edges closer to the input

    :type: float
    '''

    threshold: float = None
    ''' If removing disconnected pieces, minimum size of components to preserve as a ratio of the number of polygons in the largest component

    :type: float
    '''

    use_remove_disconnected: bool = None
    ''' 

    :type: bool
    '''

    use_smooth_shade: bool = None
    ''' Output faces with smooth shading rather than flat shaded

    :type: bool
    '''

    voxel_size: float = None
    ''' Size of the voxel in object space used for volume evaluation. Lower values preserve finer details

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ScrewModifier(Modifier, bpy_struct):
    ''' Revolve edges
    '''

    angle: float = None
    ''' Angle of revolution

    :type: float
    '''

    axis: typing.Union[int, str] = None
    ''' Screw axis

    :type: typing.Union[int, str]
    '''

    iterations: int = None
    ''' Number of times to apply the screw operation

    :type: int
    '''

    merge_threshold: float = None
    ''' Limit below which to merge vertices

    :type: float
    '''

    object: 'Object' = None
    ''' Object to define the screw axis

    :type: 'Object'
    '''

    render_steps: int = None
    ''' Number of steps in the revolution

    :type: int
    '''

    screw_offset: float = None
    ''' Offset the revolution along its axis

    :type: float
    '''

    steps: int = None
    ''' Number of steps in the revolution

    :type: int
    '''

    use_merge_vertices: bool = None
    ''' Merge adjacent vertices (screw offset must be zero)

    :type: bool
    '''

    use_normal_calculate: bool = None
    ''' Calculate the order of edges (needed for meshes, but not curves)

    :type: bool
    '''

    use_normal_flip: bool = None
    ''' Flip normals of lathed faces

    :type: bool
    '''

    use_object_screw_offset: bool = None
    ''' Use the distance between the objects to make a screw

    :type: bool
    '''

    use_smooth_shade: bool = None
    ''' Output faces with smooth shading rather than flat shaded

    :type: bool
    '''

    use_stretch_u: bool = None
    ''' Stretch the U coordinates between 0 and 1 when UV's are present

    :type: bool
    '''

    use_stretch_v: bool = None
    ''' Stretch the V coordinates between 0 and 1 when UV's are present

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShrinkwrapModifier(Modifier, bpy_struct):
    ''' Shrink wrapping modifier to shrink wrap and object to a target
    '''

    auxiliary_target: 'Object' = None
    ''' Additional mesh target to shrink to

    :type: 'Object'
    '''

    cull_face: typing.Union[int, str] = None
    ''' Stop vertices from projecting to a face on the target when facing towards/away * OFF Off -- No culling. * FRONT Front -- No projection when in front of the face. * BACK Back -- No projection when behind the face.

    :type: typing.Union[int, str]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    offset: float = None
    ''' Distance to keep from the target

    :type: float
    '''

    project_limit: float = None
    ''' Limit the distance used for projection (zero disables)

    :type: float
    '''

    subsurf_levels: int = None
    ''' Number of subdivisions that must be performed before extracting vertices' positions and normals

    :type: int
    '''

    target: 'Object' = None
    ''' Mesh target to shrink to

    :type: 'Object'
    '''

    use_invert_cull: bool = None
    ''' When projecting in the negative direction invert the face cull mode

    :type: bool
    '''

    use_negative_direction: bool = None
    ''' Allow vertices to move in the negative direction of axis

    :type: bool
    '''

    use_positive_direction: bool = None
    ''' Allow vertices to move in the positive direction of axis

    :type: bool
    '''

    use_project_x: bool = None
    ''' 

    :type: bool
    '''

    use_project_y: bool = None
    ''' 

    :type: bool
    '''

    use_project_z: bool = None
    ''' 

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    wrap_method: typing.Union[int, str] = None
    ''' * NEAREST_SURFACEPOINT Nearest Surface Point -- Shrink the mesh to the nearest target surface. * PROJECT Project -- Shrink the mesh to the nearest target surface along a given axis. * NEAREST_VERTEX Nearest Vertex -- Shrink the mesh to the nearest target vertex. * TARGET_PROJECT Target Normal Project -- Shrink the mesh to the nearest target surface along the interpolated vertex normals of the target.

    :type: typing.Union[int, str]
    '''

    wrap_mode: typing.Union[int, str] = None
    ''' Select how vertices are constrained to the target surface * ON_SURFACE On Surface -- The point is constrained to the surface of the target object, with distance offset towards the original point location. * INSIDE Inside -- The point is constrained to be inside the target object. * OUTSIDE Outside -- The point is constrained to be outside the target object. * OUTSIDE_SURFACE Outside Surface -- The point is constrained to the surface of the target object, with distance offset always to the outside, towards or away from the original location. * ABOVE_SURFACE Above Surface -- The point is constrained to the surface of the target object, with distance offset applied exactly along the target normal.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SimpleDeformModifier(Modifier, bpy_struct):
    ''' Simple deformation modifier to apply effects such as twisting and bending
    '''

    angle: float = None
    ''' Angle of deformation

    :type: float
    '''

    deform_axis: typing.Union[int, str] = None
    ''' Deform around local axis

    :type: typing.Union[int, str]
    '''

    deform_method: typing.Union[int, str] = None
    ''' * TWIST Twist -- Rotate around the Z axis of the modifier space. * BEND Bend -- Bend the mesh over the Z axis of the modifier space. * TAPER Taper -- Linearly scale along Z axis of the modifier space. * STRETCH Stretch -- Stretch the object along the Z axis of the modifier space.

    :type: typing.Union[int, str]
    '''

    factor: float = None
    ''' Amount to deform object

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    limits: typing.List[float] = None
    ''' Lower/Upper limits for deform

    :type: typing.List[float]
    '''

    lock_x: bool = None
    ''' Do not allow deformation along the X axis

    :type: bool
    '''

    lock_y: bool = None
    ''' Do not allow deformation along the Y axis

    :type: bool
    '''

    lock_z: bool = None
    ''' Do not allow deformation along the Z axis

    :type: bool
    '''

    origin: 'Object' = None
    ''' Offset the origin and orientation of the deformation

    :type: 'Object'
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SkinModifier(Modifier, bpy_struct):
    ''' Generate Skin
    '''

    branch_smoothing: float = None
    ''' Smooth complex geometry around branches

    :type: float
    '''

    use_smooth_shade: bool = None
    ''' Output faces with smooth shading rather than flat shaded

    :type: bool
    '''

    use_x_symmetry: bool = None
    ''' Avoid making unsymmetrical quads across the X axis

    :type: bool
    '''

    use_y_symmetry: bool = None
    ''' Avoid making unsymmetrical quads across the Y axis

    :type: bool
    '''

    use_z_symmetry: bool = None
    ''' Avoid making unsymmetrical quads across the Z axis

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SmoothModifier(Modifier, bpy_struct):
    ''' Smoothing effect modifier
    '''

    factor: float = None
    ''' Strength of modifier effect

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    iterations: int = None
    ''' 

    :type: int
    '''

    use_x: bool = None
    ''' Smooth object along X axis

    :type: bool
    '''

    use_y: bool = None
    ''' Smooth object along Y axis

    :type: bool
    '''

    use_z: bool = None
    ''' Smooth object along Z axis

    :type: bool
    '''

    vertex_group: str = None
    ''' Name of Vertex Group which determines influence of modifier per point

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SoftBodyModifier(Modifier, bpy_struct):
    ''' Soft body simulation modifier
    '''

    point_cache: 'PointCache' = None
    ''' 

    :type: 'PointCache'
    '''

    settings: 'SoftBodySettings' = None
    ''' 

    :type: 'SoftBodySettings'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SolidifyModifier(Modifier, bpy_struct):
    ''' Create a solid skin, compensating for sharp angles
    '''

    bevel_convex: float = None
    ''' Edge bevel weight to be added to outside edges

    :type: float
    '''

    edge_crease_inner: float = None
    ''' Assign a crease to inner edges

    :type: float
    '''

    edge_crease_outer: float = None
    ''' Assign a crease to outer edges

    :type: float
    '''

    edge_crease_rim: float = None
    ''' Assign a crease to the edges making up the rim

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert the vertex group influence

    :type: bool
    '''

    material_offset: int = None
    ''' Offset material index of generated faces

    :type: int
    '''

    material_offset_rim: int = None
    ''' Offset material index of generated rim faces

    :type: int
    '''

    nonmanifold_boundary_mode: typing.Union[int, str] = None
    ''' Selects the boundary adjustment algorithm * NONE None -- No shape correction. * ROUND Round -- Round open perimeter shape. * FLAT Flat -- Flat open perimeter shape.

    :type: typing.Union[int, str]
    '''

    nonmanifold_merge_threshold: float = None
    ''' Distance within which degenerated geometry is merged

    :type: float
    '''

    nonmanifold_thickness_mode: typing.Union[int, str] = None
    ''' Selects the used thickness algorithm * FIXED Fixed -- Most basic thickness calculation. * EVEN Even -- Even thickness calculation which takes the angle between faces into account. * CONSTRAINTS Constraints -- Thickness calculation using constraints, most advanced.

    :type: typing.Union[int, str]
    '''

    offset: float = None
    ''' Offset the thickness from the center

    :type: float
    '''

    rim_vertex_group: str = None
    ''' Vertex group that the generated rim geometry will be weighted to

    :type: str
    '''

    shell_vertex_group: str = None
    ''' Vertex group that the generated shell geometry will be weighted to

    :type: str
    '''

    solidify_mode: typing.Union[int, str] = None
    ''' Selects the used algorithm * EXTRUDE Simple -- Output a solidified version of a mesh by simple extrusion. * NON_MANIFOLD Complex -- Output a manifold mesh even if the base mesh is non-manifold, where edges have 3 or more connecting faces. This method is slower.

    :type: typing.Union[int, str]
    '''

    thickness: float = None
    ''' Thickness of the shell

    :type: float
    '''

    thickness_clamp: float = None
    ''' Offset clamp based on geometry scale

    :type: float
    '''

    thickness_vertex_group: float = None
    ''' Thickness factor to use for zero vertex group influence

    :type: float
    '''

    use_even_offset: bool = None
    ''' Maintain thickness by adjusting for sharp corners (slow, disable when not needed)

    :type: bool
    '''

    use_flat_faces: bool = None
    ''' Make faces use the minimal vertex weight assigned to their vertices(ensures new faces remain parallel to their original ones, slow, disable when not needed)

    :type: bool
    '''

    use_flip_normals: bool = None
    ''' Invert the face direction

    :type: bool
    '''

    use_quality_normals: bool = None
    ''' Calculate normals which result in more even thickness (slow, disable when not needed)

    :type: bool
    '''

    use_rim: bool = None
    ''' Create edge loops between the inner and outer surfaces on face edges (slow, disable when not needed)

    :type: bool
    '''

    use_rim_only: bool = None
    ''' Only add the rim to the original data

    :type: bool
    '''

    use_thickness_angle_clamp: bool = None
    ''' Clamp thickness based on angles

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SubsurfModifier(Modifier, bpy_struct):
    ''' Subdivision surface modifier
    '''

    boundary_smooth: typing.Union[int, str] = None
    ''' Controls how open boundaries are smoothed * PRESERVE_CORNERS Keep Corners -- Smooth boundaries, but corners are kept sharp. * ALL All -- Smooth boundaries, including corners.

    :type: typing.Union[int, str]
    '''

    levels: int = None
    ''' Number of subdivisions to perform

    :type: int
    '''

    quality: int = None
    ''' Accuracy of vertex positions, lower value is faster but less precise

    :type: int
    '''

    render_levels: int = None
    ''' Number of subdivisions to perform when rendering

    :type: int
    '''

    show_only_control_edges: bool = None
    ''' Skip displaying interior subdivided edges

    :type: bool
    '''

    subdivision_type: typing.Union[int, str] = None
    ''' Select type of subdivision algorithm

    :type: typing.Union[int, str]
    '''

    use_creases: bool = None
    ''' Use mesh edge crease information to sharpen edges

    :type: bool
    '''

    use_custom_normals: bool = None
    ''' Interpolates existing custom normals to resulting mesh

    :type: bool
    '''

    use_limit_surface: bool = None
    ''' Place vertices at the surface that would be produced with infinite levels of subdivision (smoothest possible shape)

    :type: bool
    '''

    uv_smooth: typing.Union[int, str] = None
    ''' Controls how smoothing is applied to UVs * NONE None -- UVs are not smoothed, boundaries are kept sharp. * PRESERVE_CORNERS Keep Corners -- UVs are smoothed, corners on discontinuous boundary are kept sharp. * PRESERVE_CORNERS_AND_JUNCTIONS Keep Corners, Junctions -- UVs are smoothed, corners on discontinuous boundary and junctions of 3 or more regions are kept sharp. * PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE Keep Corners, Junctions, Concave -- UVs are smoothed, corners on discontinuous boundary, junctions of 3 or more regions and darts and concave corners are kept sharp. * PRESERVE_BOUNDARIES Keep Boundaries -- UVs are smoothed, boundaries are kept sharp. * SMOOTH_ALL All -- UVs and boundaries are smoothed.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SurfaceDeformModifier(Modifier, bpy_struct):
    falloff: float = None
    ''' Controls how much nearby polygons influence deformation

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    is_bound: bool = None
    ''' Whether geometry has been bound to target mesh

    :type: bool
    '''

    strength: float = None
    ''' Strength of modifier deformations

    :type: float
    '''

    target: 'Object' = None
    ''' Mesh object to deform with

    :type: 'Object'
    '''

    use_sparse_bind: bool = None
    ''' Only record binding data for vertices matching the vertex group at the time of bind

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for selecting/weighting the affected areas

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SurfaceModifier(Modifier, bpy_struct):
    ''' Surface modifier defining modifier stack position used for surface fields
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TriangulateModifier(Modifier, bpy_struct):
    ''' Triangulate Mesh
    '''

    keep_custom_normals: bool = None
    ''' Try to preserve custom normals. Warning: Depending on chosen triangulation method, shading may not be fully preserved, "Fixed" method usually gives the best result here

    :type: bool
    '''

    min_vertices: int = None
    ''' Triangulate only polygons with vertex count greater than or equal to this number

    :type: int
    '''

    ngon_method: typing.Union[int, str] = None
    ''' Method for splitting the n-gons into triangles * BEAUTY Beauty -- Arrange the new triangles evenly (slow). * CLIP Clip -- Split the polygons with an ear clipping algorithm.

    :type: typing.Union[int, str]
    '''

    quad_method: typing.Union[int, str] = None
    ''' Method for splitting the quads into triangles * BEAUTY Beauty -- Split the quads in nice triangles, slower method. * FIXED Fixed -- Split the quads on the first and third vertices. * FIXED_ALTERNATE Fixed Alternate -- Split the quads on the 2nd and 4th vertices. * SHORTEST_DIAGONAL Shortest Diagonal -- Split the quads based on the distance between the vertices.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UVProjectModifier(Modifier, bpy_struct):
    ''' UV projection modifier to set UVs from a projector
    '''

    aspect_x: float = None
    ''' Horizontal aspect ratio (only used for camera projectors)

    :type: float
    '''

    aspect_y: float = None
    ''' Vertical aspect ratio (only used for camera projectors)

    :type: float
    '''

    projector_count: int = None
    ''' Number of projectors to use

    :type: int
    '''

    projectors: typing.Union[typing.Dict[str, 'UVProjector'], typing.
                             List['UVProjector'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'UVProjector'], typing.List['UVProjector'], 'bpy_prop_collection']
    '''

    scale_x: float = None
    ''' Horizontal scale (only used for camera projectors)

    :type: float
    '''

    scale_y: float = None
    ''' Vertical scale (only used for camera projectors)

    :type: float
    '''

    uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UVWarpModifier(Modifier, bpy_struct):
    ''' Add target position to uv coordinates
    '''

    axis_u: typing.Union[int, str] = None
    ''' Pole axis for rotation

    :type: typing.Union[int, str]
    '''

    axis_v: typing.Union[int, str] = None
    ''' Pole axis for rotation

    :type: typing.Union[int, str]
    '''

    bone_from: str = None
    ''' Bone defining offset

    :type: str
    '''

    bone_to: str = None
    ''' Bone defining offset

    :type: str
    '''

    center: typing.List[float] = None
    ''' Center point for rotate/scale

    :type: typing.List[float]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    object_from: 'Object' = None
    ''' Object defining offset

    :type: 'Object'
    '''

    object_to: 'Object' = None
    ''' Object defining offset

    :type: 'Object'
    '''

    offset: typing.List[float] = None
    ''' 2D Offset for the warp

    :type: typing.List[float]
    '''

    rotation: float = None
    ''' 2D Rotation for the warp

    :type: float
    '''

    scale: typing.List[float] = None
    ''' 2D Scale for the warp

    :type: typing.List[float]
    '''

    uv_layer: str = None
    ''' UV Layer name

    :type: str
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexWeightEditModifier(Modifier, bpy_struct):
    ''' Edit the weights of vertices in a group
    '''

    add_threshold: float = None
    ''' Lower bound for a vertex's weight to be added to the vgroup

    :type: float
    '''

    default_weight: float = None
    ''' Default weight a vertex will have if it is not in the vgroup

    :type: float
    '''

    falloff_type: typing.Union[int, str] = None
    ''' How weights are mapped to their new values * LINEAR Linear -- Null action. * CURVE Custom Curve. * SHARP Sharp. * SMOOTH Smooth. * ROOT Root. * ICON_SPHERECURVE Sphere. * RANDOM Random. * STEP Median Step -- Map all values below 0.5 to 0.0, and all others to 1.0.

    :type: typing.Union[int, str]
    '''

    invert_falloff: bool = None
    ''' Invert the resulting falloff weight

    :type: bool
    '''

    invert_mask_vertex_group: bool = None
    ''' Invert vertex group mask influence

    :type: bool
    '''

    map_curve: 'CurveMapping' = None
    ''' Custom mapping curve

    :type: 'CurveMapping'
    '''

    mask_constant: float = None
    ''' Global influence of current modifications on vgroup

    :type: float
    '''

    mask_tex_map_bone: str = None
    ''' Which bone to take texture coordinates from

    :type: str
    '''

    mask_tex_map_object: 'Object' = None
    ''' Which object to take texture coordinates from

    :type: 'Object'
    '''

    mask_tex_mapping: typing.Union[int, str] = None
    ''' Which texture coordinates to use for mapping * LOCAL Local -- Use local generated coordinates. * GLOBAL Global -- Use global coordinates. * OBJECT Object -- Use local generated coordinates of another object. * UV UV -- Use coordinates from an UV layer.

    :type: typing.Union[int, str]
    '''

    mask_tex_use_channel: typing.Union[int, str] = None
    ''' Which texture channel to use for masking

    :type: typing.Union[int, str]
    '''

    mask_tex_uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    mask_texture: 'Texture' = None
    ''' Masking texture

    :type: 'Texture'
    '''

    mask_vertex_group: str = None
    ''' Masking vertex group name

    :type: str
    '''

    normalize: bool = None
    ''' Normalize the resulting weights (otherwise they are only clamped within 0.0 to 1.0 range)

    :type: bool
    '''

    remove_threshold: float = None
    ''' Upper bound for a vertex's weight to be removed from the vgroup

    :type: float
    '''

    use_add: bool = None
    ''' Add vertices with weight over threshold to vgroup

    :type: bool
    '''

    use_remove: bool = None
    ''' Remove vertices with weight below threshold from vgroup

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexWeightMixModifier(Modifier, bpy_struct):
    ''' Mix the weights of two vertex groups
    '''

    default_weight_a: float = None
    ''' Default weight a vertex will have if it is not in the first A vgroup

    :type: float
    '''

    default_weight_b: float = None
    ''' Default weight a vertex will have if it is not in the second B vgroup

    :type: float
    '''

    invert_mask_vertex_group: bool = None
    ''' Invert vertex group mask influence

    :type: bool
    '''

    invert_vertex_group_a: bool = None
    ''' Invert the influence of vertex group A

    :type: bool
    '''

    invert_vertex_group_b: bool = None
    ''' Invert the influence of vertex group B

    :type: bool
    '''

    mask_constant: float = None
    ''' Global influence of current modifications on vgroup

    :type: float
    '''

    mask_tex_map_bone: str = None
    ''' Which bone to take texture coordinates from

    :type: str
    '''

    mask_tex_map_object: 'Object' = None
    ''' Which object to take texture coordinates from

    :type: 'Object'
    '''

    mask_tex_mapping: typing.Union[int, str] = None
    ''' Which texture coordinates to use for mapping * LOCAL Local -- Use local generated coordinates. * GLOBAL Global -- Use global coordinates. * OBJECT Object -- Use local generated coordinates of another object. * UV UV -- Use coordinates from an UV layer.

    :type: typing.Union[int, str]
    '''

    mask_tex_use_channel: typing.Union[int, str] = None
    ''' Which texture channel to use for masking

    :type: typing.Union[int, str]
    '''

    mask_tex_uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    mask_texture: 'Texture' = None
    ''' Masking texture

    :type: 'Texture'
    '''

    mask_vertex_group: str = None
    ''' Masking vertex group name

    :type: str
    '''

    mix_mode: typing.Union[int, str] = None
    ''' How weights from vgroup B affect weights of vgroup A * SET Replace -- Replace VGroup A's weights by VGroup B's ones. * ADD Add -- Add VGroup B's weights to VGroup A's ones. * SUB Subtract -- Subtract VGroup B's weights from VGroup A's ones. * MUL Multiply -- Multiply VGroup A's weights by VGroup B's ones. * DIV Divide -- Divide VGroup A's weights by VGroup B's ones. * DIF Difference -- Difference between VGroup A's and VGroup B's weights. * AVG Average -- Average value of VGroup A's and VGroup B's weights.

    :type: typing.Union[int, str]
    '''

    mix_set: typing.Union[int, str] = None
    ''' Which vertices should be affected * ALL All -- Affect all vertices (might add some to VGroup A). * A VGroup A -- Affect vertices in VGroup A. * B VGroup B -- Affect vertices in VGroup B (might add some to VGroup A). * OR VGroup A or B -- Affect vertices in at least one of both VGroups (might add some to VGroup A). * AND VGroup A and B -- Affect vertices in both groups.

    :type: typing.Union[int, str]
    '''

    normalize: bool = None
    ''' Normalize the resulting weights (otherwise they are only clamped within 0.0 to 1.0 range)

    :type: bool
    '''

    vertex_group_a: str = None
    ''' First vertex group name

    :type: str
    '''

    vertex_group_b: str = None
    ''' Second vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexWeightProximityModifier(Modifier, bpy_struct):
    ''' Set the weights of vertices in a group from a target object's distance
    '''

    falloff_type: typing.Union[int, str] = None
    ''' How weights are mapped to their new values * LINEAR Linear -- Null action. * CURVE Custom Curve. * SHARP Sharp. * SMOOTH Smooth. * ROOT Root. * ICON_SPHERECURVE Sphere. * RANDOM Random. * STEP Median Step -- Map all values below 0.5 to 0.0, and all others to 1.0.

    :type: typing.Union[int, str]
    '''

    invert_falloff: bool = None
    ''' Invert the resulting falloff weight

    :type: bool
    '''

    invert_mask_vertex_group: bool = None
    ''' Invert vertex group mask influence

    :type: bool
    '''

    map_curve: 'CurveMapping' = None
    ''' Custom mapping curve

    :type: 'CurveMapping'
    '''

    mask_constant: float = None
    ''' Global influence of current modifications on vgroup

    :type: float
    '''

    mask_tex_map_bone: str = None
    ''' Which bone to take texture coordinates from

    :type: str
    '''

    mask_tex_map_object: 'Object' = None
    ''' Which object to take texture coordinates from

    :type: 'Object'
    '''

    mask_tex_mapping: typing.Union[int, str] = None
    ''' Which texture coordinates to use for mapping * LOCAL Local -- Use local generated coordinates. * GLOBAL Global -- Use global coordinates. * OBJECT Object -- Use local generated coordinates of another object. * UV UV -- Use coordinates from an UV layer.

    :type: typing.Union[int, str]
    '''

    mask_tex_use_channel: typing.Union[int, str] = None
    ''' Which texture channel to use for masking

    :type: typing.Union[int, str]
    '''

    mask_tex_uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    mask_texture: 'Texture' = None
    ''' Masking texture

    :type: 'Texture'
    '''

    mask_vertex_group: str = None
    ''' Masking vertex group name

    :type: str
    '''

    max_dist: float = None
    ''' Distance mapping to weight 1.0

    :type: float
    '''

    min_dist: float = None
    ''' Distance mapping to weight 0.0

    :type: float
    '''

    normalize: bool = None
    ''' Normalize the resulting weights (otherwise they are only clamped within 0.0 to 1.0 range)

    :type: bool
    '''

    proximity_geometry: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Use the shortest computed distance to target object's geometry as weight * VERTEX Vertex -- Compute distance to nearest vertex. * EDGE Edge -- Compute distance to nearest edge. * FACE Face -- Compute distance to nearest face.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    proximity_mode: typing.Union[int, str] = None
    ''' Which distances to target object to use * OBJECT Object -- Use distance between affected and target objects. * GEOMETRY Geometry -- Use distance between affected object's vertices and target object, or target object's geometry.

    :type: typing.Union[int, str]
    '''

    target: 'Object' = None
    ''' Object to calculate vertices distances from

    :type: 'Object'
    '''

    vertex_group: str = None
    ''' Vertex group name

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VolumeDisplaceModifier(Modifier, bpy_struct):
    strength: float = None
    ''' Strength of the displacement

    :type: float
    '''

    texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    texture_map_mode: typing.Union[int, str] = None
    ''' * LOCAL Local -- Use the local coordinate system for the texture coordinates. * GLOBAL Global -- Use the global coordinate system for the texture coordinates. * OBJECT Object -- Use the linked object's local coordinate system for the texture coordinates.

    :type: typing.Union[int, str]
    '''

    texture_map_object: 'Object' = None
    ''' Object to use for texture mapping

    :type: 'Object'
    '''

    texture_mid_level: typing.List[float] = None
    ''' Subtracted from the texture color to get a displacement vector

    :type: typing.List[float]
    '''

    texture_sample_radius: float = None
    ''' Smaller values result in better performance but might cut off the volume

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VolumeToMeshModifier(Modifier, bpy_struct):
    adaptivity: float = None
    ''' Reduces the final face count by simplifying geometry where detail is not needed

    :type: float
    '''

    grid_name: str = None
    ''' Grid in the volume object that is converted to a mesh

    :type: str
    '''

    object: 'Object' = None
    ''' Object

    :type: 'Object'
    '''

    resolution_mode: typing.Union[int, str] = None
    ''' Mode for how the desired voxel size is specified * GRID Grid -- Use resolution of the volume grid. * VOXEL_AMOUNT Voxel Amount -- Desired number of voxels along one axis. * VOXEL_SIZE Voxel Size -- Desired voxel side length.

    :type: typing.Union[int, str]
    '''

    threshold: float = None
    ''' Voxels with a larger value are inside the generated mesh

    :type: float
    '''

    use_smooth_shade: bool = None
    ''' Output faces with smooth shading rather than flat shaded

    :type: bool
    '''

    voxel_amount: int = None
    ''' Approximate number of voxels along one axis

    :type: int
    '''

    voxel_size: float = None
    ''' Smaller values result in a higher resolution output

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WarpModifier(Modifier, bpy_struct):
    ''' Warp modifier
    '''

    bone_from: str = None
    ''' Bone to transform from

    :type: str
    '''

    bone_to: str = None
    ''' Bone defining offset

    :type: str
    '''

    falloff_curve: 'CurveMapping' = None
    ''' Custom falloff curve

    :type: 'CurveMapping'
    '''

    falloff_radius: float = None
    ''' Radius to apply

    :type: float
    '''

    falloff_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    object_from: 'Object' = None
    ''' Object to transform from

    :type: 'Object'
    '''

    object_to: 'Object' = None
    ''' Object to transform to

    :type: 'Object'
    '''

    strength: float = None
    ''' 

    :type: float
    '''

    texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    texture_coords: typing.Union[int, str] = None
    ''' * LOCAL Local -- Use the local coordinate system for the texture coordinates. * GLOBAL Global -- Use the global coordinate system for the texture coordinates. * OBJECT Object -- Use the linked object's local coordinate system for the texture coordinates. * UV UV -- Use UV coordinates for the texture coordinates.

    :type: typing.Union[int, str]
    '''

    texture_coords_bone: str = None
    ''' Bone to set the texture coordinates

    :type: str
    '''

    texture_coords_object: 'Object' = None
    ''' Object to set the texture coordinates

    :type: 'Object'
    '''

    use_volume_preserve: bool = None
    ''' Preserve volume when rotations are used

    :type: bool
    '''

    uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the deform

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WaveModifier(Modifier, bpy_struct):
    ''' Wave effect modifier
    '''

    damping_time: float = None
    ''' Number of frames in which the wave damps out after it dies

    :type: float
    '''

    falloff_radius: float = None
    ''' Distance after which it fades out

    :type: float
    '''

    height: float = None
    ''' Height of the wave

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    lifetime: float = None
    ''' Lifetime of the wave in frames, zero means infinite

    :type: float
    '''

    narrowness: float = None
    ''' Distance between the top and the base of a wave, the higher the value, the more narrow the wave

    :type: float
    '''

    speed: float = None
    ''' Speed of the wave, towards the starting point when negative

    :type: float
    '''

    start_position_object: 'Object' = None
    ''' Object which defines the wave center

    :type: 'Object'
    '''

    start_position_x: float = None
    ''' X coordinate of the start position

    :type: float
    '''

    start_position_y: float = None
    ''' Y coordinate of the start position

    :type: float
    '''

    texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    texture_coords: typing.Union[int, str] = None
    ''' * LOCAL Local -- Use the local coordinate system for the texture coordinates. * GLOBAL Global -- Use the global coordinate system for the texture coordinates. * OBJECT Object -- Use the linked object's local coordinate system for the texture coordinates. * UV UV -- Use UV coordinates for the texture coordinates.

    :type: typing.Union[int, str]
    '''

    texture_coords_bone: str = None
    ''' Bone to set the texture coordinates

    :type: str
    '''

    texture_coords_object: 'Object' = None
    ''' Object to set the texture coordinates

    :type: 'Object'
    '''

    time_offset: float = None
    ''' Either the starting frame (for positive speed) or ending frame (for negative speed.)

    :type: float
    '''

    use_cyclic: bool = None
    ''' Cyclic wave effect

    :type: bool
    '''

    use_normal: bool = None
    ''' Displace along normals

    :type: bool
    '''

    use_normal_x: bool = None
    ''' Enable displacement along the X normal

    :type: bool
    '''

    use_normal_y: bool = None
    ''' Enable displacement along the Y normal

    :type: bool
    '''

    use_normal_z: bool = None
    ''' Enable displacement along the Z normal

    :type: bool
    '''

    use_x: bool = None
    ''' X axis motion

    :type: bool
    '''

    use_y: bool = None
    ''' Y axis motion

    :type: bool
    '''

    uv_layer: str = None
    ''' UV map name

    :type: str
    '''

    vertex_group: str = None
    ''' Vertex group name for modulating the wave

    :type: str
    '''

    width: float = None
    ''' Distance between the waves

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WeightedNormalModifier(Modifier, bpy_struct):
    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    keep_sharp: bool = None
    ''' Keep sharp edges as computed for default split normals, instead of setting a single weighted normal for each vertex

    :type: bool
    '''

    mode: typing.Union[int, str] = None
    ''' Weighted vertex normal mode to use * FACE_AREA Face Area -- Generate face area weighted normals. * CORNER_ANGLE Corner Angle -- Generate corner angle weighted normals. * FACE_AREA_WITH_ANGLE Face Area And Angle -- Generated normals weighted by both face area and angle.

    :type: typing.Union[int, str]
    '''

    thresh: float = None
    ''' Threshold value for different weights to be considered equal

    :type: float
    '''

    use_face_influence: bool = None
    ''' Use influence of face for weighting

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for modifying the selected areas

    :type: str
    '''

    weight: int = None
    ''' Corrective factor applied to faces' weights, 50 is neutral, lower values increase weight of weak faces, higher values increase weight of strong faces

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WeldModifier(Modifier, bpy_struct):
    ''' Weld modifier
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    loose_edges: bool = None
    ''' Collapse edges without faces, cloth sewing edges

    :type: bool
    '''

    merge_threshold: float = None
    ''' Limit below which to merge vertices

    :type: float
    '''

    mode: typing.Union[int, str] = None
    ''' Mode defines the merge rule * ALL All -- Full merge by distance. * CONNECTED Connected -- Only merge along the edges.

    :type: typing.Union[int, str]
    '''

    vertex_group: str = None
    ''' Vertex group name for selecting the affected areas

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WireframeModifier(Modifier, bpy_struct):
    ''' Wireframe effect modifier
    '''

    crease_weight: float = None
    ''' Crease weight (if active)

    :type: float
    '''

    invert_vertex_group: bool = None
    ''' Invert vertex group influence

    :type: bool
    '''

    material_offset: int = None
    ''' Offset material index of generated faces

    :type: int
    '''

    offset: float = None
    ''' Offset the thickness from the center

    :type: float
    '''

    thickness: float = None
    ''' Thickness factor

    :type: float
    '''

    thickness_vertex_group: float = None
    ''' Thickness factor to use for zero vertex group influence

    :type: float
    '''

    use_boundary: bool = None
    ''' Support face boundaries

    :type: bool
    '''

    use_crease: bool = None
    ''' Crease hub edges for improved subdivision surface

    :type: bool
    '''

    use_even_offset: bool = None
    ''' Scale the offset to give more even thickness

    :type: bool
    '''

    use_relative_offset: bool = None
    ''' Scale the offset by surrounding geometry

    :type: bool
    '''

    use_replace: bool = None
    ''' Remove original geometry

    :type: bool
    '''

    vertex_group: str = None
    ''' Vertex group name for selecting the affected areas

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeCustomGroup(Node, bpy_struct):
    ''' Base node type for custom registered node group types
    '''

    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeInternal(Node, bpy_struct):
    @classmethod
    def poll(cls, node_tree: 'NodeTree'):
        ''' If non-null output is returned, the node type can be added to the tree

        :param node_tree: Node Tree
        :type node_tree: 'NodeTree'
        '''
        pass

    def poll_instance(self, node_tree: 'NodeTree'):
        ''' If non-null output is returned, the node can be added to the tree

        :param node_tree: Node Tree
        :type node_tree: 'NodeTree'
        '''
        pass

    def update(self):
        ''' Update on node graph topology changes (adding or removing nodes and links)

        '''
        pass

    def draw_buttons(self, context: 'Context', layout: 'UILayout'):
        ''' Draw node buttons

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        '''
        pass

    def draw_buttons_ext(self, context: 'Context', layout: 'UILayout'):
        ''' Draw node buttons in the sidebar

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketStandard(NodeSocket, bpy_struct):
    links = None
    ''' List of node links from or to this socket. (readonly)'''

    def draw(self, context: 'Context', layout: 'UILayout', node: 'Node',
             text: str):
        ''' Draw socket

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        :param node: Node, Node the socket belongs to
        :type node: 'Node'
        :param text: Text, Text label to draw alongside properties
        :type text: str
        '''
        pass

    def draw_color(self, context: 'Context',
                   node: 'Node') -> typing.List[float]:
        ''' Color of the socket icon

        :param context: 
        :type context: 'Context'
        :param node: Node, Node the socket belongs to
        :type node: 'Node'
        :rtype: typing.List[float]
        :return: Color
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceStandard(NodeSocketInterface, bpy_struct):
    type: typing.Union[int, str] = None
    ''' Data type

    :type: typing.Union[int, str]
    '''

    def draw(self, context: 'Context', layout: 'UILayout'):
        ''' Draw template settings

        :param context: 
        :type context: 'Context'
        :param layout: Layout, Layout in the UI
        :type layout: 'UILayout'
        '''
        pass

    def draw_color(self, context: 'Context') -> typing.List[float]:
        ''' Color of the socket icon

        :param context: 
        :type context: 'Context'
        :rtype: typing.List[float]
        :return: Color
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GpPaint(Paint, bpy_struct):
    color_mode: typing.Union[int, str] = None
    ''' Paint Mode * MATERIAL Material -- Paint using the active material base color. * VERTEXCOLOR Vertex Color -- Paint the material with custom vertex color.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GpSculptPaint(Paint, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GpVertexPaint(Paint, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GpWeightPaint(Paint, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ImagePaint(Paint, bpy_struct):
    ''' Properties of image and texture painting mode
    '''

    canvas: 'Image' = None
    ''' Image used as canvas

    :type: 'Image'
    '''

    clone_image: 'Image' = None
    ''' Image used as clone source

    :type: 'Image'
    '''

    dither: float = None
    ''' Amount of dithering when painting on byte images

    :type: float
    '''

    interpolation: typing.Union[int, str] = None
    ''' Texture filtering type * LINEAR Linear -- Linear interpolation. * CLOSEST Closest -- No interpolation (sample closest texel).

    :type: typing.Union[int, str]
    '''

    invert_stencil: bool = None
    ''' Invert the stencil layer

    :type: bool
    '''

    missing_materials: bool = None
    ''' The mesh is missing materials

    :type: bool
    '''

    missing_stencil: bool = None
    ''' Image Painting does not have a stencil

    :type: bool
    '''

    missing_texture: bool = None
    ''' Image Painting does not have a texture to paint on

    :type: bool
    '''

    missing_uvs: bool = None
    ''' A UV layer is missing on the mesh

    :type: bool
    '''

    mode: typing.Union[int, str] = None
    ''' Mode of operation for projection painting * MATERIAL Material -- Detect image slots from the material. * IMAGE Single Image -- Set image for texture painting directly.

    :type: typing.Union[int, str]
    '''

    normal_angle: int = None
    ''' Paint most on faces pointing towards the view according to this angle

    :type: int
    '''

    screen_grab_size: typing.List[int] = None
    ''' Size to capture the image for re-projecting

    :type: typing.List[int]
    '''

    seam_bleed: int = None
    ''' Extend paint beyond the faces UVs to reduce seams (in pixels, slower)

    :type: int
    '''

    stencil_color: typing.List[float] = None
    ''' Stencil color in the viewport

    :type: typing.List[float]
    '''

    stencil_image: 'Image' = None
    ''' Image used as stencil

    :type: 'Image'
    '''

    use_backface_culling: bool = None
    ''' Ignore faces pointing away from the view (faster)

    :type: bool
    '''

    use_clone_layer: bool = None
    ''' Use another UV map as clone source, otherwise use the 3D cursor as the source

    :type: bool
    '''

    use_normal_falloff: bool = None
    ''' Paint most on faces pointing towards the view

    :type: bool
    '''

    use_occlude: bool = None
    ''' Only paint onto the faces directly under the brush (slower)

    :type: bool
    '''

    use_stencil_layer: bool = None
    ''' Set the mask layer from the UV map buttons

    :type: bool
    '''

    def detect_data(self):
        ''' Check if required texpaint data exist

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class Sculpt(Paint, bpy_struct):
    constant_detail_resolution: float = None
    ''' Maximum edge length for dynamic topology sculpting (as divisor of blender unit - higher value means smaller edge length)

    :type: float
    '''

    detail_percent: float = None
    ''' Maximum edge length for dynamic topology sculpting (in brush percenage)

    :type: float
    '''

    detail_refine_method: typing.Union[int, str] = None
    ''' In dynamic-topology mode, how to add or remove mesh detail * SUBDIVIDE Subdivide Edges -- Subdivide long edges to add mesh detail where needed. * COLLAPSE Collapse Edges -- Collapse short edges to remove mesh detail where possible. * SUBDIVIDE_COLLAPSE Subdivide Collapse -- Both subdivide long edges and collapse short edges to refine mesh detail.

    :type: typing.Union[int, str]
    '''

    detail_size: float = None
    ''' Maximum edge length for dynamic topology sculpting (in pixels)

    :type: float
    '''

    detail_type_method: typing.Union[int, str] = None
    ''' In dynamic-topology mode, how mesh detail size is calculated * RELATIVE Relative Detail -- Mesh detail is relative to the brush size and detail size. * CONSTANT Constant Detail -- Mesh detail is constant in world space according to detail size. * BRUSH Brush Detail -- Mesh detail is relative to brush radius. * MANUAL Manual Detail -- Mesh detail does not change on each stroke, only when using Flood Fill.

    :type: typing.Union[int, str]
    '''

    gravity: float = None
    ''' Amount of gravity after each dab

    :type: float
    '''

    gravity_object: 'Object' = None
    ''' Object whose Z axis defines orientation of gravity

    :type: 'Object'
    '''

    lock_x: bool = None
    ''' Disallow changes to the X axis of vertices

    :type: bool
    '''

    lock_y: bool = None
    ''' Disallow changes to the Y axis of vertices

    :type: bool
    '''

    lock_z: bool = None
    ''' Disallow changes to the Z axis of vertices

    :type: bool
    '''

    radial_symmetry: typing.List[int] = None
    ''' Number of times to copy strokes across the surface

    :type: typing.List[int]
    '''

    show_face_sets: bool = None
    ''' Show Face Sets as overlay on object

    :type: bool
    '''

    show_mask: bool = None
    ''' Show mask as overlay on object

    :type: bool
    '''

    symmetrize_direction: typing.Union[int, str] = None
    ''' Source and destination for symmetrize operator

    :type: typing.Union[int, str]
    '''

    use_automasking_boundary_edges: bool = None
    ''' Do not affect non manifold boundary edges

    :type: bool
    '''

    use_automasking_boundary_face_sets: bool = None
    ''' Do not affect vertices that belong to a Face Set boundary

    :type: bool
    '''

    use_automasking_face_sets: bool = None
    ''' Affect only vertices that share Face Sets with the active vertex

    :type: bool
    '''

    use_automasking_topology: bool = None
    ''' Affect only vertices connected to the active vertex under the brush

    :type: bool
    '''

    use_deform_only: bool = None
    ''' Use only deformation modifiers (temporary disable all constructive modifiers except multi-resolution)

    :type: bool
    '''

    use_smooth_shading: bool = None
    ''' Show faces in dynamic-topology mode with smooth shading rather than flat shaded

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UvSculpt(Paint, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VertexPaint(Paint, bpy_struct):
    ''' Properties of vertex and weight paint mode
    '''

    radial_symmetry: typing.List[int] = None
    ''' Number of times to copy strokes across the surface

    :type: typing.List[int]
    '''

    use_group_restrict: bool = None
    ''' Restrict painting to vertices in the group

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BoolProperty(Property, bpy_struct):
    ''' RNA boolean property definition
    '''

    array_dimensions: typing.List[int] = None
    ''' Length of each dimension of the array

    :type: typing.List[int]
    '''

    array_length: int = None
    ''' Maximum length of the array, 0 means unlimited

    :type: int
    '''

    default: bool = None
    ''' Default value for this number

    :type: bool
    '''

    default_array: typing.List[bool] = None
    ''' Default value for this array

    :type: typing.List[bool]
    '''

    is_array: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CollectionProperty(Property, bpy_struct):
    ''' RNA collection property to define lists, arrays and mappings
    '''

    fixed_type: 'Struct' = None
    ''' Fixed pointer type, empty if variable type

    :type: 'Struct'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class EnumProperty(Property, bpy_struct):
    ''' RNA enumeration property definition, to choose from a number of predefined options
    '''

    default: typing.Union[int, str] = None
    ''' Default value for this enum

    :type: typing.Union[int, str]
    '''

    default_flag: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Default value for this enum

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    enum_items: typing.Union[typing.Dict[str, 'EnumPropertyItem'], typing.
                             List['EnumPropertyItem'],
                             'bpy_prop_collection'] = None
    ''' Possible values for the property

    :type: typing.Union[typing.Dict[str, 'EnumPropertyItem'], typing.List['EnumPropertyItem'], 'bpy_prop_collection']
    '''

    enum_items_static: typing.Union[
        typing.Dict[str, 'EnumPropertyItem'], typing.
        List['EnumPropertyItem'], 'bpy_prop_collection'] = None
    ''' Possible values for the property (never calls optional dynamic generation of those)

    :type: typing.Union[typing.Dict[str, 'EnumPropertyItem'], typing.List['EnumPropertyItem'], 'bpy_prop_collection']
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FloatProperty(Property, bpy_struct):
    ''' RNA floating-point number (single precision) property definition
    '''

    array_dimensions: typing.List[int] = None
    ''' Length of each dimension of the array

    :type: typing.List[int]
    '''

    array_length: int = None
    ''' Maximum length of the array, 0 means unlimited

    :type: int
    '''

    default: float = None
    ''' Default value for this number

    :type: float
    '''

    default_array: typing.List[float] = None
    ''' Default value for this array

    :type: typing.List[float]
    '''

    hard_max: float = None
    ''' Maximum value used by buttons

    :type: float
    '''

    hard_min: float = None
    ''' Minimum value used by buttons

    :type: float
    '''

    is_array: bool = None
    ''' 

    :type: bool
    '''

    precision: int = None
    ''' Number of digits after the dot used by buttons

    :type: int
    '''

    soft_max: float = None
    ''' Maximum value used by buttons

    :type: float
    '''

    soft_min: float = None
    ''' Minimum value used by buttons

    :type: float
    '''

    step: float = None
    ''' Step size used by number buttons, for floats 1/100th of the step size

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IntProperty(Property, bpy_struct):
    ''' RNA integer number property definition
    '''

    array_dimensions: typing.List[int] = None
    ''' Length of each dimension of the array

    :type: typing.List[int]
    '''

    array_length: int = None
    ''' Maximum length of the array, 0 means unlimited

    :type: int
    '''

    default: int = None
    ''' Default value for this number

    :type: int
    '''

    default_array: typing.List[int] = None
    ''' Default value for this array

    :type: typing.List[int]
    '''

    hard_max: int = None
    ''' Maximum value used by buttons

    :type: int
    '''

    hard_min: int = None
    ''' Minimum value used by buttons

    :type: int
    '''

    is_array: bool = None
    ''' 

    :type: bool
    '''

    soft_max: int = None
    ''' Maximum value used by buttons

    :type: int
    '''

    soft_min: int = None
    ''' Minimum value used by buttons

    :type: int
    '''

    step: int = None
    ''' Step size used by number buttons, for floats 1/100th of the step size

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PointerProperty(Property, bpy_struct):
    ''' RNA pointer property to point to another RNA struct
    '''

    fixed_type: 'Struct' = None
    ''' Fixed pointer type, empty if variable type

    :type: 'Struct'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class StringProperty(Property, bpy_struct):
    ''' RNA text string property definition
    '''

    default: str = None
    ''' String default value

    :type: str
    '''

    length_max: int = None
    ''' Maximum length of the string, 0 means unlimited

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AssetHandle(PropertyGroup, bpy_struct):
    ''' Reference to some asset
    '''

    file_data: 'FileSelectEntry' = None
    ''' TEMPORARY, DO NOT USE - File data used to refer to the asset

    :type: 'FileSelectEntry'
    '''

    local_id: 'ID' = None
    ''' The local data-block this asset represents; only valid if that is a data-block in this file

    :type: 'ID'
    '''

    @classmethod
    def get_full_library_path(
            cls, asset_file_handle: 'FileSelectEntry',
            asset_library_ref: 'AssetLibraryReference') -> str:
        ''' get_full_library_path

        :param asset_file_handle: 
        :type asset_file_handle: 'FileSelectEntry'
        :param asset_library_ref: The asset library containing the given asset, only valid if the asset library is external (i.e. not the "Current File" one
        :type asset_library_ref: 'AssetLibraryReference'
        :rtype: str
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OperatorFileListElement(PropertyGroup, bpy_struct):
    name: str = None
    ''' Name of a file or directory within a file list

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OperatorMousePath(PropertyGroup, bpy_struct):
    ''' Mouse path values for operators that record such paths
    '''

    loc: typing.List[float] = None
    ''' Mouse location

    :type: typing.List[float]
    '''

    time: float = None
    ''' Time of mouse location

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OperatorStrokeElement(PropertyGroup, bpy_struct):
    is_start: bool = None
    ''' 

    :type: bool
    '''

    location: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    mouse: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    mouse_event: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    pen_flip: bool = None
    ''' 

    :type: bool
    '''

    pressure: float = None
    ''' Tablet pressure

    :type: float
    '''

    size: float = None
    ''' Brush size in screen space

    :type: float
    '''

    time: float = None
    ''' 

    :type: float
    '''

    x_tilt: float = None
    ''' 

    :type: float
    '''

    y_tilt: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SelectedUvElement(PropertyGroup, bpy_struct):
    element_index: int = None
    ''' 

    :type: int
    '''

    face_index: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class EffectSequence(Sequence, bpy_struct):
    ''' Sequence strip applying an effect on the images created by other strips
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha information in the RGBA pixels * STRAIGHT Straight -- RGB channels in transparent pixels are unaffected by the alpha channel. * PREMUL Premultiplied -- RGB channels in transparent pixels are multiplied by the alpha channel.

    :type: typing.Union[int, str]
    '''

    color_multiply: float = None
    ''' 

    :type: float
    '''

    color_saturation: float = None
    ''' Adjust the intensity of the input's color

    :type: float
    '''

    crop: 'SequenceCrop' = None
    ''' 

    :type: 'SequenceCrop'
    '''

    proxy: 'SequenceProxy' = None
    ''' 

    :type: 'SequenceProxy'
    '''

    strobe: float = None
    ''' Only display every nth frame

    :type: float
    '''

    transform: 'SequenceTransform' = None
    ''' 

    :type: 'SequenceTransform'
    '''

    use_deinterlace: bool = None
    ''' Remove fields from video movies

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip on the X axis

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip on the Y axis

    :type: bool
    '''

    use_float: bool = None
    ''' Convert input to float data

    :type: bool
    '''

    use_proxy: bool = None
    ''' Use a preview proxy and/or time-code index for this strip

    :type: bool
    '''

    use_reverse_frames: bool = None
    ''' Reverse frame order

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ImageSequence(Sequence, bpy_struct):
    ''' Sequence strip to load one or more images
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha information in the RGBA pixels * STRAIGHT Straight -- RGB channels in transparent pixels are unaffected by the alpha channel. * PREMUL Premultiplied -- RGB channels in transparent pixels are multiplied by the alpha channel.

    :type: typing.Union[int, str]
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    color_multiply: float = None
    ''' 

    :type: float
    '''

    color_saturation: float = None
    ''' Adjust the intensity of the input's color

    :type: float
    '''

    colorspace_settings: 'ColorManagedInputColorspaceSettings' = None
    ''' Input color space settings

    :type: 'ColorManagedInputColorspaceSettings'
    '''

    crop: 'SequenceCrop' = None
    ''' 

    :type: 'SequenceCrop'
    '''

    directory: str = None
    ''' 

    :type: str
    '''

    elements: typing.Union[typing.Dict[str, 'SequenceElement'], typing.
                           List['SequenceElement'], 'bpy_prop_collection',
                           'SequenceElements'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'SequenceElement'], typing.List['SequenceElement'], 'bpy_prop_collection', 'SequenceElements']
    '''

    proxy: 'SequenceProxy' = None
    ''' 

    :type: 'SequenceProxy'
    '''

    stereo_3d_format: 'Stereo3dFormat' = None
    ''' Settings for stereo 3D

    :type: 'Stereo3dFormat'
    '''

    strobe: float = None
    ''' Only display every nth frame

    :type: float
    '''

    transform: 'SequenceTransform' = None
    ''' 

    :type: 'SequenceTransform'
    '''

    use_deinterlace: bool = None
    ''' Remove fields from video movies

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip on the X axis

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip on the Y axis

    :type: bool
    '''

    use_float: bool = None
    ''' Convert input to float data

    :type: bool
    '''

    use_multiview: bool = None
    ''' Use Multiple Views (when available)

    :type: bool
    '''

    use_proxy: bool = None
    ''' Use a preview proxy and/or time-code index for this strip

    :type: bool
    '''

    use_reverse_frames: bool = None
    ''' Reverse frame order

    :type: bool
    '''

    views_format: typing.Union[int, str] = None
    ''' Mode to load image views * INDIVIDUAL Individual -- Individual files for each view with the prefix as defined by the scene views. * STEREO_3D Stereo 3D -- Single file with an encoded stereo pair.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MaskSequence(Sequence, bpy_struct):
    ''' Sequence strip to load a video from a mask
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha information in the RGBA pixels * STRAIGHT Straight -- RGB channels in transparent pixels are unaffected by the alpha channel. * PREMUL Premultiplied -- RGB channels in transparent pixels are multiplied by the alpha channel.

    :type: typing.Union[int, str]
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    color_multiply: float = None
    ''' 

    :type: float
    '''

    color_saturation: float = None
    ''' Adjust the intensity of the input's color

    :type: float
    '''

    crop: 'SequenceCrop' = None
    ''' 

    :type: 'SequenceCrop'
    '''

    mask: 'Mask' = None
    ''' Mask that this sequence uses

    :type: 'Mask'
    '''

    strobe: float = None
    ''' Only display every nth frame

    :type: float
    '''

    transform: 'SequenceTransform' = None
    ''' 

    :type: 'SequenceTransform'
    '''

    use_deinterlace: bool = None
    ''' Remove fields from video movies

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip on the X axis

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip on the Y axis

    :type: bool
    '''

    use_float: bool = None
    ''' Convert input to float data

    :type: bool
    '''

    use_reverse_frames: bool = None
    ''' Reverse frame order

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MetaSequence(Sequence, bpy_struct):
    ''' Sequence strip to group other strips as a single sequence strip
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha information in the RGBA pixels * STRAIGHT Straight -- RGB channels in transparent pixels are unaffected by the alpha channel. * PREMUL Premultiplied -- RGB channels in transparent pixels are multiplied by the alpha channel.

    :type: typing.Union[int, str]
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    color_multiply: float = None
    ''' 

    :type: float
    '''

    color_saturation: float = None
    ''' Adjust the intensity of the input's color

    :type: float
    '''

    crop: 'SequenceCrop' = None
    ''' 

    :type: 'SequenceCrop'
    '''

    proxy: 'SequenceProxy' = None
    ''' 

    :type: 'SequenceProxy'
    '''

    sequences: typing.Union[typing.Dict[str, 'Sequence'], typing.
                            List['Sequence'], 'bpy_prop_collection',
                            'SequencesMeta'] = None
    ''' Sequences nested in meta strip

    :type: typing.Union[typing.Dict[str, 'Sequence'], typing.List['Sequence'], 'bpy_prop_collection', 'SequencesMeta']
    '''

    strobe: float = None
    ''' Only display every nth frame

    :type: float
    '''

    transform: 'SequenceTransform' = None
    ''' 

    :type: 'SequenceTransform'
    '''

    use_deinterlace: bool = None
    ''' Remove fields from video movies

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip on the X axis

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip on the Y axis

    :type: bool
    '''

    use_float: bool = None
    ''' Convert input to float data

    :type: bool
    '''

    use_proxy: bool = None
    ''' Use a preview proxy and/or time-code index for this strip

    :type: bool
    '''

    use_reverse_frames: bool = None
    ''' Reverse frame order

    :type: bool
    '''

    def separate(self):
        ''' Separate meta

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieClipSequence(Sequence, bpy_struct):
    ''' Sequence strip to load a video from the clip editor
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha information in the RGBA pixels * STRAIGHT Straight -- RGB channels in transparent pixels are unaffected by the alpha channel. * PREMUL Premultiplied -- RGB channels in transparent pixels are multiplied by the alpha channel.

    :type: typing.Union[int, str]
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    color_multiply: float = None
    ''' 

    :type: float
    '''

    color_saturation: float = None
    ''' Adjust the intensity of the input's color

    :type: float
    '''

    crop: 'SequenceCrop' = None
    ''' 

    :type: 'SequenceCrop'
    '''

    fps: float = None
    ''' Frames per second

    :type: float
    '''

    stabilize2d: bool = None
    ''' Use the 2D stabilized version of the clip

    :type: bool
    '''

    strobe: float = None
    ''' Only display every nth frame

    :type: float
    '''

    transform: 'SequenceTransform' = None
    ''' 

    :type: 'SequenceTransform'
    '''

    undistort: bool = None
    ''' Use the undistorted version of the clip

    :type: bool
    '''

    use_deinterlace: bool = None
    ''' Remove fields from video movies

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip on the X axis

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip on the Y axis

    :type: bool
    '''

    use_float: bool = None
    ''' Convert input to float data

    :type: bool
    '''

    use_reverse_frames: bool = None
    ''' Reverse frame order

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MovieSequence(Sequence, bpy_struct):
    ''' Sequence strip to load a video
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha information in the RGBA pixels * STRAIGHT Straight -- RGB channels in transparent pixels are unaffected by the alpha channel. * PREMUL Premultiplied -- RGB channels in transparent pixels are multiplied by the alpha channel.

    :type: typing.Union[int, str]
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    color_multiply: float = None
    ''' 

    :type: float
    '''

    color_saturation: float = None
    ''' Adjust the intensity of the input's color

    :type: float
    '''

    colorspace_settings: 'ColorManagedInputColorspaceSettings' = None
    ''' Input color space settings

    :type: 'ColorManagedInputColorspaceSettings'
    '''

    crop: 'SequenceCrop' = None
    ''' 

    :type: 'SequenceCrop'
    '''

    elements: typing.Union[typing.Dict[str, 'SequenceElement'], typing.
                           List['SequenceElement'],
                           'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'SequenceElement'], typing.List['SequenceElement'], 'bpy_prop_collection']
    '''

    filepath: str = None
    ''' 

    :type: str
    '''

    fps: float = None
    ''' Frames per second

    :type: float
    '''

    proxy: 'SequenceProxy' = None
    ''' 

    :type: 'SequenceProxy'
    '''

    stereo_3d_format: 'Stereo3dFormat' = None
    ''' Settings for stereo 3D

    :type: 'Stereo3dFormat'
    '''

    stream_index: int = None
    ''' For files with several movie streams, use the stream with the given index

    :type: int
    '''

    strobe: float = None
    ''' Only display every nth frame

    :type: float
    '''

    transform: 'SequenceTransform' = None
    ''' 

    :type: 'SequenceTransform'
    '''

    use_deinterlace: bool = None
    ''' Remove fields from video movies

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip on the X axis

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip on the Y axis

    :type: bool
    '''

    use_float: bool = None
    ''' Convert input to float data

    :type: bool
    '''

    use_multiview: bool = None
    ''' Use Multiple Views (when available)

    :type: bool
    '''

    use_proxy: bool = None
    ''' Use a preview proxy and/or time-code index for this strip

    :type: bool
    '''

    use_reverse_frames: bool = None
    ''' Reverse frame order

    :type: bool
    '''

    views_format: typing.Union[int, str] = None
    ''' Mode to load movie views * INDIVIDUAL Individual -- Individual files for each view with the prefix as defined by the scene views. * STEREO_3D Stereo 3D -- Single file with an encoded stereo pair.

    :type: typing.Union[int, str]
    '''

    def reload_if_needed(self) -> bool:
        ''' reload_if_needed

        :rtype: bool
        :return: True if the strip can produce frames, False otherwise
        '''
        pass

    def metadata(self) -> 'IDPropertyWrapPtr':
        ''' Retrieve metadata of the movie file

        :rtype: 'IDPropertyWrapPtr'
        :return: Dict-like object containing the metadata
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SceneSequence(Sequence, bpy_struct):
    ''' Sequence strip to used the rendered image of a scene
    '''

    alpha_mode: typing.Union[int, str] = None
    ''' Representation of alpha information in the RGBA pixels * STRAIGHT Straight -- RGB channels in transparent pixels are unaffected by the alpha channel. * PREMUL Premultiplied -- RGB channels in transparent pixels are multiplied by the alpha channel.

    :type: typing.Union[int, str]
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    color_multiply: float = None
    ''' 

    :type: float
    '''

    color_saturation: float = None
    ''' Adjust the intensity of the input's color

    :type: float
    '''

    crop: 'SequenceCrop' = None
    ''' 

    :type: 'SequenceCrop'
    '''

    fps: float = None
    ''' Frames per second

    :type: float
    '''

    proxy: 'SequenceProxy' = None
    ''' 

    :type: 'SequenceProxy'
    '''

    scene: 'Scene' = None
    ''' Scene that this sequence uses

    :type: 'Scene'
    '''

    scene_camera: 'Object' = None
    ''' Override the scenes active camera

    :type: 'Object'
    '''

    scene_input: typing.Union[int, str] = None
    ''' Input type to use for the Scene strip * CAMERA Camera -- Use the Scene's 3D camera as input. * SEQUENCER Sequencer -- Use the Scene's Sequencer timeline as input.

    :type: typing.Union[int, str]
    '''

    strobe: float = None
    ''' Only display every nth frame

    :type: float
    '''

    transform: 'SequenceTransform' = None
    ''' 

    :type: 'SequenceTransform'
    '''

    use_annotations: bool = None
    ''' Show Annotations in OpenGL previews

    :type: bool
    '''

    use_deinterlace: bool = None
    ''' Remove fields from video movies

    :type: bool
    '''

    use_flip_x: bool = None
    ''' Flip on the X axis

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip on the Y axis

    :type: bool
    '''

    use_float: bool = None
    ''' Convert input to float data

    :type: bool
    '''

    use_proxy: bool = None
    ''' Use a preview proxy and/or time-code index for this strip

    :type: bool
    '''

    use_reverse_frames: bool = None
    ''' Reverse frame order

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SoundSequence(Sequence, bpy_struct):
    ''' Sequence strip defining a sound to be played over a period of time
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    pan: float = None
    ''' Playback panning of the sound (only for Mono sources)

    :type: float
    '''

    pitch: float = None
    ''' Playback pitch of the sound

    :type: float
    '''

    show_waveform: bool = None
    ''' Display the audio waveform inside the strip

    :type: bool
    '''

    sound: 'Sound' = None
    ''' Sound data-block used by this sequence

    :type: 'Sound'
    '''

    volume: float = None
    ''' Playback volume of the sound

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequenceColorBalance(SequenceColorBalanceData, bpy_struct):
    ''' Color balance parameters for a sequence strip
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrightContrastModifier(SequenceModifier, bpy_struct):
    ''' Bright/contrast modifier data for sequence strip
    '''

    bright: float = None
    ''' Adjust the luminosity of the colors

    :type: float
    '''

    contrast: float = None
    ''' Adjust the difference in luminosity between pixels

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorBalanceModifier(SequenceModifier, bpy_struct):
    ''' Color balance modifier for sequence strip
    '''

    color_balance: 'SequenceColorBalanceData' = None
    ''' 

    :type: 'SequenceColorBalanceData'
    '''

    color_multiply: float = None
    ''' Multiply the intensity of each pixel

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CurvesModifier(SequenceModifier, bpy_struct):
    ''' RGB curves modifier for sequence strip
    '''

    curve_mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class HueCorrectModifier(SequenceModifier, bpy_struct):
    ''' Hue correction modifier for sequence strip
    '''

    curve_mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SequencerTonemapModifierData(SequenceModifier, bpy_struct):
    ''' Tone mapping modifier
    '''

    adaptation: float = None
    ''' If 0, global; if 1, based on pixel intensity

    :type: float
    '''

    contrast: float = None
    ''' Set to 0 to use estimate from input image

    :type: float
    '''

    correction: float = None
    ''' If 0, same for all channels; if 1, each independent

    :type: float
    '''

    gamma: float = None
    ''' If not used, set to 1

    :type: float
    '''

    intensity: float = None
    ''' If less than zero, darkens image; otherwise, makes it brighter

    :type: float
    '''

    key: float = None
    ''' The value the average luminance is mapped to

    :type: float
    '''

    offset: float = None
    ''' Normally always 1, but can be used as an extra control to alter the brightness curve

    :type: float
    '''

    tonemap_type: typing.Union[int, str] = None
    ''' Tone mapping algorithm

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WhiteBalanceModifier(SequenceModifier, bpy_struct):
    ''' White balance modifier for sequence strip
    '''

    white_value: typing.List[float] = None
    ''' This color defines white in the strip

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxBlur(ShaderFx, bpy_struct):
    ''' Gaussian Blur effect
    '''

    rotation: float = None
    ''' Rotation of the effect

    :type: float
    '''

    samples: int = None
    ''' Number of Blur Samples (zero, disable blur)

    :type: int
    '''

    size: typing.List[float] = None
    ''' Factor of Blur

    :type: typing.List[float]
    '''

    use_dof_mode: bool = None
    ''' Blur using camera depth of field

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxColorize(ShaderFx, bpy_struct):
    ''' Colorize effect
    '''

    factor: float = None
    ''' Mix factor

    :type: float
    '''

    high_color: typing.List[float] = None
    ''' Second color used for effect

    :type: typing.List[float]
    '''

    low_color: typing.List[float] = None
    ''' First color used for effect

    :type: typing.List[float]
    '''

    mode: typing.Union[int, str] = None
    ''' Effect mode

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxFlip(ShaderFx, bpy_struct):
    ''' Flip effect
    '''

    use_flip_x: bool = None
    ''' Flip image horizontally

    :type: bool
    '''

    use_flip_y: bool = None
    ''' Flip image vertically

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxGlow(ShaderFx, bpy_struct):
    ''' Glow effect
    '''

    blend_mode: typing.Union[int, str] = None
    ''' Blend mode

    :type: typing.Union[int, str]
    '''

    glow_color: typing.List[float] = None
    ''' Color used for generated glow

    :type: typing.List[float]
    '''

    mode: typing.Union[int, str] = None
    ''' Glow mode

    :type: typing.Union[int, str]
    '''

    opacity: float = None
    ''' Effect Opacity

    :type: float
    '''

    rotation: float = None
    ''' Rotation of the effect

    :type: float
    '''

    samples: int = None
    ''' Number of Blur Samples

    :type: int
    '''

    select_color: typing.List[float] = None
    ''' Color selected to apply glow

    :type: typing.List[float]
    '''

    size: typing.List[float] = None
    ''' Size of the effect

    :type: typing.List[float]
    '''

    threshold: float = None
    ''' Limit to select color for glow effect

    :type: float
    '''

    use_glow_under: bool = None
    ''' Glow only areas with alpha (not supported with Regular blend mode)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxPixel(ShaderFx, bpy_struct):
    ''' Pixelate effect
    '''

    size: typing.List[int] = None
    ''' Pixel size

    :type: typing.List[int]
    '''

    use_antialiasing: bool = None
    ''' Antialias pixels

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxRim(ShaderFx, bpy_struct):
    ''' Rim effect
    '''

    blur: typing.List[int] = None
    ''' Number of pixels for blurring rim (set to 0 to disable)

    :type: typing.List[int]
    '''

    mask_color: typing.List[float] = None
    ''' Color that must be kept

    :type: typing.List[float]
    '''

    mode: typing.Union[int, str] = None
    ''' Blend mode

    :type: typing.Union[int, str]
    '''

    offset: typing.List[int] = None
    ''' Offset of the rim

    :type: typing.List[int]
    '''

    rim_color: typing.List[float] = None
    ''' Color used for Rim

    :type: typing.List[float]
    '''

    samples: int = None
    ''' Number of Blur Samples (zero, disable blur)

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxShadow(ShaderFx, bpy_struct):
    ''' Shadow effect
    '''

    amplitude: float = None
    ''' Amplitude of Wave

    :type: float
    '''

    blur: typing.List[int] = None
    ''' Number of pixels for blurring shadow (set to 0 to disable)

    :type: typing.List[int]
    '''

    object: 'Object' = None
    ''' Object to determine center of rotation

    :type: 'Object'
    '''

    offset: typing.List[int] = None
    ''' Offset of the shadow

    :type: typing.List[int]
    '''

    orientation: typing.Union[int, str] = None
    ''' Direction of the wave

    :type: typing.Union[int, str]
    '''

    period: float = None
    ''' Period of Wave

    :type: float
    '''

    phase: float = None
    ''' Phase Shift of Wave

    :type: float
    '''

    rotation: float = None
    ''' Rotation around center or object

    :type: float
    '''

    samples: int = None
    ''' Number of Blur Samples (zero, disable blur)

    :type: int
    '''

    scale: typing.List[float] = None
    ''' Offset of the shadow

    :type: typing.List[float]
    '''

    shadow_color: typing.List[float] = None
    ''' Color used for Shadow

    :type: typing.List[float]
    '''

    use_object: bool = None
    ''' Use object as center of rotation

    :type: bool
    '''

    use_wave: bool = None
    ''' Use wave effect

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxSwirl(ShaderFx, bpy_struct):
    ''' Swirl effect
    '''

    angle: float = None
    ''' Angle of rotation

    :type: float
    '''

    object: 'Object' = None
    ''' Object to determine center location

    :type: 'Object'
    '''

    radius: int = None
    ''' Radius to apply

    :type: int
    '''

    use_transparent: bool = None
    ''' Make image transparent outside of radius

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderFxWave(ShaderFx, bpy_struct):
    ''' Wave Deformation effect
    '''

    amplitude: float = None
    ''' Amplitude of Wave

    :type: float
    '''

    orientation: typing.Union[int, str] = None
    ''' Direction of the wave

    :type: typing.Union[int, str]
    '''

    period: float = None
    ''' Period of Wave

    :type: float
    '''

    phase: float = None
    ''' Phase Shift of Wave

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpaceClipEditor(Space, bpy_struct):
    ''' Clip editor space data
    '''

    annotation_source: typing.Union[int, str] = None
    ''' Where the annotation comes from * CLIP Clip -- Show annotation data-block which belongs to movie clip. * TRACK Track -- Show annotation data-block which belongs to active track.

    :type: typing.Union[int, str]
    '''

    clip: 'MovieClip' = None
    ''' Movie clip displayed and edited in this space

    :type: 'MovieClip'
    '''

    clip_user: 'MovieClipUser' = None
    ''' Parameters defining which frame of the movie clip is displayed

    :type: 'MovieClipUser'
    '''

    cursor_location: typing.List[float] = None
    ''' 2D cursor location for this view

    :type: typing.List[float]
    '''

    lock_selection: bool = None
    ''' Lock viewport to selected markers during playback

    :type: bool
    '''

    lock_time_cursor: bool = None
    ''' Lock curves view to time cursor during playback and tracking

    :type: bool
    '''

    mask: 'Mask' = None
    ''' Mask displayed and edited in this space

    :type: 'Mask'
    '''

    mask_display_type: typing.Union[int, str] = None
    ''' Display type for mask splines * OUTLINE Outline -- Display white edges with black outline. * DASH Dash -- Display dashed black-white edges. * BLACK Black -- Display black edges. * WHITE White -- Display white edges.

    :type: typing.Union[int, str]
    '''

    mask_overlay_mode: typing.Union[int, str] = None
    ''' Overlay mode of rasterized mask * ALPHACHANNEL Alpha Channel -- Show alpha channel of the mask. * COMBINED Combined -- Combine space background image with the mask.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' Editing context being displayed * TRACKING Tracking -- Show tracking and solving tools. * MASK Mask -- Show mask editing tools.

    :type: typing.Union[int, str]
    '''

    path_length: int = None
    ''' Length of displaying path, in frames

    :type: int
    '''

    pivot_point: typing.Union[int, str] = None
    ''' Pivot center for rotation/scaling * BOUNDING_BOX_CENTER Bounding Box Center -- Pivot around bounding box center of selected object(s). * CURSOR 2D Cursor -- Pivot around the 2D cursor. * INDIVIDUAL_ORIGINS Individual Origins -- Pivot around each object's own origin. * MEDIAN_POINT Median Point -- Pivot around the median point of selected objects.

    :type: typing.Union[int, str]
    '''

    scopes: 'MovieClipScopes' = None
    ''' Scopes to visualize movie clip statistics

    :type: 'MovieClipScopes'
    '''

    show_annotation: bool = None
    ''' Show annotations for this view

    :type: bool
    '''

    show_blue_channel: bool = None
    ''' Show blue channel in the frame

    :type: bool
    '''

    show_bundles: bool = None
    ''' Show projection of 3D markers into footage

    :type: bool
    '''

    show_disabled: bool = None
    ''' Show disabled tracks from the footage

    :type: bool
    '''

    show_filters: bool = None
    ''' Show filters for graph editor

    :type: bool
    '''

    show_graph_frames: bool = None
    ''' Show curve for per-frame average error (camera motion should be solved first)

    :type: bool
    '''

    show_graph_hidden: bool = None
    ''' Include channels from objects/bone that aren't visible

    :type: bool
    '''

    show_graph_only_selected: bool = None
    ''' Only include channels relating to selected objects and data

    :type: bool
    '''

    show_graph_tracks_error: bool = None
    ''' Display the reprojection error curve for selected tracks

    :type: bool
    '''

    show_graph_tracks_motion: bool = None
    ''' Display the speed curves (in "x" direction red, in "y" direction green) for the selected tracks

    :type: bool
    '''

    show_green_channel: bool = None
    ''' Show green channel in the frame

    :type: bool
    '''

    show_grid: bool = None
    ''' Show grid showing lens distortion

    :type: bool
    '''

    show_marker_pattern: bool = None
    ''' Show pattern boundbox for markers

    :type: bool
    '''

    show_marker_search: bool = None
    ''' Show search boundbox for markers

    :type: bool
    '''

    show_mask_overlay: bool = None
    ''' 

    :type: bool
    '''

    show_mask_smooth: bool = None
    ''' 

    :type: bool
    '''

    show_metadata: bool = None
    ''' Show metadata of clip

    :type: bool
    '''

    show_names: bool = None
    ''' Show track names and status

    :type: bool
    '''

    show_red_channel: bool = None
    ''' Show red channel in the frame

    :type: bool
    '''

    show_region_hud: bool = None
    ''' 

    :type: bool
    '''

    show_region_toolbar: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_seconds: bool = None
    ''' Show timing in seconds not frames

    :type: bool
    '''

    show_stable: bool = None
    ''' Show stable footage in editor (if stabilization is enabled)

    :type: bool
    '''

    show_tiny_markers: bool = None
    ''' Show markers in a more compact manner

    :type: bool
    '''

    show_track_path: bool = None
    ''' Show path of how track moves

    :type: bool
    '''

    use_grayscale_preview: bool = None
    ''' Display frame in grayscale mode

    :type: bool
    '''

    use_manual_calibration: bool = None
    ''' Use manual calibration helpers

    :type: bool
    '''

    use_mute_footage: bool = None
    ''' Mute footage and show black background instead

    :type: bool
    '''

    view: typing.Union[int, str] = None
    ''' Type of the clip editor view * CLIP Clip -- Show editing clip preview. * GRAPH Graph -- Show graph view for active element. * DOPESHEET Dopesheet -- Dopesheet view for tracking data.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceConsole(Space, bpy_struct):
    ''' Interactive python console
    '''

    font_size: int = None
    ''' Font size to use for displaying the text

    :type: int
    '''

    history: typing.Union[typing.Dict[str, 'ConsoleLine'], typing.
                          List['ConsoleLine'], 'bpy_prop_collection'] = None
    ''' Command history

    :type: typing.Union[typing.Dict[str, 'ConsoleLine'], typing.List['ConsoleLine'], 'bpy_prop_collection']
    '''

    language: str = None
    ''' Command line prompt language

    :type: str
    '''

    prompt: str = None
    ''' Command line prompt

    :type: str
    '''

    scrollback: typing.Union[typing.Dict[str, 'ConsoleLine'], typing.
                             List['ConsoleLine'], 'bpy_prop_collection'] = None
    ''' Command output

    :type: typing.Union[typing.Dict[str, 'ConsoleLine'], typing.List['ConsoleLine'], 'bpy_prop_collection']
    '''

    select_end: int = None
    ''' 

    :type: int
    '''

    select_start: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceDopeSheetEditor(Space, bpy_struct):
    ''' Dope Sheet space data
    '''

    action: 'Action' = None
    ''' Action displayed and edited in this space

    :type: 'Action'
    '''

    auto_snap: typing.Union[int, str] = None
    ''' Automatic time snapping settings for transformations * NONE No Auto-Snap. * STEP Frame Step -- Snap to 1.0 frame intervals. * TIME_STEP Second Step -- Snap to 1.0 second intervals. * FRAME Nearest Frame -- Snap to actual frames (nla-action time). * SECOND Nearest Second -- Snap to actual seconds (nla-action time). * MARKER Nearest Marker -- Snap to nearest marker.

    :type: typing.Union[int, str]
    '''

    cache_cloth: bool = None
    ''' Show the active object's cloth point cache

    :type: bool
    '''

    cache_dynamicpaint: bool = None
    ''' Show the active object's Dynamic Paint cache

    :type: bool
    '''

    cache_particles: bool = None
    ''' Show the active object's particle point cache

    :type: bool
    '''

    cache_rigidbody: bool = None
    ''' Show the active object's Rigid Body cache

    :type: bool
    '''

    cache_smoke: bool = None
    ''' Show the active object's smoke cache

    :type: bool
    '''

    cache_softbody: bool = None
    ''' Show the active object's softbody point cache

    :type: bool
    '''

    dopesheet: 'DopeSheet' = None
    ''' Settings for filtering animation data

    :type: 'DopeSheet'
    '''

    mode: typing.Union[int, str] = None
    ''' Editing context being displayed * DOPESHEET Dope Sheet -- Edit all keyframes in scene. * TIMELINE Timeline -- Timeline and playback controls. * ACTION Action Editor -- Edit keyframes in active object's Object-level action. * SHAPEKEY Shape Key Editor -- Edit keyframes in active object's Shape Keys action. * GPENCIL Grease Pencil -- Edit timings for all Grease Pencil sketches in file. * MASK Mask -- Edit timings for Mask Editor splines. * CACHEFILE Cache File -- Edit timings for Cache File data-blocks.

    :type: typing.Union[int, str]
    '''

    show_cache: bool = None
    ''' Show the status of cached frames in the timeline

    :type: bool
    '''

    show_extremes: bool = None
    ''' Mark keyframes where the key value flow changes direction, based on comparison with adjacent keys

    :type: bool
    '''

    show_interpolation: bool = None
    ''' Display keyframe handle types and non-bezier interpolation modes

    :type: bool
    '''

    show_markers: bool = None
    ''' If any exists, show markers in a separate row at the bottom of the editor

    :type: bool
    '''

    show_pose_markers: bool = None
    ''' Show markers belonging to the active action instead of Scene markers (Action and Shape Key Editors only)

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_seconds: bool = None
    ''' Show timing in seconds not frames

    :type: bool
    '''

    show_sliders: bool = None
    ''' Show sliders beside F-Curve channels

    :type: bool
    '''

    ui_mode: typing.Union[int, str] = None
    ''' Editing context being displayed * DOPESHEET Dope Sheet -- Edit all keyframes in scene. * ACTION Action Editor -- Edit keyframes in active object's Object-level action. * SHAPEKEY Shape Key Editor -- Edit keyframes in active object's Shape Keys action. * GPENCIL Grease Pencil -- Edit timings for all Grease Pencil sketches in file. * MASK Mask -- Edit timings for Mask Editor splines. * CACHEFILE Cache File -- Edit timings for Cache File data-blocks.

    :type: typing.Union[int, str]
    '''

    use_auto_merge_keyframes: bool = None
    ''' Automatically merge nearby keyframes

    :type: bool
    '''

    use_marker_sync: bool = None
    ''' Sync Markers with keyframe edits

    :type: bool
    '''

    use_realtime_update: bool = None
    ''' When transforming keyframes, changes to the animation data are flushed to other views

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceFileBrowser(Space, bpy_struct):
    ''' File browser space data
    '''

    active_operator: 'Operator' = None
    ''' 

    :type: 'Operator'
    '''

    bookmarks: typing.Union[typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.
                            List['FileBrowserFSMenuEntry'],
                            'bpy_prop_collection'] = None
    ''' User's bookmarks

    :type: typing.Union[typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.List['FileBrowserFSMenuEntry'], 'bpy_prop_collection']
    '''

    bookmarks_active: int = None
    ''' Index of active bookmark (-1 if none)

    :type: int
    '''

    browse_mode: typing.Union[int, str] = None
    ''' Type of the File Editor view (regular file browsing or asset browsing)

    :type: typing.Union[int, str]
    '''

    operator: 'Operator' = None
    ''' 

    :type: 'Operator'
    '''

    params: 'FileSelectParams' = None
    ''' Parameters and Settings for the Filebrowser

    :type: 'FileSelectParams'
    '''

    recent_folders: typing.Union[
        typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.
        List['FileBrowserFSMenuEntry'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.List['FileBrowserFSMenuEntry'], 'bpy_prop_collection']
    '''

    recent_folders_active: int = None
    ''' Index of active recent folder (-1 if none)

    :type: int
    '''

    show_region_tool_props: bool = None
    ''' 

    :type: bool
    '''

    show_region_toolbar: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    system_bookmarks: typing.Union[
        typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.
        List['FileBrowserFSMenuEntry'], 'bpy_prop_collection'] = None
    ''' System's bookmarks

    :type: typing.Union[typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.List['FileBrowserFSMenuEntry'], 'bpy_prop_collection']
    '''

    system_bookmarks_active: int = None
    ''' Index of active system bookmark (-1 if none)

    :type: int
    '''

    system_folders: typing.Union[
        typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.
        List['FileBrowserFSMenuEntry'], 'bpy_prop_collection'] = None
    ''' System's folders (usually root, available hard drives, etc)

    :type: typing.Union[typing.Dict[str, 'FileBrowserFSMenuEntry'], typing.List['FileBrowserFSMenuEntry'], 'bpy_prop_collection']
    '''

    system_folders_active: int = None
    ''' Index of active system folder (-1 if none)

    :type: int
    '''

    def activate_asset_by_id(self,
                             id_to_activate: 'ID',
                             deferred: bool = False):
        ''' Activate and select the asset entry that represents the given ID

        :param id_to_activate: id_to_activate
        :type id_to_activate: 'ID'
        :param deferred: Whether to activate the ID immediately (false) or after the file browser refreshes (true)
        :type deferred: bool
        '''
        pass

    def activate_file_by_relative_path(self, relative_path: str = ""):
        ''' Set active file and add to selection based on relative path to current File Browser directory

        :param relative_path: relative_path
        :type relative_path: str
        '''
        pass

    def deselect_all(self):
        ''' Deselect all files

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceGraphEditor(Space, bpy_struct):
    ''' Graph Editor space data
    '''

    auto_snap: typing.Union[int, str] = None
    ''' Automatic time snapping settings for transformations * NONE No Auto-Snap. * STEP Frame Step -- Snap to 1.0 frame intervals. * TIME_STEP Second Step -- Snap to 1.0 second intervals. * FRAME Nearest Frame -- Snap to actual frames (nla-action time). * SECOND Nearest Second -- Snap to actual seconds (nla-action time). * MARKER Nearest Marker -- Snap to nearest marker.

    :type: typing.Union[int, str]
    '''

    cursor_position_x: float = None
    ''' Graph Editor 2D-Value cursor - X-Value component

    :type: float
    '''

    cursor_position_y: float = None
    ''' Graph Editor 2D-Value cursor - Y-Value component

    :type: float
    '''

    dopesheet: 'DopeSheet' = None
    ''' Settings for filtering animation data

    :type: 'DopeSheet'
    '''

    has_ghost_curves: bool = None
    ''' Graph Editor instance has some ghost curves stored

    :type: bool
    '''

    mode: typing.Union[int, str] = None
    ''' Editing context being displayed * FCURVES Graph Editor -- Edit animation/keyframes displayed as 2D curves. * DRIVERS Drivers -- Edit drivers.

    :type: typing.Union[int, str]
    '''

    pivot_point: typing.Union[int, str] = None
    ''' Pivot center for rotation/scaling

    :type: typing.Union[int, str]
    '''

    show_cursor: bool = None
    ''' Show 2D cursor

    :type: bool
    '''

    show_extrapolation: bool = None
    ''' 

    :type: bool
    '''

    show_handles: bool = None
    ''' Show handles of Bezier control points

    :type: bool
    '''

    show_markers: bool = None
    ''' If any exists, show markers in a separate row at the bottom of the editor

    :type: bool
    '''

    show_region_hud: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_seconds: bool = None
    ''' Show timing in seconds not frames

    :type: bool
    '''

    show_sliders: bool = None
    ''' Show sliders beside F-Curve channels

    :type: bool
    '''

    use_auto_merge_keyframes: bool = None
    ''' Automatically merge nearby keyframes

    :type: bool
    '''

    use_auto_normalization: bool = None
    ''' Automatically recalculate curve normalization on every curve edit

    :type: bool
    '''

    use_beauty_drawing: bool = None
    ''' Display F-Curves using Anti-Aliasing and other fancy effects (disable for better performance)

    :type: bool
    '''

    use_normalization: bool = None
    ''' Display curves in normalized range from -1 to 1, for easier editing of multiple curves with different ranges

    :type: bool
    '''

    use_only_selected_curves_handles: bool = None
    ''' Only keyframes of selected F-Curves are visible and editable

    :type: bool
    '''

    use_only_selected_keyframe_handles: bool = None
    ''' Only show and edit handles of selected keyframes

    :type: bool
    '''

    use_realtime_update: bool = None
    ''' When transforming keyframes, changes to the animation data are flushed to other views

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceImageEditor(Space, bpy_struct):
    ''' Image and UV editor space data
    '''

    cursor_location: typing.List[float] = None
    ''' 2D cursor location for this view

    :type: typing.List[float]
    '''

    display_channels: typing.Union[int, str] = None
    ''' Channels of the image to display * COLOR_ALPHA Color and Alpha -- Display image with RGB colors and alpha transparency. * COLOR Color -- Display image with RGB colors. * ALPHA Alpha -- Display alpha transparency channel. * Z_BUFFER Z-Buffer -- Display Z-buffer associated with image (mapped from camera clip start to end). * RED Red. * GREEN Green. * BLUE Blue.

    :type: typing.Union[int, str]
    '''

    grease_pencil: 'GreasePencil' = None
    ''' Grease pencil data for this space

    :type: 'GreasePencil'
    '''

    image: 'Image' = None
    ''' Image displayed and edited in this space

    :type: 'Image'
    '''

    image_user: 'ImageUser' = None
    ''' Parameters defining which layer, pass and frame of the image is displayed

    :type: 'ImageUser'
    '''

    mask: 'Mask' = None
    ''' Mask displayed and edited in this space

    :type: 'Mask'
    '''

    mask_display_type: typing.Union[int, str] = None
    ''' Display type for mask splines * OUTLINE Outline -- Display white edges with black outline. * DASH Dash -- Display dashed black-white edges. * BLACK Black -- Display black edges. * WHITE White -- Display white edges.

    :type: typing.Union[int, str]
    '''

    mask_overlay_mode: typing.Union[int, str] = None
    ''' Overlay mode of rasterized mask * ALPHACHANNEL Alpha Channel -- Show alpha channel of the mask. * COMBINED Combined -- Combine space background image with the mask.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' Editing context being displayed * VIEW View -- View the image. * UV UV Editor -- UV edit in mesh editmode. * PAINT Paint -- 2D image painting mode. * MASK Mask -- Mask editing.

    :type: typing.Union[int, str]
    '''

    overlay: 'SpaceImageOverlay' = None
    ''' Settings for display of overlays in the UV/Image editor

    :type: 'SpaceImageOverlay'
    '''

    pivot_point: typing.Union[int, str] = None
    ''' Rotation/Scaling Pivot * BOUNDING_BOX_CENTER Bounding Box Center -- Pivot around bounding box center of selected object(s). * CURSOR 3D Cursor -- Pivot around the 3D cursor. * INDIVIDUAL_ORIGINS Individual Origins -- Pivot around each object's own origin. * MEDIAN_POINT Median Point -- Pivot around the median point of selected objects. * ACTIVE_ELEMENT Active Element -- Pivot around active object.

    :type: typing.Union[int, str]
    '''

    sample_histogram: 'Histogram' = None
    ''' Sampled colors along line

    :type: 'Histogram'
    '''

    scopes: 'Scopes' = None
    ''' Scopes to visualize image statistics

    :type: 'Scopes'
    '''

    show_annotation: bool = None
    ''' Show annotations for this view

    :type: bool
    '''

    show_mask_overlay: bool = None
    ''' 

    :type: bool
    '''

    show_mask_smooth: bool = None
    ''' 

    :type: bool
    '''

    show_maskedit: bool = None
    ''' Show Mask editing related properties

    :type: bool
    '''

    show_paint: bool = None
    ''' Show paint related properties

    :type: bool
    '''

    show_region_hud: bool = None
    ''' 

    :type: bool
    '''

    show_region_tool_header: bool = None
    ''' 

    :type: bool
    '''

    show_region_toolbar: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_render: bool = None
    ''' Show render related properties

    :type: bool
    '''

    show_repeat: bool = None
    ''' Display the image repeated outside of the main view

    :type: bool
    '''

    show_stereo_3d: bool = None
    ''' Display the image in Stereo 3D

    :type: bool
    '''

    show_uvedit: bool = None
    ''' Show UV editing related properties

    :type: bool
    '''

    ui_mode: typing.Union[int, str] = None
    ''' Editing context being displayed * VIEW View -- View the image. * PAINT Paint -- 2D image painting mode. * MASK Mask -- Mask editing.

    :type: typing.Union[int, str]
    '''

    use_image_pin: bool = None
    ''' Display current image regardless of object selection

    :type: bool
    '''

    use_realtime_update: bool = None
    ''' Update other affected window spaces automatically to reflect changes during interactive operations such as transform

    :type: bool
    '''

    uv_editor: 'SpaceUVEditor' = None
    ''' UV editor settings

    :type: 'SpaceUVEditor'
    '''

    zoom: typing.List[float] = None
    ''' Zoom factor

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceInfo(Space, bpy_struct):
    ''' Info space data
    '''

    show_report_debug: bool = None
    ''' Display debug reporting info

    :type: bool
    '''

    show_report_error: bool = None
    ''' Display error text

    :type: bool
    '''

    show_report_info: bool = None
    ''' Display general information

    :type: bool
    '''

    show_report_operator: bool = None
    ''' Display the operator log

    :type: bool
    '''

    show_report_warning: bool = None
    ''' Display warnings

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceNLA(Space, bpy_struct):
    ''' NLA editor space data
    '''

    auto_snap: typing.Union[int, str] = None
    ''' Automatic time snapping settings for transformations * NONE No Auto-Snap. * STEP Frame Step -- Snap to 1.0 frame intervals. * TIME_STEP Second Step -- Snap to 1.0 second intervals. * FRAME Nearest Frame -- Snap to actual frames (nla-action time). * SECOND Nearest Second -- Snap to actual seconds (nla-action time). * MARKER Nearest Marker -- Snap to nearest marker.

    :type: typing.Union[int, str]
    '''

    dopesheet: 'DopeSheet' = None
    ''' Settings for filtering animation data

    :type: 'DopeSheet'
    '''

    show_local_markers: bool = None
    ''' Show action-local markers on the strips, useful when synchronizing timing across strips

    :type: bool
    '''

    show_markers: bool = None
    ''' If any exists, show markers in a separate row at the bottom of the editor

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_seconds: bool = None
    ''' Show timing in seconds not frames

    :type: bool
    '''

    show_strip_curves: bool = None
    ''' Show influence F-Curves on strips

    :type: bool
    '''

    use_realtime_update: bool = None
    ''' When transforming strips, changes to the animation data are flushed to other views

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceNodeEditor(Space, bpy_struct):
    ''' Node editor space data
    '''

    backdrop_channels: typing.Union[int, str] = None
    ''' Channels of the image to draw * COLOR_ALPHA Color and Alpha -- Display image with RGB colors and alpha transparency. * COLOR Color -- Display image with RGB colors. * ALPHA Alpha -- Display alpha transparency channel. * RED Red. * GREEN Green. * BLUE Blue.

    :type: typing.Union[int, str]
    '''

    backdrop_offset: typing.List[float] = None
    ''' Backdrop offset

    :type: typing.List[float]
    '''

    backdrop_zoom: float = None
    ''' Backdrop zoom factor

    :type: float
    '''

    cursor_location: typing.List[float] = None
    ''' Location for adding new nodes

    :type: typing.List[float]
    '''

    edit_tree: 'NodeTree' = None
    ''' Node tree being displayed and edited

    :type: 'NodeTree'
    '''

    id: 'ID' = None
    ''' Data-block whose nodes are being edited

    :type: 'ID'
    '''

    id_from: 'ID' = None
    ''' Data-block from which the edited data-block is linked

    :type: 'ID'
    '''

    insert_offset_direction: typing.Union[int, str] = None
    ''' Direction to offset nodes on insertion

    :type: typing.Union[int, str]
    '''

    node_tree: 'NodeTree' = None
    ''' Base node tree from context

    :type: 'NodeTree'
    '''

    overlay: 'SpaceNodeOverlay' = None
    ''' Settings for display of overlays in the Node Editor

    :type: 'SpaceNodeOverlay'
    '''

    path: typing.Union[typing.Dict[str, 'NodeTreePath'], typing.
                       List['NodeTreePath'], 'bpy_prop_collection',
                       'SpaceNodeEditorPath'] = None
    ''' Path from the data-block to the currently edited node tree

    :type: typing.Union[typing.Dict[str, 'NodeTreePath'], typing.List['NodeTreePath'], 'bpy_prop_collection', 'SpaceNodeEditorPath']
    '''

    pin: bool = None
    ''' Use the pinned node tree

    :type: bool
    '''

    shader_type: typing.Union[int, str] = None
    ''' Type of data to take shader from * OBJECT Object -- Edit shader nodes from Object. * WORLD World -- Edit shader nodes from World. * LINESTYLE Line Style -- Edit shader nodes from Line Style.

    :type: typing.Union[int, str]
    '''

    show_annotation: bool = None
    ''' Show annotations for this view

    :type: bool
    '''

    show_backdrop: bool = None
    ''' Use active Viewer Node output as backdrop for compositing nodes

    :type: bool
    '''

    show_region_toolbar: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    texture_type: typing.Union[int, str] = None
    ''' Type of data to take texture from * WORLD World -- Edit texture nodes from World. * BRUSH Brush -- Edit texture nodes from Brush. * LINESTYLE Line Style -- Edit texture nodes from Line Style.

    :type: typing.Union[int, str]
    '''

    tree_type: typing.Union[int, str] = None
    ''' Node tree type to display and edit

    :type: typing.Union[int, str]
    '''

    use_auto_render: bool = None
    ''' Re-render and composite changed layers on 3D edits

    :type: bool
    '''

    use_insert_offset: bool = None
    ''' Automatically offset the following or previous nodes in a chain when inserting a new node

    :type: bool
    '''

    def cursor_location_from_region(self, x: int, y: int):
        ''' Set the cursor location using region coordinates

        :param x: x, Region x coordinate
        :type x: int
        :param y: y, Region y coordinate
        :type y: int
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceOutliner(Space, bpy_struct):
    ''' Outliner space data
    '''

    display_mode: typing.Union[int, str] = None
    ''' Type of information to display * SCENES Scenes -- Display scenes and their view layers, collections and objects. * VIEW_LAYER View Layer -- Display collections and objects in the view layer. * SEQUENCE Video Sequencer -- Display data belonging to the Video Sequencer. * LIBRARIES Blender File -- Display data of current file and linked libraries. * DATA_API Data API -- Display low level Blender data and its properties. * LIBRARY_OVERRIDES Library Overrides -- Display data-blocks with library overrides and list their overridden properties. * ORPHAN_DATA Orphan Data -- Display data-blocks which are unused and/or will be lost when the file is reloaded.

    :type: typing.Union[int, str]
    '''

    filter_id_type: typing.Union[int, str] = None
    ''' Data-block type to show

    :type: typing.Union[int, str]
    '''

    filter_invert: bool = None
    ''' Invert the object state filter

    :type: bool
    '''

    filter_state: typing.Union[int, str] = None
    ''' * ALL All -- Show all objects in the view layer. * VISIBLE Visible -- Show visible objects. * SELECTED Selected -- Show selected objects. * ACTIVE Active -- Show only the active object. * SELECTABLE Selectable -- Show only selectable objects.

    :type: typing.Union[int, str]
    '''

    filter_text: str = None
    ''' Live search filtering string

    :type: str
    '''

    show_mode_column: bool = None
    ''' Show the mode column for mode toggle and activation

    :type: bool
    '''

    show_restrict_column_enable: bool = None
    ''' Exclude from view layer

    :type: bool
    '''

    show_restrict_column_hide: bool = None
    ''' Temporarily hide in viewport

    :type: bool
    '''

    show_restrict_column_holdout: bool = None
    ''' Holdout

    :type: bool
    '''

    show_restrict_column_indirect_only: bool = None
    ''' Indirect only

    :type: bool
    '''

    show_restrict_column_render: bool = None
    ''' Globally disable in renders

    :type: bool
    '''

    show_restrict_column_select: bool = None
    ''' Selectable

    :type: bool
    '''

    show_restrict_column_viewport: bool = None
    ''' Globally disable in viewports

    :type: bool
    '''

    use_filter_case_sensitive: bool = None
    ''' Only use case sensitive matches of search string

    :type: bool
    '''

    use_filter_children: bool = None
    ''' Show children

    :type: bool
    '''

    use_filter_collection: bool = None
    ''' Show collections

    :type: bool
    '''

    use_filter_complete: bool = None
    ''' Only use complete matches of search string

    :type: bool
    '''

    use_filter_id_type: bool = None
    ''' Show only data-blocks of one type

    :type: bool
    '''

    use_filter_lib_override: bool = None
    ''' For libraries with overrides created, show the overridden values

    :type: bool
    '''

    use_filter_lib_override_system: bool = None
    ''' For libraries with overrides created, show the overridden values that are defined/controlled automatically (e.g. to make users of an overridden data-block point to the override data, not the original linked data)

    :type: bool
    '''

    use_filter_object: bool = None
    ''' Show objects

    :type: bool
    '''

    use_filter_object_armature: bool = None
    ''' Show armature objects

    :type: bool
    '''

    use_filter_object_camera: bool = None
    ''' Show camera objects

    :type: bool
    '''

    use_filter_object_content: bool = None
    ''' Show what is inside the objects elements

    :type: bool
    '''

    use_filter_object_empty: bool = None
    ''' Show empty objects

    :type: bool
    '''

    use_filter_object_light: bool = None
    ''' Show light objects

    :type: bool
    '''

    use_filter_object_mesh: bool = None
    ''' Show mesh objects

    :type: bool
    '''

    use_filter_object_others: bool = None
    ''' Show curves, lattices, light probes, fonts, ...

    :type: bool
    '''

    use_filter_view_layers: bool = None
    ''' Show all the view layers

    :type: bool
    '''

    use_sort_alpha: bool = None
    ''' 

    :type: bool
    '''

    use_sync_select: bool = None
    ''' Sync outliner selection with other editors

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpacePreferences(Space, bpy_struct):
    ''' Blender preferences space data
    '''

    filter_text: str = None
    ''' Search term for filtering in the UI

    :type: str
    '''

    filter_type: typing.Union[int, str] = None
    ''' Filter method * NAME Name -- Filter based on the operator name. * KEY Key-Binding -- Filter based on key bindings.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceProperties(Space, bpy_struct):
    ''' Properties space data
    '''

    context: typing.Union[int, str] = None
    ''' * TOOL Tool -- Active Tool and Workspace settings. * SCENE Scene -- Scene Properties. * RENDER Render -- Render Properties. * OUTPUT Output -- Output Properties. * VIEW_LAYER View Layer -- View Layer Properties. * WORLD World -- World Properties. * COLLECTION Collection -- Collection Properties. * OBJECT Object -- Object Properties. * CONSTRAINT Constraints -- Object Constraint Properties. * MODIFIER Modifiers -- Modifier Properties. * DATA Data -- Object Data Properties. * BONE Bone -- Bone Properties. * BONE_CONSTRAINT Bone Constraints -- Bone Constraint Properties. * MATERIAL Material -- Material Properties. * TEXTURE Texture -- Texture Properties. * PARTICLES Particles -- Particle Properties. * PHYSICS Physics -- Physics Properties. * SHADERFX Effects -- Visual Effects Properties.

    :type: typing.Union[int, str]
    '''

    outliner_sync: typing.Union[int, str] = None
    ''' Change to the corresponding tab when outliner data icons are clicked * ALWAYS Always -- Always change tabs when clicking an icon in an outliner. * NEVER Never -- Never change tabs when clicking an icon in an outliner. * AUTO Auto -- Change tabs only when this editor shares a border with an outliner.

    :type: typing.Union[int, str]
    '''

    pin_id: 'ID' = None
    ''' 

    :type: 'ID'
    '''

    search_filter: str = None
    ''' Live search filtering string

    :type: str
    '''

    tab_search_results: bool = None
    ''' Whether or not each visible tab has a search result

    :type: bool
    '''

    use_pin_id: bool = None
    ''' Use the pinned context

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceSequenceEditor(Space, bpy_struct):
    ''' Sequence editor space data
    '''

    cursor_location: typing.List[float] = None
    ''' 2D cursor location for this view

    :type: typing.List[float]
    '''

    display_channel: int = None
    ''' The channel number shown in the image preview. 0 is the result of all strips combined

    :type: int
    '''

    display_mode: typing.Union[int, str] = None
    ''' View mode to use for displaying sequencer output

    :type: typing.Union[int, str]
    '''

    grease_pencil: 'GreasePencil' = None
    ''' Grease Pencil data for this Preview region

    :type: 'GreasePencil'
    '''

    overlay_frame_type: typing.Union[int, str] = None
    ''' Overlay display method * RECTANGLE Rectangle -- Show rectangle area overlay. * REFERENCE Reference -- Show reference frame only. * CURRENT Current -- Show current frame only.

    :type: typing.Union[int, str]
    '''

    preview_channels: typing.Union[int, str] = None
    ''' Channels of the preview to display * COLOR_ALPHA Color and Alpha -- Display image with RGB colors and alpha transparency. * COLOR Color -- Display image with RGB colors.

    :type: typing.Union[int, str]
    '''

    preview_overlay: 'SequencerPreviewOverlay' = None
    ''' Settings for display of overlays

    :type: 'SequencerPreviewOverlay'
    '''

    proxy_render_size: typing.Union[int, str] = None
    ''' Display preview using full resolution or different proxy resolutions

    :type: typing.Union[int, str]
    '''

    show_backdrop: bool = None
    ''' Display result under strips

    :type: bool
    '''

    show_frames: bool = None
    ''' Display frames rather than seconds

    :type: bool
    '''

    show_gizmo: bool = None
    ''' Show gizmos of all types

    :type: bool
    '''

    show_gizmo_context: bool = None
    ''' Context sensitive gizmos for the active item

    :type: bool
    '''

    show_gizmo_navigate: bool = None
    ''' Viewport navigation gizmo

    :type: bool
    '''

    show_gizmo_tool: bool = None
    ''' Active tool gizmo

    :type: bool
    '''

    show_markers: bool = None
    ''' If any exists, show markers in a separate row at the bottom of the editor

    :type: bool
    '''

    show_overexposed: int = None
    ''' Show overexposed areas with zebra stripes

    :type: int
    '''

    show_overlays: bool = None
    ''' 

    :type: bool
    '''

    show_region_hud: bool = None
    ''' 

    :type: bool
    '''

    show_region_tool_header: bool = None
    ''' 

    :type: bool
    '''

    show_region_toolbar: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_seconds: bool = None
    ''' Show timing in seconds not frames

    :type: bool
    '''

    show_separate_color: bool = None
    ''' Separate color channels in preview

    :type: bool
    '''

    show_transform_preview: bool = None
    ''' Show preview of the transformed frames

    :type: bool
    '''

    timeline_overlay: 'SequencerTimelineOverlay' = None
    ''' Settings for display of overlays

    :type: 'SequencerTimelineOverlay'
    '''

    use_marker_sync: bool = None
    ''' Transform markers as well as strips

    :type: bool
    '''

    use_proxies: bool = None
    ''' Use optimized files for faster scrubbing when available

    :type: bool
    '''

    use_zoom_to_fit: bool = None
    ''' Automatically zoom preview image to make it fully fit the region

    :type: bool
    '''

    view_type: typing.Union[int, str] = None
    ''' Type of the Sequencer view (sequencer, preview or both)

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceSpreadsheet(Space, bpy_struct):
    ''' Spreadsheet space data
    '''

    attribute_domain: typing.Union[int, str] = None
    ''' Attribute domain to display * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    columns: typing.Union[typing.Dict[str, 'SpreadsheetColumn'], typing.
                          List['SpreadsheetColumn'],
                          'bpy_prop_collection'] = None
    ''' Persistent data associated with spreadsheet columns

    :type: typing.Union[typing.Dict[str, 'SpreadsheetColumn'], typing.List['SpreadsheetColumn'], 'bpy_prop_collection']
    '''

    context_path: typing.Union[typing.Dict[str, 'SpreadsheetContext'], typing.
                               List['SpreadsheetContext'],
                               'bpy_prop_collection',
                               'SpreadsheetContextPath'] = None
    ''' Context path to the data being displayed

    :type: typing.Union[typing.Dict[str, 'SpreadsheetContext'], typing.List['SpreadsheetContext'], 'bpy_prop_collection', 'SpreadsheetContextPath']
    '''

    display_context_path_collapsed: bool = None
    ''' 

    :type: bool
    '''

    geometry_component_type: typing.Union[int, str] = None
    ''' Part of the geometry to display data from * MESH Mesh -- Mesh component containing point, corner, edge and face data. * POINTCLOUD Point Cloud -- Point cloud component containing only point data. * CURVE Curve -- Curve component containing spline and control point data. * INSTANCES Instances -- Instances of objects or collections.

    :type: typing.Union[int, str]
    '''

    is_pinned: bool = None
    ''' Context path is pinned

    :type: bool
    '''

    object_eval_state: typing.Union[int, str] = None
    ''' * EVALUATED Evaluated -- Use data from fully or partially evaluated object. * ORIGINAL Original -- Use data from original object without any modifiers applied. * VIEWER_NODE Viewer Node -- Use intermediate data from viewer node.

    :type: typing.Union[int, str]
    '''

    row_filters: typing.Union[typing.Dict[str, 'SpreadsheetRowFilter'], typing.
                              List['SpreadsheetRowFilter'],
                              'bpy_prop_collection'] = None
    ''' Filters to remove rows from the displayed data

    :type: typing.Union[typing.Dict[str, 'SpreadsheetRowFilter'], typing.List['SpreadsheetRowFilter'], 'bpy_prop_collection']
    '''

    show_only_selected: bool = None
    ''' Only include rows that correspond to selected elements

    :type: bool
    '''

    show_region_channels: bool = None
    ''' 

    :type: bool
    '''

    show_region_footer: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    use_filter: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceTextEditor(Space, bpy_struct):
    ''' Text editor space data
    '''

    find_text: str = None
    ''' Text to search for with the find tool

    :type: str
    '''

    font_size: int = None
    ''' Font size to use for displaying the text

    :type: int
    '''

    margin_column: int = None
    ''' Column number to show right margin at

    :type: int
    '''

    replace_text: str = None
    ''' Text to replace selected text with using the replace tool

    :type: str
    '''

    show_line_highlight: bool = None
    ''' Highlight the current line

    :type: bool
    '''

    show_line_numbers: bool = None
    ''' Show line numbers next to the text

    :type: bool
    '''

    show_margin: bool = None
    ''' Show right margin

    :type: bool
    '''

    show_region_footer: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_syntax_highlight: bool = None
    ''' Syntax highlight for scripting

    :type: bool
    '''

    show_word_wrap: bool = None
    ''' Wrap words if there is not enough horizontal space

    :type: bool
    '''

    tab_width: int = None
    ''' Number of spaces to display tabs with

    :type: int
    '''

    text: 'Text' = None
    ''' Text displayed and edited in this space

    :type: 'Text'
    '''

    top: int = None
    ''' Top line visible

    :type: int
    '''

    use_find_all: bool = None
    ''' Search in all text data-blocks, instead of only the active one

    :type: bool
    '''

    use_find_wrap: bool = None
    ''' Search again from the start of the file when reaching the end

    :type: bool
    '''

    use_live_edit: bool = None
    ''' Run python while editing

    :type: bool
    '''

    use_match_case: bool = None
    ''' Search string is sensitive to uppercase and lowercase letters

    :type: bool
    '''

    use_overwrite: bool = None
    ''' Overwrite characters when typing rather than inserting them

    :type: bool
    '''

    visible_lines: int = None
    ''' Amount of lines that can be visible in current editor

    :type: int
    '''

    def is_syntax_highlight_supported(self):
        ''' Returns True if the editor supports syntax highlighting for the current text datablock

        '''
        pass

    def region_location_from_cursor(self, line: int,
                                    column: int) -> typing.List[int]:
        ''' Retrieve the region position from the given line and character position

        :param line: Line, Line index
        :type line: int
        :param column: Column, Column index
        :type column: int
        :rtype: typing.List[int]
        :return: Region coordinates
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpaceView3D(Space, bpy_struct):
    ''' 3D View space data
    '''

    camera: 'Object' = None
    ''' Active camera used in this view (when unlocked from the scene's active camera)

    :type: 'Object'
    '''

    clip_end: float = None
    ''' 3D View far clipping distance

    :type: float
    '''

    clip_start: float = None
    ''' 3D View near clipping distance (perspective view only)

    :type: float
    '''

    icon_from_show_object_viewport: int = None
    ''' 

    :type: int
    '''

    lens: float = None
    ''' Viewport lens angle

    :type: float
    '''

    local_view: 'SpaceView3D' = None
    ''' Display an isolated subset of objects, apart from the scene visibility

    :type: 'SpaceView3D'
    '''

    lock_bone: str = None
    ''' 3D View center is locked to this bone's position

    :type: str
    '''

    lock_camera: bool = None
    ''' Enable view navigation within the camera view

    :type: bool
    '''

    lock_cursor: bool = None
    ''' 3D View center is locked to the cursor's position

    :type: bool
    '''

    lock_object: 'Object' = None
    ''' 3D View center is locked to this object's position

    :type: 'Object'
    '''

    mirror_xr_session: bool = None
    ''' Synchronize the viewer perspective of virtual reality sessions with this 3D viewport

    :type: bool
    '''

    overlay: 'View3DOverlay' = None
    ''' Settings for display of overlays in the 3D viewport

    :type: 'View3DOverlay'
    '''

    region_3d: 'RegionView3D' = None
    ''' 3D region in this space, in case of quad view the camera region

    :type: 'RegionView3D'
    '''

    region_quadviews: typing.Union[typing.Dict[str, 'RegionView3D'], typing.
                                   List['RegionView3D'],
                                   'bpy_prop_collection'] = None
    ''' 3D regions (the third one defines quad view settings, the fourth one is same as 'region_3d')

    :type: typing.Union[typing.Dict[str, 'RegionView3D'], typing.List['RegionView3D'], 'bpy_prop_collection']
    '''

    render_border_max_x: float = None
    ''' Maximum X value for the render region

    :type: float
    '''

    render_border_max_y: float = None
    ''' Maximum Y value for the render region

    :type: float
    '''

    render_border_min_x: float = None
    ''' Minimum X value for the render region

    :type: float
    '''

    render_border_min_y: float = None
    ''' Minimum Y value for the render region

    :type: float
    '''

    shading: 'View3DShading' = None
    ''' Settings for shading in the 3D viewport

    :type: 'View3DShading'
    '''

    show_bundle_names: bool = None
    ''' Show names for reconstructed tracks objects

    :type: bool
    '''

    show_camera_path: bool = None
    ''' Show reconstructed camera path

    :type: bool
    '''

    show_gizmo: bool = None
    ''' Show gizmos of all types

    :type: bool
    '''

    show_gizmo_camera_dof_distance: bool = None
    ''' Gizmo to adjust camera focus distance (depends on limits display)

    :type: bool
    '''

    show_gizmo_camera_lens: bool = None
    ''' Gizmo to adjust camera focal length or orthographic scale

    :type: bool
    '''

    show_gizmo_context: bool = None
    ''' Context sensitive gizmos for the active item

    :type: bool
    '''

    show_gizmo_empty_force_field: bool = None
    ''' Gizmo to adjust the force field

    :type: bool
    '''

    show_gizmo_empty_image: bool = None
    ''' Gizmo to adjust image size and position

    :type: bool
    '''

    show_gizmo_light_look_at: bool = None
    ''' Gizmo to adjust the direction of the light

    :type: bool
    '''

    show_gizmo_light_size: bool = None
    ''' Gizmo to adjust spot and area size

    :type: bool
    '''

    show_gizmo_navigate: bool = None
    ''' Viewport navigation gizmo

    :type: bool
    '''

    show_gizmo_object_rotate: bool = None
    ''' Gizmo to adjust rotation

    :type: bool
    '''

    show_gizmo_object_scale: bool = None
    ''' Gizmo to adjust scale

    :type: bool
    '''

    show_gizmo_object_translate: bool = None
    ''' Gizmo to adjust location

    :type: bool
    '''

    show_gizmo_tool: bool = None
    ''' Active tool gizmo

    :type: bool
    '''

    show_object_select_armature: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_camera: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_curve: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_empty: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_font: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_grease_pencil: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_hair: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_lattice: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_light: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_light_probe: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_mesh: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_meta: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_pointcloud: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_speaker: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_surf: bool = None
    ''' 

    :type: bool
    '''

    show_object_select_volume: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_armature: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_camera: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_curve: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_empty: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_font: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_grease_pencil: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_hair: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_lattice: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_light: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_light_probe: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_mesh: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_meta: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_pointcloud: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_speaker: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_surf: bool = None
    ''' 

    :type: bool
    '''

    show_object_viewport_volume: bool = None
    ''' 

    :type: bool
    '''

    show_reconstruction: bool = None
    ''' Display reconstruction data from active movie clip

    :type: bool
    '''

    show_region_hud: bool = None
    ''' 

    :type: bool
    '''

    show_region_tool_header: bool = None
    ''' 

    :type: bool
    '''

    show_region_toolbar: bool = None
    ''' 

    :type: bool
    '''

    show_region_ui: bool = None
    ''' 

    :type: bool
    '''

    show_stereo_3d_cameras: bool = None
    ''' Show the left and right cameras

    :type: bool
    '''

    show_stereo_3d_convergence_plane: bool = None
    ''' Show the stereo 3D convergence plane

    :type: bool
    '''

    show_stereo_3d_volume: bool = None
    ''' Show the stereo 3D frustum volume

    :type: bool
    '''

    stereo_3d_camera: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    stereo_3d_convergence_plane_alpha: float = None
    ''' Opacity (alpha) of the convergence plane

    :type: float
    '''

    stereo_3d_eye: typing.Union[int, str] = None
    ''' Current stereo eye being displayed

    :type: typing.Union[int, str]
    '''

    stereo_3d_volume_alpha: float = None
    ''' Opacity (alpha) of the cameras' frustum volume

    :type: float
    '''

    tracks_display_size: float = None
    ''' Display size of tracks from reconstructed data

    :type: float
    '''

    tracks_display_type: typing.Union[int, str] = None
    ''' Viewport display style for tracks

    :type: typing.Union[int, str]
    '''

    use_local_camera: bool = None
    ''' Use a local camera in this view, rather than scene's active camera

    :type: bool
    '''

    use_local_collections: bool = None
    ''' Display a different set of collections in this viewport

    :type: bool
    '''

    use_render_border: bool = None
    ''' Use a region within the frame size for rendered viewport (when not viewing through the camera)

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass

    def draw_handler_add(self, callback, args: tuple, region_type: str,
                         draw_type: str) -> 'bpy.context.object':
        ''' Add a new draw handler to this space type. It will be called every time the specified region in the space type will be drawn. Note: All arguments are positional only for now.

        :param callback: A function that will be called when the region is drawn. It gets the specified arguments as input.
        :type callback: 
        :param args: Arguments that will be passed to the callback.
        :type args: tuple
        :param region_type: bpy.types.Region.type )
        :type region_type: str
        :param draw_type: Usually POST_PIXEL for 2D drawing and POST_VIEW for 3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used for backdrops in the node editor.
        :type draw_type: str
        :rtype: 'bpy.context.object'
        :return: Handler that can be removed later on.
        '''
        pass

    def draw_handler_remove(self, handler: 'bpy.context.object',
                            region_type: str):
        ''' Remove a draw handler that was added previously.

        :param handler: The draw handler that should be removed.
        :type handler: 'bpy.context.object'
        :param region_type: Region type the callback was added to.
        :type region_type: str
        '''
        pass


class SpreadsheetContextModifier(SpreadsheetContext, bpy_struct):
    modifier_name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpreadsheetContextNode(SpreadsheetContext, bpy_struct):
    node_name: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpreadsheetContextObject(SpreadsheetContext, bpy_struct):
    object: 'Object' = None
    ''' 

    :type: 'Object'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BrushTextureSlot(TextureSlot, bpy_struct):
    ''' Texture slot for textures in a Brush data-block
    '''

    angle: float = None
    ''' Brush texture rotation

    :type: float
    '''

    has_random_texture_angle: bool = None
    ''' 

    :type: bool
    '''

    has_texture_angle: bool = None
    ''' 

    :type: bool
    '''

    has_texture_angle_source: bool = None
    ''' 

    :type: bool
    '''

    map_mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mask_map_mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    random_angle: float = None
    ''' Brush texture random angle

    :type: float
    '''

    use_rake: bool = None
    ''' 

    :type: bool
    '''

    use_random: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleTextureSlot(TextureSlot, bpy_struct):
    ''' Texture slot for textures in a LineStyle data-block
    '''

    alpha_factor: float = None
    ''' Amount texture affects alpha

    :type: float
    '''

    diffuse_color_factor: float = None
    ''' Amount texture affects diffuse color

    :type: float
    '''

    mapping: typing.Union[int, str] = None
    ''' * FLAT Flat -- Map X and Y coordinates directly. * CUBE Cube -- Map using the normal vector. * TUBE Tube -- Map with Z as central axis. * SPHERE Sphere -- Map with Z as central axis.

    :type: typing.Union[int, str]
    '''

    mapping_x: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mapping_y: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mapping_z: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    texture_coords: typing.Union[int, str] = None
    ''' Texture coordinates used to map the texture onto the background * WINDOW Window -- Use screen coordinates as texture coordinates. * GLOBAL Global -- Use global coordinates for the texture coordinates. * ALONG_STROKE Along stroke -- Use stroke length for texture coordinates. * ORCO Generated -- Use the original undeformed coordinates of the object.

    :type: typing.Union[int, str]
    '''

    use_map_alpha: bool = None
    ''' The texture affects the alpha value

    :type: bool
    '''

    use_map_color_diffuse: bool = None
    ''' The texture affects basic color of the stroke

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ParticleSettingsTextureSlot(TextureSlot, bpy_struct):
    ''' Texture slot for textures in a Particle Settings data-block
    '''

    clump_factor: float = None
    ''' Amount texture affects child clump

    :type: float
    '''

    damp_factor: float = None
    ''' Amount texture affects particle damping

    :type: float
    '''

    density_factor: float = None
    ''' Amount texture affects particle density

    :type: float
    '''

    field_factor: float = None
    ''' Amount texture affects particle force fields

    :type: float
    '''

    gravity_factor: float = None
    ''' Amount texture affects particle gravity

    :type: float
    '''

    kink_amp_factor: float = None
    ''' Amount texture affects child kink amplitude

    :type: float
    '''

    kink_freq_factor: float = None
    ''' Amount texture affects child kink frequency

    :type: float
    '''

    length_factor: float = None
    ''' Amount texture affects child hair length

    :type: float
    '''

    life_factor: float = None
    ''' Amount texture affects particle life time

    :type: float
    '''

    mapping: typing.Union[int, str] = None
    ''' * FLAT Flat -- Map X and Y coordinates directly. * CUBE Cube -- Map using the normal vector. * TUBE Tube -- Map with Z as central axis. * SPHERE Sphere -- Map with Z as central axis.

    :type: typing.Union[int, str]
    '''

    mapping_x: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mapping_y: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mapping_z: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    object: 'Object' = None
    ''' Object to use for mapping with Object texture coordinates

    :type: 'Object'
    '''

    rough_factor: float = None
    ''' Amount texture affects child roughness

    :type: float
    '''

    size_factor: float = None
    ''' Amount texture affects physical particle size

    :type: float
    '''

    texture_coords: typing.Union[int, str] = None
    ''' Texture coordinates used to map the texture onto the background * GLOBAL Global -- Use global coordinates for the texture coordinates. * OBJECT Object -- Use linked object's coordinates for texture coordinates. * UV UV -- Use UV coordinates for texture coordinates. * ORCO Generated -- Use the original undeformed coordinates of the object. * STRAND Strand / Particle -- Use normalized strand texture coordinate (1D) or particle age (X) and trail position (Y).

    :type: typing.Union[int, str]
    '''

    time_factor: float = None
    ''' Amount texture affects particle emission time

    :type: float
    '''

    twist_factor: float = None
    ''' Amount texture affects child twist

    :type: float
    '''

    use_map_clump: bool = None
    ''' Affect the child clumping

    :type: bool
    '''

    use_map_damp: bool = None
    ''' Affect the particle velocity damping

    :type: bool
    '''

    use_map_density: bool = None
    ''' Affect the density of the particles

    :type: bool
    '''

    use_map_field: bool = None
    ''' Affect the particle force fields

    :type: bool
    '''

    use_map_gravity: bool = None
    ''' Affect the particle gravity

    :type: bool
    '''

    use_map_kink_amp: bool = None
    ''' Affect the child kink amplitude

    :type: bool
    '''

    use_map_kink_freq: bool = None
    ''' Affect the child kink frequency

    :type: bool
    '''

    use_map_length: bool = None
    ''' Affect the child hair length

    :type: bool
    '''

    use_map_life: bool = None
    ''' Affect the life time of the particles

    :type: bool
    '''

    use_map_rough: bool = None
    ''' Affect the child rough

    :type: bool
    '''

    use_map_size: bool = None
    ''' Affect the particle size

    :type: bool
    '''

    use_map_time: bool = None
    ''' Affect the emission time of the particles

    :type: bool
    '''

    use_map_twist: bool = None
    ''' Affect the child twist

    :type: bool
    '''

    use_map_velocity: bool = None
    ''' Affect the particle initial velocity

    :type: bool
    '''

    uv_layer: str = None
    ''' UV map to use for mapping with UV texture coordinates

    :type: str
    '''

    velocity_factor: float = None
    ''' Amount texture affects particle initial velocity

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ASSETBROWSER_UL_metadata_tags(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CLIP_UL_tracking_objects(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, _icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FILEBROWSER_UL_dir(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPENCIL_UL_annotation_layer(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPENCIL_UL_layer(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPENCIL_UL_masks(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPENCIL_UL_matslots(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GPENCIL_UL_vgroups(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class HAIR_UL_attributes(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, attribute, _icon,
                  _active_data, _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IMAGE_UL_render_slots(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, _icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class IMAGE_UL_udim_tiles(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, _icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MASK_UL_layers(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MATERIAL_UL_matslots(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MESH_UL_attributes(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, attribute, _icon,
                  _active_data, _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MESH_UL_fmaps(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MESH_UL_shape_keys(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, active_data,
                  _active_propname, index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MESH_UL_uvmaps(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MESH_UL_vcols(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MESH_UL_vgroups(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data_,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NODE_UL_interface_sockets(UIList, bpy_struct):
    def draw_item(self, context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PARTICLE_UL_particle_systems(UIList, bpy_struct):
    def draw_item(self, _context, layout, data, item, icon, _active_data,
                  _active_propname, _index, _flt_flag):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PHYSICS_UL_dynapaint_surfaces(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class POINTCLOUD_UL_attributes(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, attribute, _icon,
                  _active_data, _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class RENDER_UL_renderviews(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SCENE_UL_keying_set_paths(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TEXTURE_UL_texpaintslots(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TEXTURE_UL_texslots(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class UI_UL_list(UIList, bpy_struct):
    @staticmethod
    def filter_items_by_name(pattern,
                             bitflag,
                             items,
                             propname='name',
                             flags=None,
                             reverse=False):
        ''' Set FILTER_ITEM for items which name matches filter_name one (case-insensitive). pattern is the filtering pattern. propname is the name of the string property to use for filtering. flags must be a list of integers the same length as items, or None! return a list of flags (based on given flags if not None), or an empty list if no flags were given and no filtering has been done.

        '''
        pass

    @staticmethod
    def sort_items_helper(sort_data, key, reverse=False):
        ''' Common sorting utility. Returns a neworder list mapping org_idx -> new_idx. sort_data must be an (unordered) list of tuples [(org_idx, ...), (org_idx, ...), ...]. key must be the same kind of callable you would use for sorted() builtin function. reverse will reverse the sorting!

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VIEWLAYER_UL_aov(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VIEWLAYER_UL_linesets(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, item, icon, _active_data,
                  _active_propname, index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VOLUME_UL_grids(UIList, bpy_struct):
    def draw_item(self, _context, layout, _data, grid, _icon, _active_data,
                  _active_propname, _index):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SurfaceCurve(Curve, ID, bpy_struct):
    ''' Curve data-block used for storing surfaces
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextCurve(Curve, ID, bpy_struct):
    ''' Curve data-block used for storing text
    '''

    active_textbox: int = None
    ''' 

    :type: int
    '''

    align_x: typing.Union[int, str] = None
    ''' Text horizontal align from the object center * LEFT Left -- Align text to the left. * CENTER Center -- Center text. * RIGHT Right -- Align text to the right. * JUSTIFY Justify -- Align to the left and the right. * FLUSH Flush -- Align to the left and the right, with equal character spacing.

    :type: typing.Union[int, str]
    '''

    align_y: typing.Union[int, str] = None
    ''' Text vertical align from the object center * TOP_BASELINE Top Base-Line -- Align to top but use the base-line of the text. * TOP Top -- Align text to the top. * CENTER Center -- Align text to the middle. * BOTTOM Bottom -- Align text to the bottom. * BOTTOM_BASELINE Bottom Base-Line -- Align text to the bottom but use the base-line of the text.

    :type: typing.Union[int, str]
    '''

    body: str = None
    ''' Content of this text object

    :type: str
    '''

    body_format: typing.Union[typing.Dict[str, 'TextCharacterFormat'], typing.
                              List['TextCharacterFormat'],
                              'bpy_prop_collection'] = None
    ''' Stores the style of each character

    :type: typing.Union[typing.Dict[str, 'TextCharacterFormat'], typing.List['TextCharacterFormat'], 'bpy_prop_collection']
    '''

    edit_format: 'TextCharacterFormat' = None
    ''' Editing settings character formatting

    :type: 'TextCharacterFormat'
    '''

    family: str = None
    ''' Use objects as font characters (give font objects a common name followed by the character they represent, eg. 'family-a', 'family-b', etc, set this setting to 'family-', and turn on Vertex Instancing)

    :type: str
    '''

    follow_curve: 'Object' = None
    ''' Curve deforming text object

    :type: 'Object'
    '''

    font: 'VectorFont' = None
    ''' 

    :type: 'VectorFont'
    '''

    font_bold: 'VectorFont' = None
    ''' 

    :type: 'VectorFont'
    '''

    font_bold_italic: 'VectorFont' = None
    ''' 

    :type: 'VectorFont'
    '''

    font_italic: 'VectorFont' = None
    ''' 

    :type: 'VectorFont'
    '''

    offset_x: float = None
    ''' Horizontal offset from the object origin

    :type: float
    '''

    offset_y: float = None
    ''' Vertical offset from the object origin

    :type: float
    '''

    overflow: typing.Union[int, str] = None
    ''' Handle the text behavior when it doesn't fit in the text boxes * NONE Overflow -- Let the text overflow outside the text boxes. * SCALE Scale to Fit -- Scale down the text to fit inside the text boxes. * TRUNCATE Truncate -- Truncate the text that would go outside the text boxes.

    :type: typing.Union[int, str]
    '''

    shear: float = None
    ''' Italic angle of the characters

    :type: float
    '''

    size: float = None
    ''' 

    :type: float
    '''

    small_caps_scale: float = None
    ''' Scale of small capitals

    :type: float
    '''

    space_character: float = None
    ''' 

    :type: float
    '''

    space_line: float = None
    ''' 

    :type: float
    '''

    space_word: float = None
    ''' 

    :type: float
    '''

    text_boxes: typing.Union[typing.Dict[str, 'TextBox'], typing.
                             List['TextBox'], 'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'TextBox'], typing.List['TextBox'], 'bpy_prop_collection']
    '''

    underline_height: float = None
    ''' 

    :type: float
    '''

    underline_position: float = None
    ''' Vertical position of underline

    :type: float
    '''

    use_fast_edit: bool = None
    ''' Don't fill polygons while editing

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AreaLight(Light, ID, bpy_struct):
    ''' Directional area Light
    '''

    constant_coefficient: float = None
    ''' Constant distance attenuation coefficient

    :type: float
    '''

    contact_shadow_bias: float = None
    ''' Bias to avoid self shadowing

    :type: float
    '''

    contact_shadow_distance: float = None
    ''' World space distance in which to search for screen space occluder

    :type: float
    '''

    contact_shadow_thickness: float = None
    ''' Pixel thickness used to detect occlusion

    :type: float
    '''

    energy: float = None
    ''' Light energy emitted over the entire area of the light in all directions

    :type: float
    '''

    falloff_curve: 'CurveMapping' = None
    ''' Custom light falloff curve

    :type: 'CurveMapping'
    '''

    falloff_type: typing.Union[int, str] = None
    ''' Intensity Decay with distance

    :type: typing.Union[int, str]
    '''

    linear_attenuation: float = None
    ''' Linear distance attenuation

    :type: float
    '''

    linear_coefficient: float = None
    ''' Linear distance attenuation coefficient

    :type: float
    '''

    quadratic_attenuation: float = None
    ''' Quadratic distance attenuation

    :type: float
    '''

    quadratic_coefficient: float = None
    ''' Quadratic distance attenuation coefficient

    :type: float
    '''

    shadow_buffer_bias: float = None
    ''' Bias for reducing self shadowing

    :type: float
    '''

    shadow_buffer_clip_start: float = None
    ''' Shadow map clip start, below which objects will not generate shadows

    :type: float
    '''

    shadow_buffer_samples: int = None
    ''' Number of shadow buffer samples

    :type: int
    '''

    shadow_buffer_size: int = None
    ''' Resolution of the shadow buffer, higher values give crisper shadows but use more memory

    :type: int
    '''

    shadow_color: typing.List[float] = None
    ''' Color of shadows cast by the light

    :type: typing.List[float]
    '''

    shadow_soft_size: float = None
    ''' Light size for ray shadow sampling (Raytraced shadows)

    :type: float
    '''

    shape: typing.Union[int, str] = None
    ''' Shape of the area Light

    :type: typing.Union[int, str]
    '''

    size: float = None
    ''' Size of the area of the area light, X direction size for rectangle shapes

    :type: float
    '''

    size_y: float = None
    ''' Size of the area of the area light in the Y direction for rectangle shapes

    :type: float
    '''

    spread: float = None
    ''' How widely the emitted light fans out, as in the case of a gridded softbox

    :type: float
    '''

    use_contact_shadow: bool = None
    ''' Use screen space raytracing to have correct shadowing near occluder, or for small features that does not appear in shadow maps

    :type: bool
    '''

    use_shadow: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class PointLight(Light, ID, bpy_struct):
    ''' Omnidirectional point Light
    '''

    constant_coefficient: float = None
    ''' Constant distance attenuation coefficient

    :type: float
    '''

    contact_shadow_bias: float = None
    ''' Bias to avoid self shadowing

    :type: float
    '''

    contact_shadow_distance: float = None
    ''' World space distance in which to search for screen space occluder

    :type: float
    '''

    contact_shadow_thickness: float = None
    ''' Pixel thickness used to detect occlusion

    :type: float
    '''

    energy: float = None
    ''' Light energy emitted over the entire area of the light in all directions

    :type: float
    '''

    falloff_curve: 'CurveMapping' = None
    ''' Custom light falloff curve

    :type: 'CurveMapping'
    '''

    falloff_type: typing.Union[int, str] = None
    ''' Intensity Decay with distance

    :type: typing.Union[int, str]
    '''

    linear_attenuation: float = None
    ''' Linear distance attenuation

    :type: float
    '''

    linear_coefficient: float = None
    ''' Linear distance attenuation coefficient

    :type: float
    '''

    quadratic_attenuation: float = None
    ''' Quadratic distance attenuation

    :type: float
    '''

    quadratic_coefficient: float = None
    ''' Quadratic distance attenuation coefficient

    :type: float
    '''

    shadow_buffer_bias: float = None
    ''' Bias for reducing self shadowing

    :type: float
    '''

    shadow_buffer_clip_start: float = None
    ''' Shadow map clip start, below which objects will not generate shadows

    :type: float
    '''

    shadow_buffer_samples: int = None
    ''' Number of shadow buffer samples

    :type: int
    '''

    shadow_buffer_size: int = None
    ''' Resolution of the shadow buffer, higher values give crisper shadows but use more memory

    :type: int
    '''

    shadow_color: typing.List[float] = None
    ''' Color of shadows cast by the light

    :type: typing.List[float]
    '''

    shadow_soft_size: float = None
    ''' Light size for ray shadow sampling (Raytraced shadows)

    :type: float
    '''

    use_contact_shadow: bool = None
    ''' Use screen space raytracing to have correct shadowing near occluder, or for small features that does not appear in shadow maps

    :type: bool
    '''

    use_shadow: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpotLight(Light, ID, bpy_struct):
    ''' Directional cone Light
    '''

    constant_coefficient: float = None
    ''' Constant distance attenuation coefficient

    :type: float
    '''

    contact_shadow_bias: float = None
    ''' Bias to avoid self shadowing

    :type: float
    '''

    contact_shadow_distance: float = None
    ''' World space distance in which to search for screen space occluder

    :type: float
    '''

    contact_shadow_thickness: float = None
    ''' Pixel thickness used to detect occlusion

    :type: float
    '''

    energy: float = None
    ''' The energy this light would emit over its entire area if it wasn't limited by the spot angle

    :type: float
    '''

    falloff_curve: 'CurveMapping' = None
    ''' Custom light falloff curve

    :type: 'CurveMapping'
    '''

    falloff_type: typing.Union[int, str] = None
    ''' Intensity Decay with distance

    :type: typing.Union[int, str]
    '''

    linear_attenuation: float = None
    ''' Linear distance attenuation

    :type: float
    '''

    linear_coefficient: float = None
    ''' Linear distance attenuation coefficient

    :type: float
    '''

    quadratic_attenuation: float = None
    ''' Quadratic distance attenuation

    :type: float
    '''

    quadratic_coefficient: float = None
    ''' Quadratic distance attenuation coefficient

    :type: float
    '''

    shadow_buffer_bias: float = None
    ''' Bias for reducing self shadowing

    :type: float
    '''

    shadow_buffer_clip_start: float = None
    ''' Shadow map clip start, below which objects will not generate shadows

    :type: float
    '''

    shadow_buffer_samples: int = None
    ''' Number of shadow buffer samples

    :type: int
    '''

    shadow_buffer_size: int = None
    ''' Resolution of the shadow buffer, higher values give crisper shadows but use more memory

    :type: int
    '''

    shadow_color: typing.List[float] = None
    ''' Color of shadows cast by the light

    :type: typing.List[float]
    '''

    shadow_soft_size: float = None
    ''' Light size for ray shadow sampling (Raytraced shadows)

    :type: float
    '''

    show_cone: bool = None
    ''' Display transparent cone in 3D view to visualize which objects are contained in it

    :type: bool
    '''

    spot_blend: float = None
    ''' The softness of the spotlight edge

    :type: float
    '''

    spot_size: float = None
    ''' Angle of the spotlight beam

    :type: float
    '''

    use_contact_shadow: bool = None
    ''' Use screen space raytracing to have correct shadowing near occluder, or for small features that does not appear in shadow maps

    :type: bool
    '''

    use_shadow: bool = None
    ''' 

    :type: bool
    '''

    use_square: bool = None
    ''' Cast a square spot light shape

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SunLight(Light, ID, bpy_struct):
    ''' Constant direction parallel ray Light
    '''

    angle: float = None
    ''' Angular diameter of the Sun as seen from the Earth

    :type: float
    '''

    contact_shadow_bias: float = None
    ''' Bias to avoid self shadowing

    :type: float
    '''

    contact_shadow_distance: float = None
    ''' World space distance in which to search for screen space occluder

    :type: float
    '''

    contact_shadow_thickness: float = None
    ''' Pixel thickness used to detect occlusion

    :type: float
    '''

    energy: float = None
    ''' Sunlight strength in watts per meter squared (W/m^2)

    :type: float
    '''

    shadow_buffer_bias: float = None
    ''' Bias for reducing self shadowing

    :type: float
    '''

    shadow_buffer_clip_start: float = None
    ''' Shadow map clip start, below which objects will not generate shadows

    :type: float
    '''

    shadow_buffer_samples: int = None
    ''' Number of shadow buffer samples

    :type: int
    '''

    shadow_buffer_size: int = None
    ''' Resolution of the shadow buffer, higher values give crisper shadows but use more memory

    :type: int
    '''

    shadow_cascade_count: int = None
    ''' Number of texture used by the cascaded shadow map

    :type: int
    '''

    shadow_cascade_exponent: float = None
    ''' Higher value increase resolution towards the viewpoint

    :type: float
    '''

    shadow_cascade_fade: float = None
    ''' How smooth is the transition between each cascade

    :type: float
    '''

    shadow_cascade_max_distance: float = None
    ''' End distance of the cascaded shadow map (only in perspective view)

    :type: float
    '''

    shadow_color: typing.List[float] = None
    ''' Color of shadows cast by the light

    :type: typing.List[float]
    '''

    shadow_soft_size: float = None
    ''' Light size for ray shadow sampling (Raytraced shadows)

    :type: float
    '''

    use_contact_shadow: bool = None
    ''' Use screen space raytracing to have correct shadowing near occluder, or for small features that does not appear in shadow maps

    :type: bool
    '''

    use_shadow: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeTree(NodeTree, ID, bpy_struct):
    ''' Node tree consisting of linked nodes used for compositing
    '''

    chunk_size: typing.Union[int, str] = None
    ''' Max size of a tile (smaller values gives better distribution of multiple threads, but more overhead) * 32 32x32 -- Chunksize of 32x32. * 64 64x64 -- Chunksize of 64x64. * 128 128x128 -- Chunksize of 128x128. * 256 256x256 -- Chunksize of 256x256. * 512 512x512 -- Chunksize of 512x512. * 1024 1024x1024 -- Chunksize of 1024x1024.

    :type: typing.Union[int, str]
    '''

    edit_quality: typing.Union[int, str] = None
    ''' Quality when editing * HIGH High -- High quality. * MEDIUM Medium -- Medium quality. * LOW Low -- Low quality.

    :type: typing.Union[int, str]
    '''

    execution_mode: typing.Union[int, str] = None
    ''' Set how compositing is executed * TILED Tiled -- Compositing is tiled, having as priority to display first tiles as fast as possible. * FULL_FRAME Full Frame -- Composites full image result as fast as possible.

    :type: typing.Union[int, str]
    '''

    render_quality: typing.Union[int, str] = None
    ''' Quality when rendering * HIGH High -- High quality. * MEDIUM Medium -- Medium quality. * LOW Low -- Low quality.

    :type: typing.Union[int, str]
    '''

    use_groupnode_buffer: bool = None
    ''' Enable buffering of group nodes

    :type: bool
    '''

    use_opencl: bool = None
    ''' Enable GPU calculations

    :type: bool
    '''

    use_two_pass: bool = None
    ''' Use two pass execution during editing: first calculate fast nodes, second pass calculate all nodes

    :type: bool
    '''

    use_viewer_border: bool = None
    ''' Use boundaries for viewer nodes and composite backdrop

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeTree(NodeTree, ID, bpy_struct):
    ''' Node tree consisting of linked nodes used for geometries
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTree(NodeTree, ID, bpy_struct):
    ''' Node tree consisting of linked nodes used for materials (and other shading data-blocks)
    '''

    def get_output_node(self, target: typing.Union[int, str]) -> 'ShaderNode':
        ''' Return active shader output node for the specified target

        :param target: Target * ALL All -- Use shaders for all renderers and viewports, unless there exists a more specific output. * EEVEE Eevee -- Use shaders for Eevee renderer. * CYCLES Cycles -- Use shaders for Cycles renderer.
        :type target: typing.Union[int, str]
        :rtype: 'ShaderNode'
        :return: Node
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTree(NodeTree, ID, bpy_struct):
    ''' Node tree consisting of linked nodes used for textures
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class BlendTexture(Texture, ID, bpy_struct):
    ''' Procedural color blending texture
    '''

    progression: typing.Union[int, str] = None
    ''' Style of the color blending * LINEAR Linear -- Create a linear progression. * QUADRATIC Quadratic -- Create a quadratic progression. * EASING Easing -- Create a progression easing from one step to the next. * DIAGONAL Diagonal -- Create a diagonal progression. * SPHERICAL Spherical -- Create a spherical progression. * QUADRATIC_SPHERE Quadratic Sphere -- Create a quadratic progression in the shape of a sphere. * RADIAL Radial -- Create a radial progression.

    :type: typing.Union[int, str]
    '''

    use_flip_axis: typing.Union[int, str] = None
    ''' Flip the texture's X and Y axis * HORIZONTAL Horizontal -- No flipping. * VERTICAL Vertical -- Flip the texture's X and Y axis.

    :type: typing.Union[int, str]
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CloudsTexture(Texture, ID, bpy_struct):
    ''' Procedural noise texture
    '''

    cloud_type: typing.Union[int, str] = None
    ''' Determine whether Noise returns grayscale or RGB values

    :type: typing.Union[int, str]
    '''

    nabla: float = None
    ''' Size of derivative offset used for calculating normal

    :type: float
    '''

    noise_basis: typing.Union[int, str] = None
    ''' Noise basis used for turbulence * BLENDER_ORIGINAL Blender Original -- Noise algorithm - Blender original: Smooth interpolated noise. * ORIGINAL_PERLIN Original Perlin -- Noise algorithm - Original Perlin: Smooth interpolated noise. * IMPROVED_PERLIN Improved Perlin -- Noise algorithm - Improved Perlin: Smooth interpolated noise. * VORONOI_F1 Voronoi F1 -- Noise algorithm - Voronoi F1: Returns distance to the closest feature point. * VORONOI_F2 Voronoi F2 -- Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point. * VORONOI_F3 Voronoi F3 -- Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point. * VORONOI_F4 Voronoi F4 -- Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point. * VORONOI_F2_F1 Voronoi F2-F1 -- Noise algorithm - Voronoi F1-F2. * VORONOI_CRACKLE Voronoi Crackle -- Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges. * CELL_NOISE Cell Noise -- Noise algorithm - Cell Noise: Square cell tessellation.

    :type: typing.Union[int, str]
    '''

    noise_depth: int = None
    ''' Depth of the cloud calculation

    :type: int
    '''

    noise_scale: float = None
    ''' Scaling for noise input

    :type: float
    '''

    noise_type: typing.Union[int, str] = None
    ''' * SOFT_NOISE Soft -- Generate soft noise (smooth transitions). * HARD_NOISE Hard -- Generate hard noise (sharp transitions).

    :type: typing.Union[int, str]
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class DistortedNoiseTexture(Texture, ID, bpy_struct):
    ''' Procedural distorted noise texture
    '''

    distortion: float = None
    ''' Amount of distortion

    :type: float
    '''

    nabla: float = None
    ''' Size of derivative offset used for calculating normal

    :type: float
    '''

    noise_basis: typing.Union[int, str] = None
    ''' Noise basis used for turbulence * BLENDER_ORIGINAL Blender Original -- Noise algorithm - Blender original: Smooth interpolated noise. * ORIGINAL_PERLIN Original Perlin -- Noise algorithm - Original Perlin: Smooth interpolated noise. * IMPROVED_PERLIN Improved Perlin -- Noise algorithm - Improved Perlin: Smooth interpolated noise. * VORONOI_F1 Voronoi F1 -- Noise algorithm - Voronoi F1: Returns distance to the closest feature point. * VORONOI_F2 Voronoi F2 -- Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point. * VORONOI_F3 Voronoi F3 -- Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point. * VORONOI_F4 Voronoi F4 -- Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point. * VORONOI_F2_F1 Voronoi F2-F1 -- Noise algorithm - Voronoi F1-F2. * VORONOI_CRACKLE Voronoi Crackle -- Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges. * CELL_NOISE Cell Noise -- Noise algorithm - Cell Noise: Square cell tessellation.

    :type: typing.Union[int, str]
    '''

    noise_distortion: typing.Union[int, str] = None
    ''' Noise basis for the distortion * BLENDER_ORIGINAL Blender Original -- Noise algorithm - Blender original: Smooth interpolated noise. * ORIGINAL_PERLIN Original Perlin -- Noise algorithm - Original Perlin: Smooth interpolated noise. * IMPROVED_PERLIN Improved Perlin -- Noise algorithm - Improved Perlin: Smooth interpolated noise. * VORONOI_F1 Voronoi F1 -- Noise algorithm - Voronoi F1: Returns distance to the closest feature point. * VORONOI_F2 Voronoi F2 -- Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point. * VORONOI_F3 Voronoi F3 -- Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point. * VORONOI_F4 Voronoi F4 -- Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point. * VORONOI_F2_F1 Voronoi F2-F1 -- Noise algorithm - Voronoi F1-F2. * VORONOI_CRACKLE Voronoi Crackle -- Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges. * CELL_NOISE Cell Noise -- Noise algorithm - Cell Noise: Square cell tessellation.

    :type: typing.Union[int, str]
    '''

    noise_scale: float = None
    ''' Scaling for noise input

    :type: float
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ImageTexture(Texture, ID, bpy_struct):
    checker_distance: float = None
    ''' Distance between checker tiles

    :type: float
    '''

    crop_max_x: float = None
    ''' Maximum X value to crop the image

    :type: float
    '''

    crop_max_y: float = None
    ''' Maximum Y value to crop the image

    :type: float
    '''

    crop_min_x: float = None
    ''' Minimum X value to crop the image

    :type: float
    '''

    crop_min_y: float = None
    ''' Minimum Y value to crop the image

    :type: float
    '''

    extension: typing.Union[int, str] = None
    ''' How the image is extrapolated past its original bounds * EXTEND Extend -- Extend by repeating edge pixels of the image. * CLIP Clip -- Clip to image size and set exterior pixels as transparent. * CLIP_CUBE Clip Cube -- Clip to cubic-shaped area around the image and set exterior pixels as transparent. * REPEAT Repeat -- Cause the image to repeat horizontally and vertically. * CHECKER Checker -- Cause the image to repeat in checker board pattern.

    :type: typing.Union[int, str]
    '''

    filter_eccentricity: int = None
    ''' Maximum eccentricity (higher gives less blur at distant/oblique angles, but is also slower)

    :type: int
    '''

    filter_lightprobes: int = None
    ''' Maximum number of samples (higher gives less blur at distant/oblique angles, but is also slower)

    :type: int
    '''

    filter_size: float = None
    ''' Multiply the filter size used by MIP Map and Interpolation

    :type: float
    '''

    filter_type: typing.Union[int, str] = None
    ''' Texture filter to use for sampling image

    :type: typing.Union[int, str]
    '''

    image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    image_user: 'ImageUser' = None
    ''' Parameters defining which layer, pass and frame of the image is displayed

    :type: 'ImageUser'
    '''

    invert_alpha: bool = None
    ''' Invert all the alpha values in the image

    :type: bool
    '''

    repeat_x: int = None
    ''' Repetition multiplier in the X direction

    :type: int
    '''

    repeat_y: int = None
    ''' Repetition multiplier in the Y direction

    :type: int
    '''

    use_alpha: bool = None
    ''' Use the alpha channel information in the image

    :type: bool
    '''

    use_calculate_alpha: bool = None
    ''' Calculate an alpha channel based on RGB values in the image

    :type: bool
    '''

    use_checker_even: bool = None
    ''' Even checker tiles

    :type: bool
    '''

    use_checker_odd: bool = None
    ''' Odd checker tiles

    :type: bool
    '''

    use_filter_size_min: bool = None
    ''' Use Filter Size as a minimal filter value in pixels

    :type: bool
    '''

    use_flip_axis: bool = None
    ''' Flip the texture's X and Y axis

    :type: bool
    '''

    use_interpolation: bool = None
    ''' Interpolate pixels using selected filter

    :type: bool
    '''

    use_mipmap: bool = None
    ''' Use auto-generated MIP maps for the image

    :type: bool
    '''

    use_mipmap_gauss: bool = None
    ''' Use Gauss filter to sample down MIP maps

    :type: bool
    '''

    use_mirror_x: bool = None
    ''' Mirror the image repetition on the X direction

    :type: bool
    '''

    use_mirror_y: bool = None
    ''' Mirror the image repetition on the Y direction

    :type: bool
    '''

    use_normal_map: bool = None
    ''' Use image RGB values for normal mapping

    :type: bool
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MagicTexture(Texture, ID, bpy_struct):
    ''' Procedural noise texture
    '''

    noise_depth: int = None
    ''' Depth of the noise

    :type: int
    '''

    turbulence: float = None
    ''' Turbulence of the noise

    :type: float
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MarbleTexture(Texture, ID, bpy_struct):
    ''' Procedural noise texture
    '''

    marble_type: typing.Union[int, str] = None
    ''' * SOFT Soft -- Use soft marble. * SHARP Sharp -- Use more clearly defined marble. * SHARPER Sharper -- Use very clearly defined marble.

    :type: typing.Union[int, str]
    '''

    nabla: float = None
    ''' Size of derivative offset used for calculating normal

    :type: float
    '''

    noise_basis: typing.Union[int, str] = None
    ''' Noise basis used for turbulence * BLENDER_ORIGINAL Blender Original -- Noise algorithm - Blender original: Smooth interpolated noise. * ORIGINAL_PERLIN Original Perlin -- Noise algorithm - Original Perlin: Smooth interpolated noise. * IMPROVED_PERLIN Improved Perlin -- Noise algorithm - Improved Perlin: Smooth interpolated noise. * VORONOI_F1 Voronoi F1 -- Noise algorithm - Voronoi F1: Returns distance to the closest feature point. * VORONOI_F2 Voronoi F2 -- Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point. * VORONOI_F3 Voronoi F3 -- Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point. * VORONOI_F4 Voronoi F4 -- Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point. * VORONOI_F2_F1 Voronoi F2-F1 -- Noise algorithm - Voronoi F1-F2. * VORONOI_CRACKLE Voronoi Crackle -- Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges. * CELL_NOISE Cell Noise -- Noise algorithm - Cell Noise: Square cell tessellation.

    :type: typing.Union[int, str]
    '''

    noise_basis_2: typing.Union[int, str] = None
    ''' * SIN Sin -- Use a sine wave to produce bands. * SAW Saw -- Use a saw wave to produce bands. * TRI Tri -- Use a triangle wave to produce bands.

    :type: typing.Union[int, str]
    '''

    noise_depth: int = None
    ''' Depth of the cloud calculation

    :type: int
    '''

    noise_scale: float = None
    ''' Scaling for noise input

    :type: float
    '''

    noise_type: typing.Union[int, str] = None
    ''' * SOFT_NOISE Soft -- Generate soft noise (smooth transitions). * HARD_NOISE Hard -- Generate hard noise (sharp transitions).

    :type: typing.Union[int, str]
    '''

    turbulence: float = None
    ''' Turbulence of the bandnoise and ringnoise types

    :type: float
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MusgraveTexture(Texture, ID, bpy_struct):
    ''' Procedural musgrave texture
    '''

    dimension_max: float = None
    ''' Highest fractal dimension

    :type: float
    '''

    gain: float = None
    ''' The gain multiplier

    :type: float
    '''

    lacunarity: float = None
    ''' Gap between successive frequencies

    :type: float
    '''

    musgrave_type: typing.Union[int, str] = None
    ''' Fractal noise algorithm * MULTIFRACTAL Multifractal -- Use Perlin noise as a basis. * RIDGED_MULTIFRACTAL Ridged Multifractal -- Use Perlin noise with inflection as a basis. * HYBRID_MULTIFRACTAL Hybrid Multifractal -- Use Perlin noise as a basis, with extended controls. * FBM fBM -- Fractal Brownian Motion, use Brownian noise as a basis. * HETERO_TERRAIN Hetero Terrain -- Similar to multifractal.

    :type: typing.Union[int, str]
    '''

    nabla: float = None
    ''' Size of derivative offset used for calculating normal

    :type: float
    '''

    noise_basis: typing.Union[int, str] = None
    ''' Noise basis used for turbulence * BLENDER_ORIGINAL Blender Original -- Noise algorithm - Blender original: Smooth interpolated noise. * ORIGINAL_PERLIN Original Perlin -- Noise algorithm - Original Perlin: Smooth interpolated noise. * IMPROVED_PERLIN Improved Perlin -- Noise algorithm - Improved Perlin: Smooth interpolated noise. * VORONOI_F1 Voronoi F1 -- Noise algorithm - Voronoi F1: Returns distance to the closest feature point. * VORONOI_F2 Voronoi F2 -- Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point. * VORONOI_F3 Voronoi F3 -- Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point. * VORONOI_F4 Voronoi F4 -- Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point. * VORONOI_F2_F1 Voronoi F2-F1 -- Noise algorithm - Voronoi F1-F2. * VORONOI_CRACKLE Voronoi Crackle -- Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges. * CELL_NOISE Cell Noise -- Noise algorithm - Cell Noise: Square cell tessellation.

    :type: typing.Union[int, str]
    '''

    noise_intensity: float = None
    ''' Intensity of the noise

    :type: float
    '''

    noise_scale: float = None
    ''' Scaling for noise input

    :type: float
    '''

    octaves: float = None
    ''' Number of frequencies used

    :type: float
    '''

    offset: float = None
    ''' The fractal offset

    :type: float
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NoiseTexture(Texture, ID, bpy_struct):
    ''' Procedural noise texture
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class StucciTexture(Texture, ID, bpy_struct):
    ''' Procedural noise texture
    '''

    noise_basis: typing.Union[int, str] = None
    ''' Noise basis used for turbulence * BLENDER_ORIGINAL Blender Original -- Noise algorithm - Blender original: Smooth interpolated noise. * ORIGINAL_PERLIN Original Perlin -- Noise algorithm - Original Perlin: Smooth interpolated noise. * IMPROVED_PERLIN Improved Perlin -- Noise algorithm - Improved Perlin: Smooth interpolated noise. * VORONOI_F1 Voronoi F1 -- Noise algorithm - Voronoi F1: Returns distance to the closest feature point. * VORONOI_F2 Voronoi F2 -- Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point. * VORONOI_F3 Voronoi F3 -- Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point. * VORONOI_F4 Voronoi F4 -- Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point. * VORONOI_F2_F1 Voronoi F2-F1 -- Noise algorithm - Voronoi F1-F2. * VORONOI_CRACKLE Voronoi Crackle -- Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges. * CELL_NOISE Cell Noise -- Noise algorithm - Cell Noise: Square cell tessellation.

    :type: typing.Union[int, str]
    '''

    noise_scale: float = None
    ''' Scaling for noise input

    :type: float
    '''

    noise_type: typing.Union[int, str] = None
    ''' * SOFT_NOISE Soft -- Generate soft noise (smooth transitions). * HARD_NOISE Hard -- Generate hard noise (sharp transitions).

    :type: typing.Union[int, str]
    '''

    stucci_type: typing.Union[int, str] = None
    ''' * PLASTIC Plastic -- Use standard stucci. * WALL_IN Wall In -- Create Dimples. * WALL_OUT Wall Out -- Create Ridges.

    :type: typing.Union[int, str]
    '''

    turbulence: float = None
    ''' Turbulence of the noise

    :type: float
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class VoronoiTexture(Texture, ID, bpy_struct):
    ''' Procedural voronoi texture
    '''

    color_mode: typing.Union[int, str] = None
    ''' * INTENSITY Intensity -- Only calculate intensity. * POSITION Position -- Color cells by position. * POSITION_OUTLINE Position and Outline -- Use position plus an outline based on F2-F1. * POSITION_OUTLINE_INTENSITY Position, Outline, and Intensity -- Multiply position and outline by intensity.

    :type: typing.Union[int, str]
    '''

    distance_metric: typing.Union[int, str] = None
    ''' Algorithm used to calculate distance of sample points to feature points * DISTANCE Actual Distance -- sqrt(x\*x+y\*y+z\*z). * DISTANCE_SQUARED Distance Squared -- (x\*x+y\*y+z\*z). * MANHATTAN Manhattan -- The length of the distance in axial directions. * CHEBYCHEV Chebychev -- The length of the longest Axial journey. * MINKOVSKY_HALF Minkowski 1/2 -- Set Minkowski variable to 0.5. * MINKOVSKY_FOUR Minkowski 4 -- Set Minkowski variable to 4. * MINKOVSKY Minkowski -- Use the Minkowski function to calculate distance (exponent value determines the shape of the boundaries).

    :type: typing.Union[int, str]
    '''

    minkovsky_exponent: float = None
    ''' Minkowski exponent

    :type: float
    '''

    nabla: float = None
    ''' Size of derivative offset used for calculating normal

    :type: float
    '''

    noise_intensity: float = None
    ''' Scales the intensity of the noise

    :type: float
    '''

    noise_scale: float = None
    ''' Scaling for noise input

    :type: float
    '''

    weight_1: float = None
    ''' Voronoi feature weight 1

    :type: float
    '''

    weight_2: float = None
    ''' Voronoi feature weight 2

    :type: float
    '''

    weight_3: float = None
    ''' Voronoi feature weight 3

    :type: float
    '''

    weight_4: float = None
    ''' Voronoi feature weight 4

    :type: float
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WoodTexture(Texture, ID, bpy_struct):
    ''' Procedural noise texture
    '''

    nabla: float = None
    ''' Size of derivative offset used for calculating normal

    :type: float
    '''

    noise_basis: typing.Union[int, str] = None
    ''' Noise basis used for turbulence * BLENDER_ORIGINAL Blender Original -- Noise algorithm - Blender original: Smooth interpolated noise. * ORIGINAL_PERLIN Original Perlin -- Noise algorithm - Original Perlin: Smooth interpolated noise. * IMPROVED_PERLIN Improved Perlin -- Noise algorithm - Improved Perlin: Smooth interpolated noise. * VORONOI_F1 Voronoi F1 -- Noise algorithm - Voronoi F1: Returns distance to the closest feature point. * VORONOI_F2 Voronoi F2 -- Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point. * VORONOI_F3 Voronoi F3 -- Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point. * VORONOI_F4 Voronoi F4 -- Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point. * VORONOI_F2_F1 Voronoi F2-F1 -- Noise algorithm - Voronoi F1-F2. * VORONOI_CRACKLE Voronoi Crackle -- Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges. * CELL_NOISE Cell Noise -- Noise algorithm - Cell Noise: Square cell tessellation.

    :type: typing.Union[int, str]
    '''

    noise_basis_2: typing.Union[int, str] = None
    ''' * SIN Sine -- Use a sine wave to produce bands. * SAW Saw -- Use a saw wave to produce bands. * TRI Tri -- Use a triangle wave to produce bands.

    :type: typing.Union[int, str]
    '''

    noise_scale: float = None
    ''' Scaling for noise input

    :type: float
    '''

    noise_type: typing.Union[int, str] = None
    ''' * SOFT_NOISE Soft -- Generate soft noise (smooth transitions). * HARD_NOISE Hard -- Generate hard noise (sharp transitions).

    :type: typing.Union[int, str]
    '''

    turbulence: float = None
    ''' Turbulence of the bandnoise and ringnoise types

    :type: float
    '''

    wood_type: typing.Union[int, str] = None
    ''' * BANDS Bands -- Use standard wood texture in bands. * RINGS Rings -- Use wood texture in rings. * BANDNOISE Band Noise -- Add noise to standard wood. * RINGNOISE Ring Noise -- Add noise to rings.

    :type: typing.Union[int, str]
    '''

    users_material = None
    ''' Materials that use this texture (readonly)'''

    users_object_modifier = None
    ''' Object modifiers that use this texture (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_AlongStroke(LineStyleAlphaModifier,
                                         LineStyleModifier, bpy_struct):
    ''' Change alpha transparency along stroke
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_CreaseAngle(LineStyleAlphaModifier,
                                         LineStyleModifier, bpy_struct):
    ''' Alpha transparency based on the angle between two adjacent faces
    '''

    angle_max: float = None
    ''' Maximum angle to modify thickness

    :type: float
    '''

    angle_min: float = None
    ''' Minimum angle to modify thickness

    :type: float
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_Curvature_3D(LineStyleAlphaModifier,
                                          LineStyleModifier, bpy_struct):
    ''' Alpha transparency based on the radial curvature of 3D mesh surfaces
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curvature_max: float = None
    ''' Maximum Curvature

    :type: float
    '''

    curvature_min: float = None
    ''' Minimum Curvature

    :type: float
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_DistanceFromCamera(LineStyleAlphaModifier,
                                                LineStyleModifier, bpy_struct):
    ''' Change alpha transparency based on the distance from the camera
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    range_max: float = None
    ''' Upper bound of the input range the mapping is applied

    :type: float
    '''

    range_min: float = None
    ''' Lower bound of the input range the mapping is applied

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_DistanceFromObject(LineStyleAlphaModifier,
                                                LineStyleModifier, bpy_struct):
    ''' Change alpha transparency based on the distance from an object
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    range_max: float = None
    ''' Upper bound of the input range the mapping is applied

    :type: float
    '''

    range_min: float = None
    ''' Lower bound of the input range the mapping is applied

    :type: float
    '''

    target: 'Object' = None
    ''' Target object from which the distance is measured

    :type: 'Object'
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_Material(LineStyleAlphaModifier,
                                      LineStyleModifier, bpy_struct):
    ''' Change alpha transparency based on a material attribute
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    material_attribute: typing.Union[int, str] = None
    ''' Specify which material attribute is used

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_Noise(LineStyleAlphaModifier, LineStyleModifier,
                                   bpy_struct):
    ''' Alpha transparency based on random noise
    '''

    amplitude: float = None
    ''' Amplitude of the noise

    :type: float
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    period: float = None
    ''' Period of the noise

    :type: float
    '''

    seed: int = None
    ''' Seed for the noise generation

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleAlphaModifier_Tangent(LineStyleAlphaModifier, LineStyleModifier,
                                     bpy_struct):
    ''' Alpha transparency based on the direction of the stroke
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_AlongStroke(LineStyleColorModifier,
                                         LineStyleModifier, bpy_struct):
    ''' Change line color along stroke
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_CreaseAngle(LineStyleColorModifier,
                                         LineStyleModifier, bpy_struct):
    ''' Change line color based on the underlying crease angle
    '''

    angle_max: float = None
    ''' Maximum angle to modify thickness

    :type: float
    '''

    angle_min: float = None
    ''' Minimum angle to modify thickness

    :type: float
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_Curvature_3D(LineStyleColorModifier,
                                          LineStyleModifier, bpy_struct):
    ''' Change line color based on the radial curvature of 3D mesh surfaces
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    curvature_max: float = None
    ''' Maximum Curvature

    :type: float
    '''

    curvature_min: float = None
    ''' Minimum Curvature

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_DistanceFromCamera(LineStyleColorModifier,
                                                LineStyleModifier, bpy_struct):
    ''' Change line color based on the distance from the camera
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    range_max: float = None
    ''' Upper bound of the input range the mapping is applied

    :type: float
    '''

    range_min: float = None
    ''' Lower bound of the input range the mapping is applied

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_DistanceFromObject(LineStyleColorModifier,
                                                LineStyleModifier, bpy_struct):
    ''' Change line color based on the distance from an object
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    range_max: float = None
    ''' Upper bound of the input range the mapping is applied

    :type: float
    '''

    range_min: float = None
    ''' Lower bound of the input range the mapping is applied

    :type: float
    '''

    target: 'Object' = None
    ''' Target object from which the distance is measured

    :type: 'Object'
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_Material(LineStyleColorModifier,
                                      LineStyleModifier, bpy_struct):
    ''' Change line color based on a material attribute
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    material_attribute: typing.Union[int, str] = None
    ''' Specify which material attribute is used

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    use_ramp: bool = None
    ''' Use color ramp to map the BW average into an RGB color

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_Noise(LineStyleColorModifier, LineStyleModifier,
                                   bpy_struct):
    ''' Change line color based on random noise
    '''

    amplitude: float = None
    ''' Amplitude of the noise

    :type: float
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    period: float = None
    ''' Period of the noise

    :type: float
    '''

    seed: int = None
    ''' Seed for the noise generation

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleColorModifier_Tangent(LineStyleColorModifier, LineStyleModifier,
                                     bpy_struct):
    ''' Change line color based on the direction of a stroke
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    color_ramp: 'ColorRamp' = None
    ''' Color ramp used to change line color

    :type: 'ColorRamp'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_2DOffset(LineStyleGeometryModifier,
                                         LineStyleModifier, bpy_struct):
    ''' Add two-dimensional offsets to stroke backbone geometry
    '''

    end: float = None
    ''' Displacement that is applied from the end of the stroke

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    start: float = None
    ''' Displacement that is applied from the beginning of the stroke

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    x: float = None
    ''' Displacement that is applied to the X coordinates of stroke vertices

    :type: float
    '''

    y: float = None
    ''' Displacement that is applied to the Y coordinates of stroke vertices

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_2DTransform(LineStyleGeometryModifier,
                                            LineStyleModifier, bpy_struct):
    ''' Apply two-dimensional scaling and rotation to stroke backbone geometry
    '''

    angle: float = None
    ''' Rotation angle

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    pivot: typing.Union[int, str] = None
    ''' Pivot of scaling and rotation operations

    :type: typing.Union[int, str]
    '''

    pivot_u: float = None
    ''' Pivot in terms of the stroke point parameter u (0 <= u <= 1)

    :type: float
    '''

    pivot_x: float = None
    ''' 2D X coordinate of the absolute pivot

    :type: float
    '''

    pivot_y: float = None
    ''' 2D Y coordinate of the absolute pivot

    :type: float
    '''

    scale_x: float = None
    ''' Scaling factor that is applied along the X axis

    :type: float
    '''

    scale_y: float = None
    ''' Scaling factor that is applied along the Y axis

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_BackboneStretcher(
        LineStyleGeometryModifier, LineStyleModifier, bpy_struct):
    ''' Stretch the beginning and the end of stroke backbone
    '''

    backbone_length: float = None
    ''' Amount of backbone stretching

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_BezierCurve(LineStyleGeometryModifier,
                                            LineStyleModifier, bpy_struct):
    ''' Replace stroke backbone geometry by a Bezier curve approximation of the original backbone geometry
    '''

    error: float = None
    ''' Maximum distance allowed between the new Bezier curve and the original backbone geometry

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_Blueprint(LineStyleGeometryModifier,
                                          LineStyleModifier, bpy_struct):
    ''' Produce a blueprint using circular, elliptic, and square contour strokes
    '''

    backbone_length: float = None
    ''' Amount of backbone stretching

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    random_backbone: int = None
    ''' Randomness of the backbone stretching

    :type: int
    '''

    random_center: int = None
    ''' Randomness of the center

    :type: int
    '''

    random_radius: int = None
    ''' Randomness of the radius

    :type: int
    '''

    rounds: int = None
    ''' Number of rounds in contour strokes

    :type: int
    '''

    shape: typing.Union[int, str] = None
    ''' Select the shape of blueprint contour strokes * CIRCLES Circles -- Draw a blueprint using circular contour strokes. * ELLIPSES Ellipses -- Draw a blueprint using elliptic contour strokes. * SQUARES Squares -- Draw a blueprint using square contour strokes.

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_GuidingLines(LineStyleGeometryModifier,
                                             LineStyleModifier, bpy_struct):
    ''' Modify the stroke geometry so that it corresponds to its main direction line
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    offset: float = None
    ''' Displacement that is applied to the main direction line along its normal

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_PerlinNoise1D(LineStyleGeometryModifier,
                                              LineStyleModifier, bpy_struct):
    ''' Add one-dimensional Perlin noise to stroke backbone geometry
    '''

    amplitude: float = None
    ''' Amplitude of the Perlin noise

    :type: float
    '''

    angle: float = None
    ''' Displacement direction

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    frequency: float = None
    ''' Frequency of the Perlin noise

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    octaves: int = None
    ''' Number of octaves (i.e., the amount of detail of the Perlin noise)

    :type: int
    '''

    seed: int = None
    ''' Seed for random number generation (if negative, time is used as a seed instead)

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_PerlinNoise2D(LineStyleGeometryModifier,
                                              LineStyleModifier, bpy_struct):
    ''' Add two-dimensional Perlin noise to stroke backbone geometry
    '''

    amplitude: float = None
    ''' Amplitude of the Perlin noise

    :type: float
    '''

    angle: float = None
    ''' Displacement direction

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    frequency: float = None
    ''' Frequency of the Perlin noise

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    octaves: int = None
    ''' Number of octaves (i.e., the amount of detail of the Perlin noise)

    :type: int
    '''

    seed: int = None
    ''' Seed for random number generation (if negative, time is used as a seed instead)

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_Polygonalization(
        LineStyleGeometryModifier, LineStyleModifier, bpy_struct):
    ''' Modify the stroke geometry so that it looks more 'polygonal'
    '''

    error: float = None
    ''' Maximum distance between the original stroke and its polygonal approximation

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_Sampling(LineStyleGeometryModifier,
                                         LineStyleModifier, bpy_struct):
    ''' Specify a new sampling value that determines the resolution of stroke polylines
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    sampling: float = None
    ''' New sampling value to be used for subsequent modifiers

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_Simplification(LineStyleGeometryModifier,
                                               LineStyleModifier, bpy_struct):
    ''' Simplify the stroke set
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    tolerance: float = None
    ''' Distance below which segments will be merged

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_SinusDisplacement(
        LineStyleGeometryModifier, LineStyleModifier, bpy_struct):
    ''' Add sinus displacement to stroke backbone geometry
    '''

    amplitude: float = None
    ''' Amplitude of the sinus displacement

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    phase: float = None
    ''' Phase of the sinus displacement

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    wavelength: float = None
    ''' Wavelength of the sinus displacement

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_SpatialNoise(LineStyleGeometryModifier,
                                             LineStyleModifier, bpy_struct):
    ''' Add spatial noise to stroke backbone geometry
    '''

    amplitude: float = None
    ''' Amplitude of the spatial noise

    :type: float
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    octaves: int = None
    ''' Number of octaves (i.e., the amount of detail of the spatial noise)

    :type: int
    '''

    scale: float = None
    ''' Scale of the spatial noise

    :type: float
    '''

    smooth: bool = None
    ''' If true, the spatial noise is smooth

    :type: bool
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    use_pure_random: bool = None
    ''' If true, the spatial noise does not show any coherence

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleGeometryModifier_TipRemover(LineStyleGeometryModifier,
                                           LineStyleModifier, bpy_struct):
    ''' Remove a piece of stroke at the beginning and the end of stroke backbone
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    tip_length: float = None
    ''' Length of tips to be removed

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_AlongStroke(LineStyleThicknessModifier,
                                             LineStyleModifier, bpy_struct):
    ''' Change line thickness along stroke
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    value_max: float = None
    ''' Maximum output value of the mapping

    :type: float
    '''

    value_min: float = None
    ''' Minimum output value of the mapping

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_Calligraphy(LineStyleThicknessModifier,
                                             LineStyleModifier, bpy_struct):
    ''' Change line thickness so that stroke looks like made with a calligraphic pen
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    orientation: float = None
    ''' Angle of the main direction

    :type: float
    '''

    thickness_max: float = None
    ''' Maximum thickness in the main direction

    :type: float
    '''

    thickness_min: float = None
    ''' Minimum thickness in the direction perpendicular to the main direction

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_CreaseAngle(LineStyleThicknessModifier,
                                             LineStyleModifier, bpy_struct):
    ''' Line thickness based on the angle between two adjacent faces
    '''

    angle_max: float = None
    ''' Maximum angle to modify thickness

    :type: float
    '''

    angle_min: float = None
    ''' Minimum angle to modify thickness

    :type: float
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    thickness_max: float = None
    ''' Maximum thickness

    :type: float
    '''

    thickness_min: float = None
    ''' Minimum thickness

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_Curvature_3D(LineStyleThicknessModifier,
                                              LineStyleModifier, bpy_struct):
    ''' Line thickness based on the radial curvature of 3D mesh surfaces
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curvature_max: float = None
    ''' Maximum Curvature

    :type: float
    '''

    curvature_min: float = None
    ''' Minimum Curvature

    :type: float
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    thickness_max: float = None
    ''' Maximum thickness

    :type: float
    '''

    thickness_min: float = None
    ''' Minimum thickness

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_DistanceFromCamera(
        LineStyleThicknessModifier, LineStyleModifier, bpy_struct):
    ''' Change line thickness based on the distance from the camera
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    range_max: float = None
    ''' Upper bound of the input range the mapping is applied

    :type: float
    '''

    range_min: float = None
    ''' Lower bound of the input range the mapping is applied

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    value_max: float = None
    ''' Maximum output value of the mapping

    :type: float
    '''

    value_min: float = None
    ''' Minimum output value of the mapping

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_DistanceFromObject(
        LineStyleThicknessModifier, LineStyleModifier, bpy_struct):
    ''' Change line thickness based on the distance from an object
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    range_max: float = None
    ''' Upper bound of the input range the mapping is applied

    :type: float
    '''

    range_min: float = None
    ''' Lower bound of the input range the mapping is applied

    :type: float
    '''

    target: 'Object' = None
    ''' Target object from which the distance is measured

    :type: 'Object'
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    value_max: float = None
    ''' Maximum output value of the mapping

    :type: float
    '''

    value_min: float = None
    ''' Minimum output value of the mapping

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_Material(LineStyleThicknessModifier,
                                          LineStyleModifier, bpy_struct):
    ''' Change line thickness based on a material attribute
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    material_attribute: typing.Union[int, str] = None
    ''' Specify which material attribute is used

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    value_max: float = None
    ''' Maximum output value of the mapping

    :type: float
    '''

    value_min: float = None
    ''' Minimum output value of the mapping

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_Noise(LineStyleThicknessModifier,
                                       LineStyleModifier, bpy_struct):
    ''' Line thickness based on random noise
    '''

    amplitude: float = None
    ''' Amplitude of the noise

    :type: float
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    period: float = None
    ''' Period of the noise

    :type: float
    '''

    seed: int = None
    ''' Seed for the noise generation

    :type: int
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    use_asymmetric: bool = None
    ''' Allow thickness to be assigned asymmetrically

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class LineStyleThicknessModifier_Tangent(LineStyleThicknessModifier,
                                         LineStyleModifier, bpy_struct):
    ''' Thickness based on the direction of the stroke
    '''

    blend: typing.Union[int, str] = None
    ''' Specify how the modifier value is blended into the base value

    :type: typing.Union[int, str]
    '''

    curve: 'CurveMapping' = None
    ''' Curve used for the curve mapping

    :type: 'CurveMapping'
    '''

    expanded: bool = None
    ''' True if the modifier tab is expanded

    :type: bool
    '''

    influence: float = None
    ''' Influence factor by which the modifier changes the property

    :type: float
    '''

    invert: bool = None
    ''' Invert the fade-out direction of the linear mapping

    :type: bool
    '''

    mapping: typing.Union[int, str] = None
    ''' Select the mapping type * LINEAR Linear -- Use linear mapping. * CURVE Curve -- Use curve mapping.

    :type: typing.Union[int, str]
    '''

    name: str = None
    ''' Name of the modifier

    :type: str
    '''

    thickness_max: float = None
    ''' Maximum thickness

    :type: float
    '''

    thickness_min: float = None
    ''' Minimum thickness

    :type: float
    '''

    type: typing.Union[int, str] = None
    ''' Type of the modifier

    :type: typing.Union[int, str]
    '''

    use: bool = None
    ''' Enable or disable this modifier during stroke rendering

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNode(NodeInternal, Node, bpy_struct):
    def tag_need_exec(self):
        ''' Tag the node for compositor update

        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNode(NodeInternal, Node, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNode(NodeInternal, Node, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeFrame(NodeInternal, Node, bpy_struct):
    label_size: int = None
    ''' Font size to use for displaying the label

    :type: int
    '''

    shrink: bool = None
    ''' Shrink the frame to minimal bounding box

    :type: bool
    '''

    text: 'Text' = None
    ''' 

    :type: 'Text'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeGroup(NodeInternal, Node, bpy_struct):
    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeGroupInput(NodeInternal, Node, bpy_struct):
    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeGroupOutput(NodeInternal, Node, bpy_struct):
    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    is_active_output: bool = None
    ''' True if this node is used as the active group output

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeReroute(NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNode(NodeInternal, Node, bpy_struct):
    ''' Material shader node
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNode(NodeInternal, Node, bpy_struct):
    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketBool(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Boolean value socket of a node
    '''

    default_value: bool = None
    ''' Input value used for unconnected socket

    :type: bool
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketCollection(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Collection socket of a node
    '''

    default_value: 'Collection' = None
    ''' Input value used for unconnected socket

    :type: 'Collection'
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketColor(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' RGBA color socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloat(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloatAngle(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloatDistance(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloatFactor(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloatPercentage(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloatTime(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloatTimeAbsolute(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketFloatUnsigned(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketGeometry(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Geometry socket of a node
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketImage(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Image socket of a node
    '''

    default_value: 'Image' = None
    ''' Input value used for unconnected socket

    :type: 'Image'
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInt(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketIntFactor(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketIntPercentage(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketIntUnsigned(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketMaterial(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Material socket of a node
    '''

    default_value: 'Material' = None
    ''' Input value used for unconnected socket

    :type: 'Material'
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketObject(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Object socket of a node
    '''

    default_value: 'Object' = None
    ''' Input value used for unconnected socket

    :type: 'Object'
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketShader(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Shader socket of a node
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketString(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' String socket of a node
    '''

    default_value: str = None
    ''' Input value used for unconnected socket

    :type: str
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketTexture(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Texture socket of a node
    '''

    default_value: 'Texture' = None
    ''' Input value used for unconnected socket

    :type: 'Texture'
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVector(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVectorAcceleration(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVectorDirection(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVectorEuler(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVectorTranslation(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVectorVelocity(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVectorXYZ(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketVirtual(NodeSocketStandard, NodeSocket, bpy_struct):
    ''' Virtual socket of a node
    '''

    links = None
    ''' List of node links from or to this socket. (readonly)'''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceBool(NodeSocketInterfaceStandard, NodeSocketInterface,
                              bpy_struct):
    ''' Boolean value socket of a node
    '''

    default_value: bool = None
    ''' Input value used for unconnected socket

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceCollection(NodeSocketInterfaceStandard,
                                    NodeSocketInterface, bpy_struct):
    ''' Collection socket of a node
    '''

    default_value: 'Collection' = None
    ''' Input value used for unconnected socket

    :type: 'Collection'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceColor(NodeSocketInterfaceStandard,
                               NodeSocketInterface, bpy_struct):
    ''' RGBA color socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloat(NodeSocketInterfaceStandard,
                               NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloatAngle(NodeSocketInterfaceStandard,
                                    NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloatDistance(NodeSocketInterfaceStandard,
                                       NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloatFactor(NodeSocketInterfaceStandard,
                                     NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloatPercentage(NodeSocketInterfaceStandard,
                                         NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloatTime(NodeSocketInterfaceStandard,
                                   NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloatTimeAbsolute(NodeSocketInterfaceStandard,
                                           NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceFloatUnsigned(NodeSocketInterfaceStandard,
                                       NodeSocketInterface, bpy_struct):
    ''' Floating-point number socket of a node
    '''

    default_value: float = None
    ''' Input value used for unconnected socket

    :type: float
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceGeometry(NodeSocketInterfaceStandard,
                                  NodeSocketInterface, bpy_struct):
    ''' Geometry socket of a node
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceImage(NodeSocketInterfaceStandard,
                               NodeSocketInterface, bpy_struct):
    ''' Image socket of a node
    '''

    default_value: 'Image' = None
    ''' Input value used for unconnected socket

    :type: 'Image'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceInt(NodeSocketInterfaceStandard, NodeSocketInterface,
                             bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    max_value: int = None
    ''' Maximum value

    :type: int
    '''

    min_value: int = None
    ''' Minimum value

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceIntFactor(NodeSocketInterfaceStandard,
                                   NodeSocketInterface, bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    max_value: int = None
    ''' Maximum value

    :type: int
    '''

    min_value: int = None
    ''' Minimum value

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceIntPercentage(NodeSocketInterfaceStandard,
                                       NodeSocketInterface, bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    max_value: int = None
    ''' Maximum value

    :type: int
    '''

    min_value: int = None
    ''' Minimum value

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceIntUnsigned(NodeSocketInterfaceStandard,
                                     NodeSocketInterface, bpy_struct):
    ''' Integer number socket of a node
    '''

    default_value: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    max_value: int = None
    ''' Maximum value

    :type: int
    '''

    min_value: int = None
    ''' Minimum value

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceMaterial(NodeSocketInterfaceStandard,
                                  NodeSocketInterface, bpy_struct):
    ''' Material socket of a node
    '''

    default_value: 'Material' = None
    ''' Input value used for unconnected socket

    :type: 'Material'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceObject(NodeSocketInterfaceStandard,
                                NodeSocketInterface, bpy_struct):
    ''' Object socket of a node
    '''

    default_value: 'Object' = None
    ''' Input value used for unconnected socket

    :type: 'Object'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceShader(NodeSocketInterfaceStandard,
                                NodeSocketInterface, bpy_struct):
    ''' Shader socket of a node
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceString(NodeSocketInterfaceStandard,
                                NodeSocketInterface, bpy_struct):
    ''' String socket of a node
    '''

    default_value: str = None
    ''' Input value used for unconnected socket

    :type: str
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceTexture(NodeSocketInterfaceStandard,
                                 NodeSocketInterface, bpy_struct):
    ''' Texture socket of a node
    '''

    default_value: 'Texture' = None
    ''' Input value used for unconnected socket

    :type: 'Texture'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceVector(NodeSocketInterfaceStandard,
                                NodeSocketInterface, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceVectorAcceleration(NodeSocketInterfaceStandard,
                                            NodeSocketInterface, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceVectorDirection(NodeSocketInterfaceStandard,
                                         NodeSocketInterface, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceVectorEuler(NodeSocketInterfaceStandard,
                                     NodeSocketInterface, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceVectorTranslation(NodeSocketInterfaceStandard,
                                           NodeSocketInterface, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceVectorVelocity(NodeSocketInterfaceStandard,
                                        NodeSocketInterface, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class NodeSocketInterfaceVectorXYZ(NodeSocketInterfaceStandard,
                                   NodeSocketInterface, bpy_struct):
    ''' 3D vector socket of a node
    '''

    default_value: typing.List[float] = None
    ''' Input value used for unconnected socket

    :type: typing.List[float]
    '''

    max_value: float = None
    ''' Maximum value

    :type: float
    '''

    min_value: float = None
    ''' Minimum value

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AddSequence(EffectSequence, Sequence, bpy_struct):
    ''' Add Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AdjustmentSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip to perform filter adjustments to layers below
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AlphaOverSequence(EffectSequence, Sequence, bpy_struct):
    ''' Alpha Over Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class AlphaUnderSequence(EffectSequence, Sequence, bpy_struct):
    ''' Alpha Under Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorMixSequence(EffectSequence, Sequence, bpy_struct):
    ''' Color Mix Sequence
    '''

    blend_effect: typing.Union[int, str] = None
    ''' Method for controlling how the strip combines with other strips

    :type: typing.Union[int, str]
    '''

    factor: float = None
    ''' Percentage of how much the strip's colors affect other strips

    :type: float
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ColorSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip creating an image filled with a single color
    '''

    color: typing.List[float] = None
    ''' Effect Strip color

    :type: typing.List[float]
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CrossSequence(EffectSequence, Sequence, bpy_struct):
    ''' Cross Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GammaCrossSequence(EffectSequence, Sequence, bpy_struct):
    ''' Gamma Cross Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GaussianBlurSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip creating a gaussian blur
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    size_x: float = None
    ''' Size of the blur along X axis

    :type: float
    '''

    size_y: float = None
    ''' Size of the blur along Y axis

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GlowSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip creating a glow effect
    '''

    blur_radius: float = None
    ''' Radius of glow effect

    :type: float
    '''

    boost_factor: float = None
    ''' Brightness multiplier

    :type: float
    '''

    clamp: float = None
    ''' Brightness limit of intensity

    :type: float
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    quality: int = None
    ''' Accuracy of the blur effect

    :type: int
    '''

    threshold: float = None
    ''' Minimum intensity to trigger a glow

    :type: float
    '''

    use_only_boost: bool = None
    ''' Show the glow buffer only

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MulticamSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip to perform multicam editing
    '''

    animation_offset_end: int = None
    ''' Animation end offset (trim end)

    :type: int
    '''

    animation_offset_start: int = None
    ''' Animation start offset (trim start)

    :type: int
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    multicam_source: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class MultiplySequence(EffectSequence, Sequence, bpy_struct):
    ''' Multiply Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class OverDropSequence(EffectSequence, Sequence, bpy_struct):
    ''' Over Drop Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SpeedControlSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip to control the speed of other strips
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    speed_control: typing.Union[int, str] = None
    ''' Speed control method * STRETCH Stretch -- Adjust input playback speed, so its duration fits strip length. * MULTIPLY Multiply -- Multiply with the speed factor. * FRAME_NUMBER Frame Number -- Frame number of the input strip. * LENGTH Length -- Percentage of the input strip length.

    :type: typing.Union[int, str]
    '''

    speed_factor: float = None
    ''' Multiply the current speed of the sequence with this number or remap current frame to this frame

    :type: float
    '''

    speed_frame_number: float = None
    ''' Frame number of input strip

    :type: float
    '''

    speed_length: float = None
    ''' Percentage of input strip length

    :type: float
    '''

    use_frame_interpolate: bool = None
    ''' Do crossfade blending between current and next frame

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class SubtractSequence(EffectSequence, Sequence, bpy_struct):
    ''' Subtract Sequence
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip creating text
    '''

    align_x: typing.Union[int, str] = None
    ''' Align the text along the X axis, relative to the text bounds

    :type: typing.Union[int, str]
    '''

    align_y: typing.Union[int, str] = None
    ''' Align the text along the Y axis, relative to the text bounds

    :type: typing.Union[int, str]
    '''

    box_color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    box_margin: float = None
    ''' Box margin as factor of image width

    :type: float
    '''

    color: typing.List[float] = None
    ''' Text color

    :type: typing.List[float]
    '''

    font: 'VectorFont' = None
    ''' Font of the text. Falls back to the UI font by default

    :type: 'VectorFont'
    '''

    font_size: float = None
    ''' Size of the text

    :type: float
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    location: typing.List[float] = None
    ''' Location of the text

    :type: typing.List[float]
    '''

    shadow_color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    text: str = None
    ''' Text that will be displayed

    :type: str
    '''

    use_bold: bool = None
    ''' Display text as bold

    :type: bool
    '''

    use_box: bool = None
    ''' Display colored box behind text

    :type: bool
    '''

    use_italic: bool = None
    ''' Display text as italic

    :type: bool
    '''

    use_shadow: bool = None
    ''' Display shadow behind text

    :type: bool
    '''

    wrap_width: float = None
    ''' Word wrap width as factor, zero disables

    :type: float
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TransformSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip applying affine transformations to other strips
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    interpolation: typing.Union[int, str] = None
    ''' Method to determine how missing pixels are created * NONE None -- No interpolation. * BILINEAR Bilinear -- Bilinear interpolation. * BICUBIC Bicubic -- Bicubic interpolation.

    :type: typing.Union[int, str]
    '''

    rotation_start: float = None
    ''' Degrees to rotate the input

    :type: float
    '''

    scale_start_x: float = None
    ''' Amount to scale the input in the X axis

    :type: float
    '''

    scale_start_y: float = None
    ''' Amount to scale the input in the Y axis

    :type: float
    '''

    translate_start_x: float = None
    ''' Amount to move the input on the X axis

    :type: float
    '''

    translate_start_y: float = None
    ''' Amount to move the input on the Y axis

    :type: float
    '''

    translation_unit: typing.Union[int, str] = None
    ''' Unit of measure to translate the input

    :type: typing.Union[int, str]
    '''

    use_uniform_scale: bool = None
    ''' Scale uniformly, preserving aspect ratio

    :type: bool
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class WipeSequence(EffectSequence, Sequence, bpy_struct):
    ''' Sequence strip creating a wipe transition
    '''

    angle: float = None
    ''' Edge angle

    :type: float
    '''

    blur_width: float = None
    ''' Width of the blur edge, in percentage relative to the image size

    :type: float
    '''

    direction: typing.Union[int, str] = None
    ''' Wipe direction

    :type: typing.Union[int, str]
    '''

    input_1: 'Sequence' = None
    ''' First input for the effect strip

    :type: 'Sequence'
    '''

    input_2: 'Sequence' = None
    ''' Second input for the effect strip

    :type: 'Sequence'
    '''

    input_count: int = None
    ''' 

    :type: int
    '''

    transition_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeAlphaOver(CompositorNode, NodeInternal, Node, bpy_struct):
    premul: float = None
    ''' Mix Factor

    :type: float
    '''

    use_premultiply: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeAntiAliasing(CompositorNode, NodeInternal, Node,
                                 bpy_struct):
    contrast_limit: float = None
    ''' How much to eliminate spurious edges to avoid artifacts (the larger value makes less active; the value 2.0, for example, means discard a detected edge if there is a neighboring edge that has 2.0 times bigger contrast than the current one)

    :type: float
    '''

    corner_rounding: float = None
    ''' How much sharp corners will be rounded

    :type: float
    '''

    threshold: float = None
    ''' Threshold to detect edges (smaller threshold makes more sensitive detection)

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeBilateralblur(CompositorNode, NodeInternal, Node,
                                  bpy_struct):
    iterations: int = None
    ''' 

    :type: int
    '''

    sigma_color: float = None
    ''' 

    :type: float
    '''

    sigma_space: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeBlur(CompositorNode, NodeInternal, Node, bpy_struct):
    aspect_correction: typing.Union[int, str] = None
    ''' Type of aspect correction to use

    :type: typing.Union[int, str]
    '''

    factor: float = None
    ''' 

    :type: float
    '''

    factor_x: float = None
    ''' 

    :type: float
    '''

    factor_y: float = None
    ''' 

    :type: float
    '''

    filter_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    size_x: int = None
    ''' 

    :type: int
    '''

    size_y: int = None
    ''' 

    :type: int
    '''

    use_bokeh: bool = None
    ''' Use circular filter (slower)

    :type: bool
    '''

    use_extended_bounds: bool = None
    ''' Extend bounds of the input image to fully fit blurred image

    :type: bool
    '''

    use_gamma_correction: bool = None
    ''' Apply filter on gamma corrected values

    :type: bool
    '''

    use_relative: bool = None
    ''' Use relative (percent) values to define blur radius

    :type: bool
    '''

    use_variable_size: bool = None
    ''' Support variable blur per pixel when using an image for size input

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeBokehBlur(CompositorNode, NodeInternal, Node, bpy_struct):
    blur_max: float = None
    ''' Blur limit, maximum CoC radius

    :type: float
    '''

    use_extended_bounds: bool = None
    ''' Extend bounds of the input image to fully fit blurred image

    :type: bool
    '''

    use_variable_size: bool = None
    ''' Support variable blur per pixel when using an image for size input

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeBokehImage(CompositorNode, NodeInternal, Node, bpy_struct):
    angle: float = None
    ''' Angle of the bokeh

    :type: float
    '''

    catadioptric: float = None
    ''' Level of catadioptric of the bokeh

    :type: float
    '''

    flaps: int = None
    ''' Number of flaps

    :type: int
    '''

    rounding: float = None
    ''' Level of rounding of the bokeh

    :type: float
    '''

    shift: float = None
    ''' Shift of the lens components

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeBoxMask(CompositorNode, NodeInternal, Node, bpy_struct):
    height: float = None
    ''' Height of the box

    :type: float
    '''

    mask_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    rotation: float = None
    ''' Rotation angle of the box

    :type: float
    '''

    width: float = None
    ''' Width of the box

    :type: float
    '''

    x: float = None
    ''' X position of the middle of the box

    :type: float
    '''

    y: float = None
    ''' Y position of the middle of the box

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeBrightContrast(CompositorNode, NodeInternal, Node,
                                   bpy_struct):
    use_premultiply: bool = None
    ''' Keep output image premultiplied alpha

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeChannelMatte(CompositorNode, NodeInternal, Node,
                                 bpy_struct):
    color_space: typing.Union[int, str] = None
    ''' * RGB RGB -- RGB color space. * HSV HSV -- HSV color space. * YUV YUV -- YUV color space. * YCC YCbCr -- YCbCr color space.

    :type: typing.Union[int, str]
    '''

    limit_channel: typing.Union[int, str] = None
    ''' Limit by this channel's value

    :type: typing.Union[int, str]
    '''

    limit_max: float = None
    ''' Values higher than this setting are 100% opaque

    :type: float
    '''

    limit_method: typing.Union[int, str] = None
    ''' Algorithm to use to limit channel * SINGLE Single -- Limit by single channel. * MAX Max -- Limit by maximum of other channels.

    :type: typing.Union[int, str]
    '''

    limit_min: float = None
    ''' Values lower than this setting are 100% keyed

    :type: float
    '''

    matte_channel: typing.Union[int, str] = None
    ''' Channel used to determine matte

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeChromaMatte(CompositorNode, NodeInternal, Node,
                                bpy_struct):
    gain: float = None
    ''' Alpha falloff

    :type: float
    '''

    lift: float = None
    ''' Alpha lift

    :type: float
    '''

    shadow_adjust: float = None
    ''' Adjusts the brightness of any shadows captured

    :type: float
    '''

    threshold: float = None
    ''' Tolerance below which colors will be considered as exact matches

    :type: float
    '''

    tolerance: float = None
    ''' Tolerance for a color to be considered a keying color

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeColorBalance(CompositorNode, NodeInternal, Node,
                                 bpy_struct):
    correction_method: typing.Union[int, str] = None
    ''' * LIFT_GAMMA_GAIN Lift/Gamma/Gain. * OFFSET_POWER_SLOPE Offset/Power/Slope (ASC-CDL) -- ASC-CDL standard color correction.

    :type: typing.Union[int, str]
    '''

    gain: typing.List[float] = None
    ''' Correction for highlights

    :type: typing.List[float]
    '''

    gamma: typing.List[float] = None
    ''' Correction for midtones

    :type: typing.List[float]
    '''

    lift: typing.List[float] = None
    ''' Correction for shadows

    :type: typing.List[float]
    '''

    offset: typing.List[float] = None
    ''' Correction for entire tonal range

    :type: typing.List[float]
    '''

    offset_basis: float = None
    ''' Support negative color by using this as the RGB basis

    :type: float
    '''

    power: typing.List[float] = None
    ''' Correction for midtones

    :type: typing.List[float]
    '''

    slope: typing.List[float] = None
    ''' Correction for highlights

    :type: typing.List[float]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeColorCorrection(CompositorNode, NodeInternal, Node,
                                    bpy_struct):
    blue: bool = None
    ''' Blue channel active

    :type: bool
    '''

    green: bool = None
    ''' Green channel active

    :type: bool
    '''

    highlights_contrast: float = None
    ''' Highlights contrast

    :type: float
    '''

    highlights_gain: float = None
    ''' Highlights gain

    :type: float
    '''

    highlights_gamma: float = None
    ''' Highlights gamma

    :type: float
    '''

    highlights_lift: float = None
    ''' Highlights lift

    :type: float
    '''

    highlights_saturation: float = None
    ''' Highlights saturation

    :type: float
    '''

    master_contrast: float = None
    ''' Master contrast

    :type: float
    '''

    master_gain: float = None
    ''' Master gain

    :type: float
    '''

    master_gamma: float = None
    ''' Master gamma

    :type: float
    '''

    master_lift: float = None
    ''' Master lift

    :type: float
    '''

    master_saturation: float = None
    ''' Master saturation

    :type: float
    '''

    midtones_contrast: float = None
    ''' Midtones contrast

    :type: float
    '''

    midtones_end: float = None
    ''' End of midtones

    :type: float
    '''

    midtones_gain: float = None
    ''' Midtones gain

    :type: float
    '''

    midtones_gamma: float = None
    ''' Midtones gamma

    :type: float
    '''

    midtones_lift: float = None
    ''' Midtones lift

    :type: float
    '''

    midtones_saturation: float = None
    ''' Midtones saturation

    :type: float
    '''

    midtones_start: float = None
    ''' Start of midtones

    :type: float
    '''

    red: bool = None
    ''' Red channel active

    :type: bool
    '''

    shadows_contrast: float = None
    ''' Shadows contrast

    :type: float
    '''

    shadows_gain: float = None
    ''' Shadows gain

    :type: float
    '''

    shadows_gamma: float = None
    ''' Shadows gamma

    :type: float
    '''

    shadows_lift: float = None
    ''' Shadows lift

    :type: float
    '''

    shadows_saturation: float = None
    ''' Shadows saturation

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeColorMatte(CompositorNode, NodeInternal, Node, bpy_struct):
    color_hue: float = None
    ''' Hue tolerance for colors to be considered a keying color

    :type: float
    '''

    color_saturation: float = None
    ''' Saturation tolerance for the color

    :type: float
    '''

    color_value: float = None
    ''' Value tolerance for the color

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeColorSpill(CompositorNode, NodeInternal, Node, bpy_struct):
    channel: typing.Union[int, str] = None
    ''' * R R -- Red spill suppression. * G G -- Green spill suppression. * B B -- Blue spill suppression.

    :type: typing.Union[int, str]
    '''

    limit_channel: typing.Union[int, str] = None
    ''' * R R -- Limit by red. * G G -- Limit by green. * B B -- Limit by blue.

    :type: typing.Union[int, str]
    '''

    limit_method: typing.Union[int, str] = None
    ''' * SIMPLE Simple -- Simple limit algorithm. * AVERAGE Average -- Average limit algorithm.

    :type: typing.Union[int, str]
    '''

    ratio: float = None
    ''' Scale limit by value

    :type: float
    '''

    unspill_blue: float = None
    ''' Blue spillmap scale

    :type: float
    '''

    unspill_green: float = None
    ''' Green spillmap scale

    :type: float
    '''

    unspill_red: float = None
    ''' Red spillmap scale

    :type: float
    '''

    use_unspill: bool = None
    ''' Compensate all channels (differently) by hand

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCombHSVA(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCombRGBA(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCombYCCA(CompositorNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCombYUVA(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeComposite(CompositorNode, NodeInternal, Node, bpy_struct):
    use_alpha: bool = None
    ''' Colors are treated alpha premultiplied, or colors output straight (alpha gets set to 1)

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCornerPin(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCrop(CompositorNode, NodeInternal, Node, bpy_struct):
    max_x: int = None
    ''' 

    :type: int
    '''

    max_y: int = None
    ''' 

    :type: int
    '''

    min_x: int = None
    ''' 

    :type: int
    '''

    min_y: int = None
    ''' 

    :type: int
    '''

    rel_max_x: float = None
    ''' 

    :type: float
    '''

    rel_max_y: float = None
    ''' 

    :type: float
    '''

    rel_min_x: float = None
    ''' 

    :type: float
    '''

    rel_min_y: float = None
    ''' 

    :type: float
    '''

    relative: bool = None
    ''' Use relative values to crop image

    :type: bool
    '''

    use_crop_size: bool = None
    ''' Whether to crop the size of the input image

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCryptomatte(CompositorNode, NodeInternal, Node,
                                bpy_struct):
    add: typing.List[float] = None
    ''' Add object or material to matte, by picking a color from the Pick output

    :type: typing.List[float]
    '''

    matte_id: str = None
    ''' List of object and material crypto IDs to include in matte

    :type: str
    '''

    remove: typing.List[float] = None
    ''' Remove object or material from matte, by picking a color from the Pick output

    :type: typing.List[float]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCryptomatteV2(CompositorNode, NodeInternal, Node,
                                  bpy_struct):
    add: typing.List[float] = None
    ''' Add object or material to matte, by picking a color from the Pick output

    :type: typing.List[float]
    '''

    entries: typing.Union[typing.Dict[str, 'CryptomatteEntry'], typing.
                          List['CryptomatteEntry'],
                          'bpy_prop_collection'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'CryptomatteEntry'], typing.List['CryptomatteEntry'], 'bpy_prop_collection']
    '''

    frame_duration: int = None
    ''' Number of images of a movie to use

    :type: int
    '''

    frame_offset: int = None
    ''' Offset the number of the frame to use in the animation

    :type: int
    '''

    frame_start: int = None
    ''' Global starting frame of the movie/sequence, assuming first picture has a #1

    :type: int
    '''

    has_layers: bool = None
    ''' True if this image has any named layer

    :type: bool
    '''

    has_views: bool = None
    ''' True if this image has multiple views

    :type: bool
    '''

    image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    layer: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    layer_name: typing.Union[int, str] = None
    ''' What Cryptomatte layer is used * CryptoObject Object -- Use Object layer. * CryptoMaterial Material -- Use Material layer. * CryptoAsset Asset -- Use Asset layer.

    :type: typing.Union[int, str]
    '''

    matte_id: str = None
    ''' List of object and material crypto IDs to include in matte

    :type: str
    '''

    remove: typing.List[float] = None
    ''' Remove object or material from matte, by picking a color from the Pick output

    :type: typing.List[float]
    '''

    scene: 'Scene' = None
    ''' 

    :type: 'Scene'
    '''

    source: typing.Union[int, str] = None
    ''' Where the Cryptomatte passes are loaded from * RENDER Render -- Use Cryptomatte passes from a render. * IMAGE Image -- Use Cryptomatte passes from an image.

    :type: typing.Union[int, str]
    '''

    use_auto_refresh: bool = None
    ''' Always refresh image on frame changes

    :type: bool
    '''

    use_cyclic: bool = None
    ''' Cycle the images in the movie

    :type: bool
    '''

    view: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCurveRGB(CompositorNode, NodeInternal, Node, bpy_struct):
    mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCurveVec(CompositorNode, NodeInternal, Node, bpy_struct):
    mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeCustomGroup(CompositorNode, NodeInternal, Node,
                                bpy_struct):
    ''' Custom Compositor Group Node for Python nodes
    '''

    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDBlur(CompositorNode, NodeInternal, Node, bpy_struct):
    angle: float = None
    ''' 

    :type: float
    '''

    center_x: float = None
    ''' 

    :type: float
    '''

    center_y: float = None
    ''' 

    :type: float
    '''

    distance: float = None
    ''' 

    :type: float
    '''

    iterations: int = None
    ''' 

    :type: int
    '''

    spin: float = None
    ''' 

    :type: float
    '''

    use_wrap: bool = None
    ''' 

    :type: bool
    '''

    zoom: float = None
    ''' 

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDefocus(CompositorNode, NodeInternal, Node, bpy_struct):
    angle: float = None
    ''' Bokeh shape rotation offset

    :type: float
    '''

    blur_max: float = None
    ''' Blur limit, maximum CoC radius

    :type: float
    '''

    bokeh: typing.Union[int, str] = None
    ''' * OCTAGON Octagonal -- 8 sides. * HEPTAGON Heptagonal -- 7 sides. * HEXAGON Hexagonal -- 6 sides. * PENTAGON Pentagonal -- 5 sides. * SQUARE Square -- 4 sides. * TRIANGLE Triangular -- 3 sides. * CIRCLE Circular.

    :type: typing.Union[int, str]
    '''

    f_stop: float = None
    ''' Amount of focal blur, 128 (infinity) is perfect focus, half the value doubles the blur radius

    :type: float
    '''

    scene: 'Scene' = None
    ''' Scene from which to select the active camera (render scene if undefined)

    :type: 'Scene'
    '''

    threshold: float = None
    ''' CoC radius threshold, prevents background bleed on in-focus midground, 0 is disabled

    :type: float
    '''

    use_gamma_correction: bool = None
    ''' Enable gamma correction before and after main process

    :type: bool
    '''

    use_preview: bool = None
    ''' Enable low quality mode, useful for preview

    :type: bool
    '''

    use_zbuffer: bool = None
    ''' Disable when using an image as input instead of actual z-buffer (auto enabled if node not image based, eg. time node)

    :type: bool
    '''

    z_scale: float = None
    ''' Scale the Z input when not using a z-buffer, controls maximum blur designated by the color white or input value 1

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDenoise(CompositorNode, NodeInternal, Node, bpy_struct):
    prefilter: typing.Union[int, str] = None
    ''' Denoising prefilter * NONE None -- No prefiltering, use when guiding passes are noise-free. * FAST Fast -- Denoise image and guiding passes together. Improves quality when guiding passes are noisy using least amount of extra processing time. * ACCURATE Accurate -- Prefilter noisy guiding passes before denoising image. Improves quality when guiding passes are noisy using extra processing time.

    :type: typing.Union[int, str]
    '''

    use_hdr: bool = None
    ''' Process HDR images

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDespeckle(CompositorNode, NodeInternal, Node, bpy_struct):
    threshold: float = None
    ''' Threshold for detecting pixels to despeckle

    :type: float
    '''

    threshold_neighbor: float = None
    ''' Threshold for the number of neighbor pixels that must match

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDiffMatte(CompositorNode, NodeInternal, Node, bpy_struct):
    falloff: float = None
    ''' Color distances below this additional threshold are partially keyed

    :type: float
    '''

    tolerance: float = None
    ''' Color distances below this threshold are keyed

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDilateErode(CompositorNode, NodeInternal, Node,
                                bpy_struct):
    distance: int = None
    ''' Distance to grow/shrink (number of iterations)

    :type: int
    '''

    edge: float = None
    ''' Edge to inset

    :type: float
    '''

    falloff: typing.Union[int, str] = None
    ''' Falloff type the feather * SMOOTH Smooth -- Smooth falloff. * SPHERE Sphere -- Spherical falloff. * ROOT Root -- Root falloff. * INVERSE_SQUARE Inverse Square -- Inverse Square falloff. * SHARP Sharp -- Sharp falloff. * LINEAR Linear -- Linear falloff.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' Growing/shrinking mode

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDisplace(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDistanceMatte(CompositorNode, NodeInternal, Node,
                                  bpy_struct):
    channel: typing.Union[int, str] = None
    ''' * RGB RGB -- RGB color space. * YCC YCC -- YCbCr suppression.

    :type: typing.Union[int, str]
    '''

    falloff: float = None
    ''' Color distances below this additional threshold are partially keyed

    :type: float
    '''

    tolerance: float = None
    ''' Color distances below this threshold are keyed

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeDoubleEdgeMask(CompositorNode, NodeInternal, Node,
                                   bpy_struct):
    edge_mode: typing.Union[int, str] = None
    ''' * BLEED_OUT Bleed Out -- Allow mask pixels to bleed along edges. * KEEP_IN Keep In -- Restrict mask pixels from touching edges.

    :type: typing.Union[int, str]
    '''

    inner_mode: typing.Union[int, str] = None
    ''' * ALL All -- All pixels on inner mask edge are considered during mask calculation. * ADJACENT_ONLY Adjacent Only -- Only inner mask pixels adjacent to outer mask pixels are considered during mask calculation.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeEllipseMask(CompositorNode, NodeInternal, Node,
                                bpy_struct):
    height: float = None
    ''' Height of the ellipse

    :type: float
    '''

    mask_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    rotation: float = None
    ''' Rotation angle of the ellipse

    :type: float
    '''

    width: float = None
    ''' Width of the ellipse

    :type: float
    '''

    x: float = None
    ''' X position of the middle of the ellipse

    :type: float
    '''

    y: float = None
    ''' Y position of the middle of the ellipse

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeExposure(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeFilter(CompositorNode, NodeInternal, Node, bpy_struct):
    filter_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeFlip(CompositorNode, NodeInternal, Node, bpy_struct):
    axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeGamma(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeGlare(CompositorNode, NodeInternal, Node, bpy_struct):
    angle_offset: float = None
    ''' Streak angle offset

    :type: float
    '''

    color_modulation: float = None
    ''' Amount of Color Modulation, modulates colors of streaks and ghosts for a spectral dispersion effect

    :type: float
    '''

    fade: float = None
    ''' Streak fade-out factor

    :type: float
    '''

    glare_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    iterations: int = None
    ''' 

    :type: int
    '''

    mix: float = None
    ''' -1 is original image only, 0 is exact 50/50 mix, 1 is processed image only

    :type: float
    '''

    quality: typing.Union[int, str] = None
    ''' If not set to high quality, the effect will be applied to a low-res copy of the source image

    :type: typing.Union[int, str]
    '''

    size: int = None
    ''' Glow/glare size (not actual size; relative to initial size of bright area of pixels)

    :type: int
    '''

    streaks: int = None
    ''' Total number of streaks

    :type: int
    '''

    threshold: float = None
    ''' The glare filter will only be applied to pixels brighter than this value

    :type: float
    '''

    use_rotate_45: bool = None
    ''' Simple star filter: add 45 degree rotation offset

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeGroup(CompositorNode, NodeInternal, Node, bpy_struct):
    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeHueCorrect(CompositorNode, NodeInternal, Node, bpy_struct):
    mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeHueSat(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeIDMask(CompositorNode, NodeInternal, Node, bpy_struct):
    index: int = None
    ''' Pass index number to convert to alpha

    :type: int
    '''

    use_antialiasing: bool = None
    ''' Apply an anti-aliasing filter to the mask

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeImage(CompositorNode, NodeInternal, Node, bpy_struct):
    frame_duration: int = None
    ''' Number of images of a movie to use

    :type: int
    '''

    frame_offset: int = None
    ''' Offset the number of the frame to use in the animation

    :type: int
    '''

    frame_start: int = None
    ''' Global starting frame of the movie/sequence, assuming first picture has a #1

    :type: int
    '''

    has_layers: bool = None
    ''' True if this image has any named layer

    :type: bool
    '''

    has_views: bool = None
    ''' True if this image has multiple views

    :type: bool
    '''

    image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    layer: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_auto_refresh: bool = None
    ''' Always refresh image on frame changes

    :type: bool
    '''

    use_cyclic: bool = None
    ''' Cycle the images in the movie

    :type: bool
    '''

    use_straight_alpha_output: bool = None
    ''' Put node output buffer to straight alpha instead of premultiplied

    :type: bool
    '''

    view: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeInpaint(CompositorNode, NodeInternal, Node, bpy_struct):
    distance: int = None
    ''' Distance to inpaint (number of iterations)

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeInvert(CompositorNode, NodeInternal, Node, bpy_struct):
    invert_alpha: bool = None
    ''' 

    :type: bool
    '''

    invert_rgb: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeKeying(CompositorNode, NodeInternal, Node, bpy_struct):
    blur_post: int = None
    ''' Matte blur size which applies after clipping and dilate/eroding

    :type: int
    '''

    blur_pre: int = None
    ''' Chroma pre-blur size which applies before running keyer

    :type: int
    '''

    clip_black: float = None
    ''' Value of non-scaled matte pixel which considers as fully background pixel

    :type: float
    '''

    clip_white: float = None
    ''' Value of non-scaled matte pixel which considers as fully foreground pixel

    :type: float
    '''

    despill_balance: float = None
    ''' Balance between non-key colors used to detect amount of key color to be removed

    :type: float
    '''

    despill_factor: float = None
    ''' Factor of despilling screen color from image

    :type: float
    '''

    dilate_distance: int = None
    ''' Matte dilate/erode side

    :type: int
    '''

    edge_kernel_radius: int = None
    ''' Radius of kernel used to detect whether pixel belongs to edge

    :type: int
    '''

    edge_kernel_tolerance: float = None
    ''' Tolerance to pixels inside kernel which are treating as belonging to the same plane

    :type: float
    '''

    feather_distance: int = None
    ''' Distance to grow/shrink the feather

    :type: int
    '''

    feather_falloff: typing.Union[int, str] = None
    ''' Falloff type the feather * SMOOTH Smooth -- Smooth falloff. * SPHERE Sphere -- Spherical falloff. * ROOT Root -- Root falloff. * INVERSE_SQUARE Inverse Square -- Inverse Square falloff. * SHARP Sharp -- Sharp falloff. * LINEAR Linear -- Linear falloff.

    :type: typing.Union[int, str]
    '''

    screen_balance: float = None
    ''' Balance between two non-primary channels primary channel is comparing against

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeKeyingScreen(CompositorNode, NodeInternal, Node,
                                 bpy_struct):
    clip: 'MovieClip' = None
    ''' 

    :type: 'MovieClip'
    '''

    tracking_object: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeLensdist(CompositorNode, NodeInternal, Node, bpy_struct):
    use_fit: bool = None
    ''' For positive distortion factor only: scale image such that black areas are not visible

    :type: bool
    '''

    use_jitter: bool = None
    ''' Enable/disable jittering (faster, but also noisier)

    :type: bool
    '''

    use_projector: bool = None
    ''' Enable/disable projector mode (the effect is applied in horizontal direction only)

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeLevels(CompositorNode, NodeInternal, Node, bpy_struct):
    channel: typing.Union[int, str] = None
    ''' * COMBINED_RGB Combined -- Combined RGB. * RED Red -- Red Channel. * GREEN Green -- Green Channel. * BLUE Blue -- Blue Channel. * LUMINANCE Luminance -- Luminance Channel.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeLumaMatte(CompositorNode, NodeInternal, Node, bpy_struct):
    limit_max: float = None
    ''' Values higher than this setting are 100% opaque

    :type: float
    '''

    limit_min: float = None
    ''' Values lower than this setting are 100% keyed

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMapRange(CompositorNode, NodeInternal, Node, bpy_struct):
    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMapUV(CompositorNode, NodeInternal, Node, bpy_struct):
    alpha: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMapValue(CompositorNode, NodeInternal, Node, bpy_struct):
    max: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    min: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    offset: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    size: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    use_max: bool = None
    ''' 

    :type: bool
    '''

    use_min: bool = None
    ''' 

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMask(CompositorNode, NodeInternal, Node, bpy_struct):
    mask: 'Mask' = None
    ''' 

    :type: 'Mask'
    '''

    motion_blur_samples: int = None
    ''' Number of motion blur samples

    :type: int
    '''

    motion_blur_shutter: float = None
    ''' Exposure for motion blur as a factor of FPS

    :type: float
    '''

    size_source: typing.Union[int, str] = None
    ''' Where to get the mask size from for aspect/size information * SCENE Scene Size. * FIXED Fixed -- Use pixel size for the buffer. * FIXED_SCENE Fixed/Scene -- Pixel size scaled by scene percentage.

    :type: typing.Union[int, str]
    '''

    size_x: int = None
    ''' 

    :type: int
    '''

    size_y: int = None
    ''' 

    :type: int
    '''

    use_feather: bool = None
    ''' Use feather information from the mask

    :type: bool
    '''

    use_motion_blur: bool = None
    ''' Use multi-sampled motion blur of the mask

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMath(CompositorNode, NodeInternal, Node, bpy_struct):
    operation: typing.Union[int, str] = None
    ''' * ADD Add -- A + B. * SUBTRACT Subtract -- A - B. * MULTIPLY Multiply -- A \* B. * DIVIDE Divide -- A / B. * MULTIPLY_ADD Multiply Add -- A \* B + C. * POWER Power -- A power B. * LOGARITHM Logarithm -- Logarithm A base B. * SQRT Square Root -- Square root of A. * INVERSE_SQRT Inverse Square Root -- 1 / Square root of A. * ABSOLUTE Absolute -- Magnitude of A. * EXPONENT Exponent -- exp(A). * MINIMUM Minimum -- The minimum from A and B. * MAXIMUM Maximum -- The maximum from A and B. * LESS_THAN Less Than -- 1 if A < B else 0. * GREATER_THAN Greater Than -- 1 if A > B else 0. * SIGN Sign -- Returns the sign of A. * COMPARE Compare -- 1 if (A == B) within tolerance C else 0. * SMOOTH_MIN Smooth Minimum -- The minimum from A and B with smoothing C. * SMOOTH_MAX Smooth Maximum -- The maximum from A and B with smoothing C. * ROUND Round -- Round A to the nearest integer. Round upward if the fraction part is 0.5. * FLOOR Floor -- The largest integer smaller than or equal A. * CEIL Ceil -- The smallest integer greater than or equal A. * TRUNC Truncate -- The integer part of A, removing fractional digits. * FRACT Fraction -- The fraction part of A. * MODULO Modulo -- Modulo using fmod(A,B). * WRAP Wrap -- Wrap value to range, wrap(A,B). * SNAP Snap -- Snap to increment, snap(A,B). * PINGPONG Ping-Pong -- Wraps a value and reverses every other cycle (A,B). * SINE Sine -- sin(A). * COSINE Cosine -- cos(A). * TANGENT Tangent -- tan(A). * ARCSINE Arcsine -- arcsin(A). * ARCCOSINE Arccosine -- arccos(A). * ARCTANGENT Arctangent -- arctan(A). * ARCTAN2 Arctan2 -- The signed angle arctan(A / B). * SINH Hyperbolic Sine -- sinh(A). * COSH Hyperbolic Cosine -- cosh(A). * TANH Hyperbolic Tangent -- tanh(A). * RADIANS To Radians -- Convert from degrees to radians. * DEGREES To Degrees -- Convert from radians to degrees.

    :type: typing.Union[int, str]
    '''

    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMixRGB(CompositorNode, NodeInternal, Node, bpy_struct):
    blend_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_alpha: bool = None
    ''' Include alpha of second input in this operation

    :type: bool
    '''

    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMovieClip(CompositorNode, NodeInternal, Node, bpy_struct):
    clip: 'MovieClip' = None
    ''' 

    :type: 'MovieClip'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeMovieDistortion(CompositorNode, NodeInternal, Node,
                                    bpy_struct):
    clip: 'MovieClip' = None
    ''' 

    :type: 'MovieClip'
    '''

    distortion_type: typing.Union[int, str] = None
    ''' Distortion to use to filter image

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeNormal(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeNormalize(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeOutputFile(CompositorNode, NodeInternal, Node, bpy_struct):
    active_input_index: int = None
    ''' Active input index in details view list

    :type: int
    '''

    base_path: str = None
    ''' Base output path for the image

    :type: str
    '''

    file_slots: typing.Union[
        typing.Dict[str, 'NodeOutputFileSlotFile'], typing.
        List['NodeOutputFileSlotFile'], 'bpy_prop_collection',
        'CompositorNodeOutputFileFileSlots'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'NodeOutputFileSlotFile'], typing.List['NodeOutputFileSlotFile'], 'bpy_prop_collection', 'CompositorNodeOutputFileFileSlots']
    '''

    format: 'ImageFormatSettings' = None
    ''' 

    :type: 'ImageFormatSettings'
    '''

    layer_slots: typing.Union[
        typing.Dict[str, 'NodeOutputFileSlotLayer'], typing.
        List['NodeOutputFileSlotLayer'], 'bpy_prop_collection',
        'CompositorNodeOutputFileLayerSlots'] = None
    ''' 

    :type: typing.Union[typing.Dict[str, 'NodeOutputFileSlotLayer'], typing.List['NodeOutputFileSlotLayer'], 'bpy_prop_collection', 'CompositorNodeOutputFileLayerSlots']
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodePixelate(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodePlaneTrackDeform(CompositorNode, NodeInternal, Node,
                                     bpy_struct):
    clip: 'MovieClip' = None
    ''' 

    :type: 'MovieClip'
    '''

    motion_blur_samples: int = None
    ''' Number of motion blur samples

    :type: int
    '''

    motion_blur_shutter: float = None
    ''' Exposure for motion blur as a factor of FPS

    :type: float
    '''

    plane_track_name: str = None
    ''' 

    :type: str
    '''

    tracking_object: str = None
    ''' 

    :type: str
    '''

    use_motion_blur: bool = None
    ''' Use multi-sampled motion blur of the mask

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodePosterize(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodePremulKey(CompositorNode, NodeInternal, Node, bpy_struct):
    mapping: typing.Union[int, str] = None
    ''' Conversion between premultiplied alpha and key alpha * STRAIGHT_TO_PREMUL To Premultiplied -- Convert straight to premultiplied. * PREMUL_TO_STRAIGHT To Straight -- Convert premultiplied to straight.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeRGB(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeRGBToBW(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeRLayers(CompositorNode, NodeInternal, Node, bpy_struct):
    layer: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    scene: 'Scene' = None
    ''' 

    :type: 'Scene'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeRotate(CompositorNode, NodeInternal, Node, bpy_struct):
    filter_type: typing.Union[int, str] = None
    ''' Method to use to filter rotation

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeScale(CompositorNode, NodeInternal, Node, bpy_struct):
    frame_method: typing.Union[int, str] = None
    ''' How the image fits in the camera frame

    :type: typing.Union[int, str]
    '''

    offset_x: float = None
    ''' Offset image horizontally (factor of image size)

    :type: float
    '''

    offset_y: float = None
    ''' Offset image vertically (factor of image size)

    :type: float
    '''

    space: typing.Union[int, str] = None
    ''' Coordinate space to scale relative to

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSepHSVA(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSepRGBA(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSepYCCA(CompositorNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSepYUVA(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSetAlpha(CompositorNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' * APPLY Apply Mask -- Multiply the input image's RGBA channels by the alpha input value. * REPLACE_ALPHA Replace Alpha -- Replace the input image's alpha channels by the alpha input value.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSplitViewer(CompositorNode, NodeInternal, Node,
                                bpy_struct):
    axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    factor: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeStabilize(CompositorNode, NodeInternal, Node, bpy_struct):
    clip: 'MovieClip' = None
    ''' 

    :type: 'MovieClip'
    '''

    filter_type: typing.Union[int, str] = None
    ''' Method to use to filter stabilization

    :type: typing.Union[int, str]
    '''

    invert: bool = None
    ''' Invert stabilization to re-introduce motion to the frame

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSunBeams(CompositorNode, NodeInternal, Node, bpy_struct):
    ray_length: float = None
    ''' Length of rays as a factor of the image size

    :type: float
    '''

    source: typing.List[float] = None
    ''' Source point of rays as a factor of the image width and height

    :type: typing.List[float]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSwitch(CompositorNode, NodeInternal, Node, bpy_struct):
    check: bool = None
    ''' Off: first socket, On: second socket

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeSwitchView(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeTexture(CompositorNode, NodeInternal, Node, bpy_struct):
    node_output: int = None
    ''' For node-based textures, which output node to use

    :type: int
    '''

    texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeTime(CompositorNode, NodeInternal, Node, bpy_struct):
    curve: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    frame_end: int = None
    ''' 

    :type: int
    '''

    frame_start: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeTonemap(CompositorNode, NodeInternal, Node, bpy_struct):
    adaptation: float = None
    ''' If 0, global; if 1, based on pixel intensity

    :type: float
    '''

    contrast: float = None
    ''' Set to 0 to use estimate from input image

    :type: float
    '''

    correction: float = None
    ''' If 0, same for all channels; if 1, each independent

    :type: float
    '''

    gamma: float = None
    ''' If not used, set to 1

    :type: float
    '''

    intensity: float = None
    ''' If less than zero, darkens image; otherwise, makes it brighter

    :type: float
    '''

    key: float = None
    ''' The value the average luminance is mapped to

    :type: float
    '''

    offset: float = None
    ''' Normally always 1, but can be used as an extra control to alter the brightness curve

    :type: float
    '''

    tonemap_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeTrackPos(CompositorNode, NodeInternal, Node, bpy_struct):
    clip: 'MovieClip' = None
    ''' 

    :type: 'MovieClip'
    '''

    frame_relative: int = None
    ''' Frame to be used for relative position

    :type: int
    '''

    position: typing.Union[int, str] = None
    ''' Which marker position to use for output * ABSOLUTE Absolute -- Output absolute position of a marker. * RELATIVE_START Relative Start -- Output position of a marker relative to first marker of a track. * RELATIVE_FRAME Relative Frame -- Output position of a marker relative to marker at given frame number. * ABSOLUTE_FRAME Absolute Frame -- Output absolute position of a marker at given frame number.

    :type: typing.Union[int, str]
    '''

    track_name: str = None
    ''' 

    :type: str
    '''

    tracking_object: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeTransform(CompositorNode, NodeInternal, Node, bpy_struct):
    filter_type: typing.Union[int, str] = None
    ''' Method to use to filter transform

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeTranslate(CompositorNode, NodeInternal, Node, bpy_struct):
    use_relative: bool = None
    ''' Use relative (fraction of input image size) values to define translation

    :type: bool
    '''

    wrap_axis: typing.Union[int, str] = None
    ''' Wrap image on a specific axis * NONE None -- No wrapping on X and Y. * XAXIS X Axis -- Wrap all pixels on the X axis. * YAXIS Y Axis -- Wrap all pixels on the Y axis. * BOTH Both Axes -- Wrap all pixels on both axes.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeValToRGB(CompositorNode, NodeInternal, Node, bpy_struct):
    color_ramp: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeValue(CompositorNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeVecBlur(CompositorNode, NodeInternal, Node, bpy_struct):
    factor: float = None
    ''' Scaling factor for motion vectors (actually, 'shutter speed', in frames)

    :type: float
    '''

    samples: int = None
    ''' 

    :type: int
    '''

    speed_max: int = None
    ''' Maximum speed, or zero for none

    :type: int
    '''

    speed_min: int = None
    ''' Minimum speed for a pixel to be blurred (used to separate background from foreground)

    :type: int
    '''

    use_curved: bool = None
    ''' Interpolate between frames in a Bezier curve, rather than linearly

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeViewer(CompositorNode, NodeInternal, Node, bpy_struct):
    center_x: float = None
    ''' 

    :type: float
    '''

    center_y: float = None
    ''' 

    :type: float
    '''

    tile_order: typing.Union[int, str] = None
    ''' Tile order * CENTEROUT Center -- Expand from center. * RANDOM Random -- Random tiles. * BOTTOMUP Bottom Up -- Expand from bottom. * RULE_OF_THIRDS Rule of Thirds -- Expand from 9 places.

    :type: typing.Union[int, str]
    '''

    use_alpha: bool = None
    ''' Colors are treated alpha premultiplied, or colors output straight (alpha gets set to 1)

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class CompositorNodeZcombine(CompositorNode, NodeInternal, Node, bpy_struct):
    use_alpha: bool = None
    ''' Take alpha channel into account when doing the Z operation

    :type: bool
    '''

    use_antialias_z: bool = None
    ''' Anti-alias the z-buffer to try to avoid artifacts, mostly useful for Blender renders

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def update(self):
        ''' 

        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeAlignEulerToVector(FunctionNode, NodeInternal, Node,
                                     bpy_struct):
    axis: typing.Union[int, str] = None
    ''' Axis to align to the vector * X X -- Align the X axis with the vector. * Y Y -- Align the Y axis with the vector. * Z Z -- Align the Z axis with the vector.

    :type: typing.Union[int, str]
    '''

    pivot_axis: typing.Union[int, str] = None
    ''' Axis to rotate around * AUTO Auto -- Automatically detect the best rotation axis to rotate towards the vector. * X X -- Rotate around the local X axis. * Y Y -- Rotate around the local Y axis. * Z Z -- Rotate around the local Z axis.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeBooleanMath(FunctionNode, NodeInternal, Node, bpy_struct):
    operation: typing.Union[int, str] = None
    ''' * AND And -- Outputs true only when both inputs are true. * OR Or -- Outputs or when at least one of the inputs is true. * NOT Not -- Outputs the opposite of the input.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeCompare(FunctionNode, NodeInternal, Node, bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' * ELEMENT Element-Wise -- Compare each element of the input vectors. * LENGTH Length -- Compare the length of the input vectors. * AVERAGE Average -- Compare the average of the input vectors elements. * DOT_PRODUCT Dot Product -- Compare the dot products of the input vectors. * DIRECTION Direction -- Compare the direction of the input vectors.

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' * LESS_THAN Less Than -- True when the first input is smaller than second input. * LESS_EQUAL Less Than or Equal -- True when the first input is smaller than the second input or equal. * GREATER_THAN Greater Than -- True when the first input is greater than the second input. * GREATER_EQUAL Greater Than or Equal -- True when the first input is greater than the second input or equal. * EQUAL Equal -- True when both inputs are approximately equal. * NOT_EQUAL Not Equal -- True when both inputs are not approximately equal. * BRIGHTER Brighter -- True when the first input is brighter. * DARKER Darker -- True when the first input is darker.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeFloatToInt(FunctionNode, NodeInternal, Node, bpy_struct):
    rounding_mode: typing.Union[int, str] = None
    ''' Method used to convert the float to an integer * ROUND Round -- Round the float up or down to the nearest integer. * FLOOR Floor -- Round the float down to the next smallest integer. * CEILING Ceiling -- Round the float up to the next largest integer. * TRUNCATE Truncate -- Round the float to the closest integer in the direction of zero (floor if positive; ceiling if negative).

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeInputBool(FunctionNode, NodeInternal, Node, bpy_struct):
    boolean: bool = None
    ''' Input value used for unconnected socket

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeInputColor(FunctionNode, NodeInternal, Node, bpy_struct):
    color: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeInputInt(FunctionNode, NodeInternal, Node, bpy_struct):
    integer: int = None
    ''' Input value used for unconnected socket

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeInputSpecialCharacters(FunctionNode, NodeInternal, Node,
                                         bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeInputString(FunctionNode, NodeInternal, Node, bpy_struct):
    string: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeInputVector(FunctionNode, NodeInternal, Node, bpy_struct):
    vector: typing.List[float] = None
    ''' 

    :type: typing.List[float]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeLegacyRandomFloat(FunctionNode, NodeInternal, Node,
                                    bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeRandomValue(FunctionNode, NodeInternal, Node, bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' Type of data stored in attribute * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeReplaceString(FunctionNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeRotateEuler(FunctionNode, NodeInternal, Node, bpy_struct):
    space: typing.Union[int, str] = None
    ''' Base orientation for rotation * OBJECT Object -- Rotate the input rotation in the local space of the object. * LOCAL Local -- Rotate the input rotation in its local space.

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' Method used to describe the rotation * AXIS_ANGLE Axis Angle -- Rotate around an axis by an angle. * EULER Euler -- Rotate around the X, Y, and Z axes.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeSliceString(FunctionNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeStringLength(FunctionNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class FunctionNodeValueToString(FunctionNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeAttributeDomainSize(GeometryNode, NodeInternal, Node,
                                      bpy_struct):
    component: typing.Union[int, str] = None
    ''' * MESH Mesh -- Mesh component containing point, corner, edge and face data. * POINTCLOUD Point Cloud -- Point cloud component containing only point data. * CURVE Curve -- Curve component containing spline and control point data. * INSTANCES Instances -- Instances of objects or collections.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeAttributeRemove(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeAttributeStatistic(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' The data type the attribute is converted to before calculating the results * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    domain: typing.Union[int, str] = None
    ''' Which domain to read the data from * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeAttributeTransfer(GeometryNode, NodeInternal, Node,
                                    bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' The type for the source and result data * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    domain: typing.Union[int, str] = None
    ''' The domain to use on the target geometry * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    mapping: typing.Union[int, str] = None
    ''' Mapping between geometries * NEAREST_FACE_INTERPOLATED Nearest Face Interpolated -- Transfer the attribute from the nearest face on a surface (loose points and edges are ignored). * NEAREST Nearest -- Transfer the element from the nearest element (using face and edge centers for the distance computation). * INDEX Index -- Transfer the data from the element with the corresponding index in the target geometry.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeBoundBox(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCaptureAttribute(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' Type of data stored in attribute * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    domain: typing.Union[int, str] = None
    ''' Which domain to store the data in * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCollectionInfo(GeometryNode, NodeInternal, Node, bpy_struct):
    transform_space: typing.Union[int, str] = None
    ''' The transformation of the geometry output * ORIGINAL Original -- Output the geometry relative to the collection offset. * RELATIVE Relative -- Bring the input collection geometry into the modified object, maintaining the relative position between the objects in the scene.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeConvexHull(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveEndpointSelection(GeometryNode, NodeInternal, Node,
                                         bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveHandleTypeSelection(GeometryNode, NodeInternal, Node,
                                           bpy_struct):
    handle_type: typing.Union[int, str] = None
    ''' * FREE Free -- The handle can be moved anywhere, and doesn't influence the point's other handle. * AUTO Auto -- The location is automatically calculated to be smooth. * VECTOR Vector -- The location is calculated to point to the next/previous control point. * ALIGN Align -- The location is constrained to point in the opposite direction as the other handle.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Whether to check the type of left and right handles * LEFT Left -- Use the left handles. * RIGHT Right -- Use the right handles.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveLength(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurvePrimitiveBezierSegment(GeometryNode, NodeInternal, Node,
                                              bpy_struct):
    mode: typing.Union[int, str] = None
    ''' Method used to determine control handles * POSITION Position -- The start and end handles are fixed positions. * OFFSET Offset -- The start and end handles are offsets from the spline's control points.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurvePrimitiveCircle(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    mode: typing.Union[int, str] = None
    ''' Method used to determine radius and placement * POINTS Points -- Define the radius and location with three points. * RADIUS Radius -- Define the radius with a float.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurvePrimitiveLine(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    mode: typing.Union[int, str] = None
    ''' Method used to determine radius and placement * POINTS Points -- Define the start and end points of the line. * DIRECTION Direction -- Define a line with a start point, direction and length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurvePrimitiveQuadrilateral(GeometryNode, NodeInternal, Node,
                                              bpy_struct):
    mode: typing.Union[int, str] = None
    ''' * RECTANGLE Rectangle -- Create a rectangle. * PARALLELOGRAM Parallelogram -- Create a parallelogram. * TRAPEZOID Trapezoid -- Create a trapezoid. * KITE Kite -- Create a Kite / Dart. * POINTS Points -- Create a quadrilateral from four points.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveQuadraticBezier(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveSetHandles(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    handle_type: typing.Union[int, str] = None
    ''' * FREE Free -- The handle can be moved anywhere, and doesn't influence the point's other handle. * AUTO Auto -- The location is automatically calculated to be smooth. * VECTOR Vector -- The location is calculated to point to the next/previous control point. * ALIGN Align -- The location is constrained to point in the opposite direction as the other handle.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Whether to update left and right handles * LEFT Left -- Use the left handles. * RIGHT Right -- Use the right handles.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveSpiral(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveSplineType(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    spline_type: typing.Union[int, str] = None
    ''' * BEZIER Bezier -- Set the splines to Bezier. * NURBS NURBS -- Set the splines to NURBS. * POLY Poly -- Set the splines to Poly.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveStar(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveToMesh(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCurveToPoints(GeometryNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' How to generate points from the input curve * EVALUATED Evaluated -- Create points from the curve's evaluated points, based on the resolution attribute for NURBS and Bezier splines. * COUNT Count -- Sample each spline by evenly distributing the specified number of points. * LENGTH Length -- Sample each spline by splitting it into segments with the specified length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeCustomGroup(GeometryNode, NodeInternal, Node, bpy_struct):
    ''' Custom Geometry Group Node for Python nodes
    '''

    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeDeleteGeometry(GeometryNode, NodeInternal, Node, bpy_struct):
    domain: typing.Union[int, str] = None
    ''' Which domain to delete in * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' Which parts of the mesh component to delete

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeDistributePointsOnFaces(GeometryNode, NodeInternal, Node,
                                          bpy_struct):
    distribute_method: typing.Union[int, str] = None
    ''' Method to use for scattering points * RANDOM Random -- Distribute points randomly on the surface. * POISSON Poisson Disk -- Distribute the points randomly on the surface while taking a minimum distance between points into account.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeDualMesh(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeFillCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeFilletCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' How to choose number of vertices on fillet * BEZIER Bezier -- Align Bezier handles to create circular arcs at each control point. * POLY Poly -- Add control points along a circular arc (handle type is vector if Bezier Spline).

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeGeometryToInstance(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeGroup(GeometryNode, NodeInternal, Node, bpy_struct):
    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeImageTexture(GeometryNode, NodeInternal, Node, bpy_struct):
    extension: typing.Union[int, str] = None
    ''' How the image is extrapolated past its original bounds * REPEAT Repeat -- Cause the image to repeat horizontally and vertically. * EXTEND Extend -- Extend by repeating edge pixels of the image. * CLIP Clip -- Clip to image size and set exterior pixels as transparent.

    :type: typing.Union[int, str]
    '''

    interpolation: typing.Union[int, str] = None
    ''' Method for smoothing values between pixels * Linear Linear -- Linear interpolation. * Closest Closest -- No interpolation (sample closest texel). * Cubic Cubic -- Cubic interpolation.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputCurveHandlePositions(GeometryNode, NodeInternal, Node,
                                            bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputCurveTilt(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputID(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputIndex(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMaterial(GeometryNode, NodeInternal, Node, bpy_struct):
    material: 'Material' = None
    ''' 

    :type: 'Material'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMaterialIndex(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMeshEdgeNeighbors(GeometryNode, NodeInternal, Node,
                                         bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMeshEdgeVertices(GeometryNode, NodeInternal, Node,
                                        bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMeshFaceArea(GeometryNode, NodeInternal, Node,
                                    bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMeshFaceNeighbors(GeometryNode, NodeInternal, Node,
                                         bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMeshIsland(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputMeshVertexNeighbors(GeometryNode, NodeInternal, Node,
                                           bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputNormal(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputPosition(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputRadius(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputSceneTime(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputShadeSmooth(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputSplineCyclic(GeometryNode, NodeInternal, Node,
                                    bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputSplineResolution(GeometryNode, NodeInternal, Node,
                                        bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInputTangent(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInstanceOnPoints(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeInstancesToPoints(GeometryNode, NodeInternal, Node,
                                    bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeIsViewport(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeJoinGeometry(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAlignRotationToVector(GeometryNode, NodeInternal, Node,
                                              bpy_struct):
    axis: typing.Union[int, str] = None
    ''' Axis to align to the vector * X X -- Align the X axis with the vector. * Y Y -- Align the Y axis with the vector. * Z Z -- Align the Z axis with the vector.

    :type: typing.Union[int, str]
    '''

    input_type_factor: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_vector: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    pivot_axis: typing.Union[int, str] = None
    ''' Axis to rotate around * AUTO Auto -- Automatically detect the best rotation axis to rotate towards the vector. * X X -- Rotate around the local X axis. * Y Y -- Rotate around the local Y axis. * Z Z -- Rotate around the local Z axis.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeClamp(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' * MINMAX Min Max -- Constrain value between min and max. * RANGE Range -- Constrain value between min and max, swapping arguments when min > max.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeColorRamp(GeometryNode, NodeInternal, Node,
                                           bpy_struct):
    color_ramp: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeCombineXYZ(GeometryNode, NodeInternal, Node,
                                            bpy_struct):
    input_type_x: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_y: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_z: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeCompare(GeometryNode, NodeInternal, Node,
                                         bpy_struct):
    input_type_a: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_b: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' * LESS_THAN Less Than -- True when the first input is smaller than second input. * LESS_EQUAL Less Than or Equal -- True when the first input is smaller than the second input or equal. * GREATER_THAN Greater Than -- True when the first input is greater than the second input. * GREATER_EQUAL Greater Than or Equal -- True when the first input is greater than the second input or equal. * EQUAL Equal -- True when both inputs are approximately equal. * NOT_EQUAL Not Equal -- True when both inputs are not approximately equal.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeConvert(GeometryNode, NodeInternal, Node,
                                         bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' The data type to save the result attribute with * AUTO Auto. * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    domain: typing.Union[int, str] = None
    ''' The geometry domain to save the result attribute in * AUTO Auto. * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeCurveMap(GeometryNode, NodeInternal, Node,
                                          bpy_struct):
    curve_rgb: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    curve_vec: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    data_type: typing.Union[int, str] = None
    ''' * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeFill(GeometryNode, NodeInternal, Node,
                                      bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' Type of data stored in attribute * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    domain: typing.Union[int, str] = None
    ''' * AUTO Auto. * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeMapRange(GeometryNode, NodeInternal, Node,
                                          bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    interpolation_type: typing.Union[int, str] = None
    ''' * LINEAR Linear -- Linear interpolation between From Min and From Max values. * STEPPED Stepped Linear -- Stepped linear interpolation between From Min and From Max values. * SMOOTHSTEP Smooth Step -- Smooth Hermite edge interpolation between From Min and From Max values. * SMOOTHERSTEP Smoother Step -- Smoother Hermite edge interpolation between From Min and From Max values.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeMath(GeometryNode, NodeInternal, Node,
                                      bpy_struct):
    input_type_a: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_b: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_c: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' * ADD Add -- A + B. * SUBTRACT Subtract -- A - B. * MULTIPLY Multiply -- A \* B. * DIVIDE Divide -- A / B. * MULTIPLY_ADD Multiply Add -- A \* B + C. * POWER Power -- A power B. * LOGARITHM Logarithm -- Logarithm A base B. * SQRT Square Root -- Square root of A. * INVERSE_SQRT Inverse Square Root -- 1 / Square root of A. * ABSOLUTE Absolute -- Magnitude of A. * EXPONENT Exponent -- exp(A). * MINIMUM Minimum -- The minimum from A and B. * MAXIMUM Maximum -- The maximum from A and B. * LESS_THAN Less Than -- 1 if A < B else 0. * GREATER_THAN Greater Than -- 1 if A > B else 0. * SIGN Sign -- Returns the sign of A. * COMPARE Compare -- 1 if (A == B) within tolerance C else 0. * SMOOTH_MIN Smooth Minimum -- The minimum from A and B with smoothing C. * SMOOTH_MAX Smooth Maximum -- The maximum from A and B with smoothing C. * ROUND Round -- Round A to the nearest integer. Round upward if the fraction part is 0.5. * FLOOR Floor -- The largest integer smaller than or equal A. * CEIL Ceil -- The smallest integer greater than or equal A. * TRUNC Truncate -- The integer part of A, removing fractional digits. * FRACT Fraction -- The fraction part of A. * MODULO Modulo -- Modulo using fmod(A,B). * WRAP Wrap -- Wrap value to range, wrap(A,B). * SNAP Snap -- Snap to increment, snap(A,B). * PINGPONG Ping-Pong -- Wraps a value and reverses every other cycle (A,B). * SINE Sine -- sin(A). * COSINE Cosine -- cos(A). * TANGENT Tangent -- tan(A). * ARCSINE Arcsine -- arcsin(A). * ARCCOSINE Arccosine -- arccos(A). * ARCTANGENT Arctangent -- arctan(A). * ARCTAN2 Arctan2 -- The signed angle arctan(A / B). * SINH Hyperbolic Sine -- sinh(A). * COSH Hyperbolic Cosine -- cosh(A). * TANH Hyperbolic Tangent -- tanh(A). * RADIANS To Radians -- Convert from degrees to radians. * DEGREES To Degrees -- Convert from radians to degrees.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeMix(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    blend_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_a: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_b: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_factor: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeProximity(GeometryNode, NodeInternal, Node,
                                           bpy_struct):
    target_geometry_element: typing.Union[int, str] = None
    ''' Element of the target geometry to calculate the distance from * POINTS Points -- Calculate proximity to the target's points (usually faster than the other two modes). * EDGES Edges -- Calculate proximity to the target's edges. * FACES Faces -- Calculate proximity to the target's faces.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeRandomize(GeometryNode, NodeInternal, Node,
                                           bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' Type of data stored in attribute * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' * REPLACE_CREATE Replace/Create -- Replace the value and data type of an existing attribute, or create a new one. * ADD Add -- Add the random values to the existing attribute values. * SUBTRACT Subtract -- Subtract random values from the existing attribute values. * MULTIPLY Multiply -- Multiply the existing attribute values with the random values.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeSampleTexture(GeometryNode, NodeInternal,
                                               Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeSeparateXYZ(GeometryNode, NodeInternal, Node,
                                             bpy_struct):
    input_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeTransfer(GeometryNode, NodeInternal, Node,
                                          bpy_struct):
    domain: typing.Union[int, str] = None
    ''' The geometry domain to save the result attribute in * AUTO Auto. * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CORNER Face Corner -- Attribute on mesh face corner. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    mapping: typing.Union[int, str] = None
    ''' Mapping between geometries * NEAREST_FACE_INTERPOLATED Nearest Face Interpolated -- Transfer the attribute from the nearest face on a surface (loose points and edges are ignored). * NEAREST Nearest -- Transfer the element from the nearest element (using face and edge centers for the distance computation).

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeVectorMath(GeometryNode, NodeInternal, Node,
                                            bpy_struct):
    input_type_a: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_b: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_c: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    operation: typing.Union[int, str] = None
    ''' * ADD Add -- A + B. * SUBTRACT Subtract -- A - B. * MULTIPLY Multiply -- Entry-wise multiply. * DIVIDE Divide -- Entry-wise divide. * MULTIPLY_ADD Multiply Add -- A \* B + C. * CROSS_PRODUCT Cross Product -- A cross B. * PROJECT Project -- Project A onto B. * REFLECT Reflect -- Reflect A around the normal B. B doesn't need to be normalized. * REFRACT Refract -- For a given incident vector A, surface normal B and ratio of indices of refraction, Ior, refract returns the refraction vector, R. * FACEFORWARD Faceforward -- Orients a vector A to point away from a surface B as defined by its normal C. Returns (dot(B, C) < 0) ? A : -A. * DOT_PRODUCT Dot Product -- A dot B. * DISTANCE Distance -- Distance between A and B. * LENGTH Length -- Length of A. * SCALE Scale -- A multiplied by Scale. * NORMALIZE Normalize -- Normalize A. * ABSOLUTE Absolute -- Entry-wise absolute. * MINIMUM Minimum -- Entry-wise minimum. * MAXIMUM Maximum -- Entry-wise maximum. * FLOOR Floor -- Entry-wise floor. * CEIL Ceil -- Entry-wise ceil. * FRACTION Fraction -- The fraction part of A entry-wise. * MODULO Modulo -- Entry-wise modulo using fmod(A,B). * WRAP Wrap -- Entry-wise wrap(A,B). * SNAP Snap -- Round A to the largest integer multiple of B less than or equal A. * SINE Sine -- Entry-wise sin(A). * COSINE Cosine -- Entry-wise cos(A). * TANGENT Tangent -- Entry-wise tan(A).

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyAttributeVectorRotate(GeometryNode, NodeInternal, Node,
                                              bpy_struct):
    input_type_angle: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_center: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_rotation: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_vector: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    rotation_mode: typing.Union[int, str] = None
    ''' Type of rotation * AXIS_ANGLE Axis Angle -- Rotate a point using axis angle. * X_AXIS X Axis -- Rotate a point using X axis. * Y_AXIS Y Axis -- Rotate a point using Y axis. * Z_AXIS Z Axis -- Rotate a point using Z axis. * EULER_XYZ Euler -- Rotate a point using XYZ order.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyCurveEndpoints(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyCurveReverse(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyCurveSelectHandles(GeometryNode, NodeInternal, Node,
                                           bpy_struct):
    handle_type: typing.Union[int, str] = None
    ''' * FREE Free -- The handle can be moved anywhere, and doesn't influence the point's other handle. * AUTO Auto -- The location is automatically calculated to be smooth. * VECTOR Vector -- The location is calculated to point to the next/previous control point. * ALIGN Align -- The location is constrained to point in the opposite direction as the other handle.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Whether to check the type of left and right handles * LEFT Left -- Use the left handles. * RIGHT Right -- Use the right handles.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyCurveSetHandles(GeometryNode, NodeInternal, Node,
                                        bpy_struct):
    handle_type: typing.Union[int, str] = None
    ''' * FREE Free -- The handle can be moved anywhere, and doesn't influence the point's other handle. * AUTO Auto -- The location is automatically calculated to be smooth. * VECTOR Vector -- The location is calculated to point to the next/previous control point. * ALIGN Align -- The location is constrained to point in the opposite direction as the other handle.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[typing.Set[int], typing.Set[str]] = None
    ''' Whether to update left and right handles * LEFT Left -- Use the left handles. * RIGHT Right -- Use the right handles.

    :type: typing.Union[typing.Set[int], typing.Set[str]]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyCurveSplineType(GeometryNode, NodeInternal, Node,
                                        bpy_struct):
    spline_type: typing.Union[int, str] = None
    ''' * BEZIER Bezier -- Set the splines to Bezier. * NURBS NURBS -- Set the splines to NURBS. * POLY Poly -- Set the splines to Poly.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyCurveSubdivide(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    cuts_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyCurveToPoints(GeometryNode, NodeInternal, Node,
                                      bpy_struct):
    mode: typing.Union[int, str] = None
    ''' How to generate points from the input curve * EVALUATED Evaluated -- Create points from the curve's evaluated points, based on the resolution attribute for NURBS and Bezier splines. * COUNT Count -- Sample each spline by evenly distributing the specified number of points. * LENGTH Length -- Sample each spline by splitting it into segments with the specified length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyDeleteGeometry(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyEdgeSplit(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyMaterialAssign(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyMeshToCurve(GeometryNode, NodeInternal, Node,
                                    bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyPointDistribute(GeometryNode, NodeInternal, Node,
                                        bpy_struct):
    distribute_method: typing.Union[int, str] = None
    ''' Method to use for scattering points * RANDOM Random -- Distribute points randomly on the surface. * POISSON Poisson Disk -- Distribute the points randomly on the surface while taking a minimum distance between points into account.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyPointInstance(GeometryNode, NodeInternal, Node,
                                      bpy_struct):
    instance_type: typing.Union[int, str] = None
    ''' * OBJECT Object -- Instance an individual object on all points. * COLLECTION Collection -- Instance an entire collection on all points. * GEOMETRY Geometry -- Copy geometry to all points.

    :type: typing.Union[int, str]
    '''

    use_whole_collection: bool = None
    ''' Instance entire collection on each point

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyPointScale(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    input_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyPointSeparate(GeometryNode, NodeInternal, Node,
                                      bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyPointTranslate(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    input_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyPointsToVolume(GeometryNode, NodeInternal, Node,
                                       bpy_struct):
    input_type_radius: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    resolution_mode: typing.Union[int, str] = None
    ''' How the voxel size is specified * VOXEL_AMOUNT Amount -- Specify the approximate number of voxels along the diagonal. * VOXEL_SIZE Size -- Specify the voxel side length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyRaycast(GeometryNode, NodeInternal, Node, bpy_struct):
    input_type_ray_direction: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_ray_length: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    mapping: typing.Union[int, str] = None
    ''' Mapping from the target geometry to hit points * INTERPOLATED Interpolated -- Interpolate the attribute from the corners of the hit face. * NEAREST Nearest -- Use the attribute value of the closest mesh element.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyRotatePoints(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    input_type_angle: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_axis: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    input_type_rotation: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    space: typing.Union[int, str] = None
    ''' Base orientation of the points * OBJECT Object -- Rotate points in the local space of the object. * POINT Point -- Rotate every point in its local space (as defined by the 'rotation' attribute).

    :type: typing.Union[int, str]
    '''

    type: typing.Union[int, str] = None
    ''' Method used to describe the rotation * AXIS_ANGLE Axis Angle -- Rotate around an axis by an angle. * EULER Euler -- Rotate around the X, Y, and Z axes.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacySelectByMaterial(GeometryNode, NodeInternal, Node,
                                         bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacySubdivisionSurface(GeometryNode, NodeInternal, Node,
                                           bpy_struct):
    boundary_smooth: typing.Union[int, str] = None
    ''' Controls how open boundaries are smoothed * PRESERVE_CORNERS Keep Corners -- Smooth boundaries, but corners are kept sharp. * ALL All -- Smooth boundaries, including corners.

    :type: typing.Union[int, str]
    '''

    uv_smooth: typing.Union[int, str] = None
    ''' Controls how smoothing is applied to UVs * NONE None -- UVs are not smoothed, boundaries are kept sharp. * PRESERVE_CORNERS Keep Corners -- UVs are smoothed, corners on discontinuous boundary are kept sharp. * PRESERVE_CORNERS_AND_JUNCTIONS Keep Corners, Junctions -- UVs are smoothed, corners on discontinuous boundary and junctions of 3 or more regions are kept sharp. * PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE Keep Corners, Junctions, Concave -- UVs are smoothed, corners on discontinuous boundary, junctions of 3 or more regions and darts and concave corners are kept sharp. * PRESERVE_BOUNDARIES Keep Boundaries -- UVs are smoothed, boundaries are kept sharp. * SMOOTH_ALL All -- UVs and boundaries are smoothed.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeLegacyVolumeToMesh(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    resolution_mode: typing.Union[int, str] = None
    ''' How the voxel size is specified * GRID Grid -- Use resolution of the volume grid. * VOXEL_AMOUNT Amount -- Desired number of voxels along one axis. * VOXEL_SIZE Size -- Desired voxel side length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMaterialSelection(GeometryNode, NodeInternal, Node,
                                    bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshBoolean(GeometryNode, NodeInternal, Node, bpy_struct):
    operation: typing.Union[int, str] = None
    ''' * INTERSECT Intersect -- Keep the part of the mesh that is common between all operands. * UNION Union -- Combine meshes in an additive way. * DIFFERENCE Difference -- Combine meshes in a subtractive way.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshCircle(GeometryNode, NodeInternal, Node, bpy_struct):
    fill_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshCone(GeometryNode, NodeInternal, Node, bpy_struct):
    fill_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshCube(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshCylinder(GeometryNode, NodeInternal, Node, bpy_struct):
    fill_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshGrid(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshIcoSphere(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshLine(GeometryNode, NodeInternal, Node, bpy_struct):
    count_mode: typing.Union[int, str] = None
    ''' * TOTAL Count -- Specify the total number of vertices. * RESOLUTION Resolution -- Specify the distance between vertices.

    :type: typing.Union[int, str]
    '''

    mode: typing.Union[int, str] = None
    ''' * OFFSET Offset -- Specify the offset from one vertex to the next. * END_POINTS End Points -- Specify the line's start and end points.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshToCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshToPoints(GeometryNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' * VERTICES Vertices -- Create a point in the point cloud for each selected vertex. * EDGES Edges -- Create a point in the point cloud for each selected edge. * FACES Faces -- Create a point in the point cloud for each selected face. * CORNERS Corners -- Create a point in the point cloud for each selected face corner.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeMeshUVSphere(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeObjectInfo(GeometryNode, NodeInternal, Node, bpy_struct):
    transform_space: typing.Union[int, str] = None
    ''' The transformation of the vector and geometry outputs * ORIGINAL Original -- Output the geometry relative to the input object transform, and the location, rotation and scale relative to the world origin. * RELATIVE Relative -- Bring the input object geometry, location, rotation and scale into the modified object, maintaining the relative position between the two objects in the scene.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodePointsToVertices(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodePointsToVolume(GeometryNode, NodeInternal, Node, bpy_struct):
    resolution_mode: typing.Union[int, str] = None
    ''' How the voxel size is specified * VOXEL_AMOUNT Amount -- Specify the approximate number of voxels along the diagonal. * VOXEL_SIZE Size -- Specify the voxel side length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeProximity(GeometryNode, NodeInternal, Node, bpy_struct):
    target_element: typing.Union[int, str] = None
    ''' Element of the target geometry to calculate the distance from * POINTS Points -- Calculate the proximity to the target's points (faster than the other modes). * EDGES Edges -- Calculate the proximity to the target's edges. * FACES Faces -- Calculate the proximity to the target's faces.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeRaycast(GeometryNode, NodeInternal, Node, bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' Type of data stored in attribute * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    mapping: typing.Union[int, str] = None
    ''' Mapping from the target geometry to hit points * INTERPOLATED Interpolated -- Interpolate the attribute from the corners of the hit face. * NEAREST Nearest -- Use the attribute value of the closest mesh element.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeRealizeInstances(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    legacy_behavior: bool = None
    ''' Behave like before instance attributes existed

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeReplaceMaterial(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeResampleCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' How to specify the amount of samples * EVALUATED Evaluated -- Output the input spline's evaluated points, based on the resolution attribute for NURBS and Bezier splines. Poly splines are unchanged. * COUNT Count -- Sample the specified number of points along each spline. * LENGTH Length -- Calculate the number of samples by splitting each spline into segments with the specified length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeReverseCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeRotateInstances(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSampleCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' Method for sampling input * FACTOR Factor -- Find sample positions on the curve using a factor of its total length. * LENGTH Length -- Find sample positions on the curve using a distance from its beginning.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeScaleInstances(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSeparateComponents(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSeparateGeometry(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    domain: typing.Union[int, str] = None
    ''' Which domain to separate on * POINT Point -- Attribute on point. * EDGE Edge -- Attribute on mesh edge. * FACE Face -- Attribute on mesh faces. * CURVE Spline -- Attribute on spline. * INSTANCE Instance -- Attribute on instance.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetCurveHandlePositions(GeometryNode, NodeInternal, Node,
                                          bpy_struct):
    mode: typing.Union[int, str] = None
    ''' Whether to update left and right handles * LEFT Left -- Use the left handles. * RIGHT Right -- Use the right handles.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetCurveRadius(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetCurveTilt(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetID(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetMaterial(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetMaterialIndex(GeometryNode, NodeInternal, Node,
                                   bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetPointRadius(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetPosition(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetShadeSmooth(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetSplineCyclic(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSetSplineResolution(GeometryNode, NodeInternal, Node,
                                      bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSplineLength(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSplineParameter(GeometryNode, NodeInternal, Node,
                                  bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSplitEdges(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeStringJoin(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeStringToCurves(GeometryNode, NodeInternal, Node, bpy_struct):
    align_x: typing.Union[int, str] = None
    ''' * LEFT Left -- Align text to the left. * CENTER Center -- Align text to the center. * RIGHT Right -- Align text to the right. * JUSTIFY Justify -- Align text to the left and the right. * FLUSH Flush -- Align text to the left and the right, with equal character spacing.

    :type: typing.Union[int, str]
    '''

    align_y: typing.Union[int, str] = None
    ''' * TOP_BASELINE Top Baseline -- Align text to the top baseline. * TOP Top -- Align text to the top. * MIDDLE Middle -- Align text to the middle. * BOTTOM_BASELINE Bottom Baseline -- Align text to the bottom baseline. * BOTTOM Bottom -- Align text to the bottom.

    :type: typing.Union[int, str]
    '''

    font: 'VectorFont' = None
    ''' Font of the text. Falls back to the UI font by default

    :type: 'VectorFont'
    '''

    overflow: typing.Union[int, str] = None
    ''' * OVERFLOW Overflow -- Let the text use more space than the specified height. * SCALE_TO_FIT Scale To Fit -- Scale the text size to fit inside the width and height. * TRUNCATE Truncate -- Only output curves that fit within the width and height. Output the remainder to the "Remainder" output.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSubdivideCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSubdivideMesh(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSubdivisionSurface(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    boundary_smooth: typing.Union[int, str] = None
    ''' Controls how open boundaries are smoothed * PRESERVE_CORNERS Keep Corners -- Smooth boundaries, but corners are kept sharp. * ALL All -- Smooth boundaries, including corners.

    :type: typing.Union[int, str]
    '''

    uv_smooth: typing.Union[int, str] = None
    ''' Controls how smoothing is applied to UVs * NONE None -- UVs are not smoothed, boundaries are kept sharp. * PRESERVE_CORNERS Keep Corners -- UVs are smoothed, corners on discontinuous boundary are kept sharp. * PRESERVE_CORNERS_AND_JUNCTIONS Keep Corners, Junctions -- UVs are smoothed, corners on discontinuous boundary and junctions of 3 or more regions are kept sharp. * PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE Keep Corners, Junctions, Concave -- UVs are smoothed, corners on discontinuous boundary, junctions of 3 or more regions and darts and concave corners are kept sharp. * PRESERVE_BOUNDARIES Keep Boundaries -- UVs are smoothed, boundaries are kept sharp. * SMOOTH_ALL All -- UVs and boundaries are smoothed.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeSwitch(GeometryNode, NodeInternal, Node, bpy_struct):
    input_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeTransform(GeometryNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeTranslateInstances(GeometryNode, NodeInternal, Node,
                                     bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeTriangulate(GeometryNode, NodeInternal, Node, bpy_struct):
    ngon_method: typing.Union[int, str] = None
    ''' Method for splitting the n-gons into triangles * BEAUTY Beauty -- Arrange the new triangles evenly (slow). * CLIP Clip -- Split the polygons with an ear clipping algorithm.

    :type: typing.Union[int, str]
    '''

    quad_method: typing.Union[int, str] = None
    ''' Method for splitting the quads into triangles * BEAUTY Beauty -- Split the quads in nice triangles, slower method. * FIXED Fixed -- Split the quads on the first and third vertices. * FIXED_ALTERNATE Fixed Alternate -- Split the quads on the 2nd and 4th vertices. * SHORTEST_DIAGONAL Shortest Diagonal -- Split the quads based on the distance between the vertices.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeTrimCurve(GeometryNode, NodeInternal, Node, bpy_struct):
    mode: typing.Union[int, str] = None
    ''' How to find endpoint positions for the trimmed spline * FACTOR Factor -- Find the endpoint positions using a factor of each spline's length. * LENGTH Length -- Find the endpoint positions using a length from the start of each spline.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeViewer(GeometryNode, NodeInternal, Node, bpy_struct):
    data_type: typing.Union[int, str] = None
    ''' * FLOAT Float -- Floating-point value. * INT Integer -- 32-bit integer. * FLOAT_VECTOR Vector -- 3D vector with floating-point values. * FLOAT_COLOR Color -- RGBA color with floating-point values. * BYTE_COLOR Byte Color -- RGBA color with 8-bit values. * STRING String -- Text string. * BOOLEAN Boolean -- True or false. * FLOAT2 2D Vector -- 2D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class GeometryNodeVolumeToMesh(GeometryNode, NodeInternal, Node, bpy_struct):
    resolution_mode: typing.Union[int, str] = None
    ''' How the voxel size is specified * GRID Grid -- Use resolution of the volume grid. * VOXEL_AMOUNT Amount -- Desired number of voxels along one axis. * VOXEL_SIZE Size -- Desired voxel side length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeAddShader(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeAmbientOcclusion(ShaderNode, NodeInternal, Node, bpy_struct):
    inside: bool = None
    ''' Trace rays towards the inside of the object

    :type: bool
    '''

    only_local: bool = None
    ''' Only consider the object itself when computing AO

    :type: bool
    '''

    samples: int = None
    ''' Number of rays to trace per shader evaluation

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeAttribute(ShaderNode, NodeInternal, Node, bpy_struct):
    attribute_name: str = None
    ''' 

    :type: str
    '''

    attribute_type: typing.Union[int, str] = None
    ''' General type of the attribute * GEOMETRY Geometry -- The attribute is associated with the object geometry, and its value varies from vertex to vertex, or within the object volume. * OBJECT Object -- The attribute is associated with the object or mesh data-block itself, and its value is uniform. * INSTANCER Instancer -- The attribute is associated with the instancer particle system or object, falling back to the Object mode if the attribute isn't found, or the object is not instanced.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBackground(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBevel(ShaderNode, NodeInternal, Node, bpy_struct):
    samples: int = None
    ''' Number of rays to trace per shader evaluation

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBlackbody(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBrightContrast(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfAnisotropic(ShaderNode, NodeInternal, Node, bpy_struct):
    distribution: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfDiffuse(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfGlass(ShaderNode, NodeInternal, Node, bpy_struct):
    distribution: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfGlossy(ShaderNode, NodeInternal, Node, bpy_struct):
    distribution: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfHair(ShaderNode, NodeInternal, Node, bpy_struct):
    component: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfHairPrincipled(ShaderNode, NodeInternal, Node, bpy_struct):
    parametrization: typing.Union[int, str] = None
    ''' Select the shader's color parametrization * ABSORPTION Absorption Coefficient -- Directly set the absorption coefficient "sigma_a" (this is not the most intuitive way to color hair). * MELANIN Melanin Concentration -- Define the melanin concentrations below to get the most realistic-looking hair (you can get the concentrations for different types of hair online). * COLOR Direct Coloring -- Choose the color of your preference, and the shader will approximate the absorption coefficient to render lookalike hair.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfPrincipled(ShaderNode, NodeInternal, Node, bpy_struct):
    distribution: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    subsurface_method: typing.Union[int, str] = None
    ''' Method for rendering subsurface scattering * BURLEY Christensen-Burley -- Approximation to physically based volume scattering. * RANDOM_WALK_FIXED_RADIUS Random Walk (Fixed Radius) -- Volumetric approximation to physically based volume scattering, using the scattering radius as specified. * RANDOM_WALK Random Walk -- Volumetric approximation to physically based volume scattering, with scattering radius automatically adjusted to match color textures.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfRefraction(ShaderNode, NodeInternal, Node, bpy_struct):
    distribution: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfToon(ShaderNode, NodeInternal, Node, bpy_struct):
    component: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfTranslucent(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfTransparent(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBsdfVelvet(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeBump(ShaderNode, NodeInternal, Node, bpy_struct):
    invert: bool = None
    ''' Invert the bump mapping direction to push into the surface instead of out

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeCameraData(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeClamp(ShaderNode, NodeInternal, Node, bpy_struct):
    clamp_type: typing.Union[int, str] = None
    ''' * MINMAX Min Max -- Constrain value between min and max. * RANGE Range -- Constrain value between min and max, swapping arguments when min > max.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeCombineHSV(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeCombineRGB(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeCombineXYZ(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeCustomGroup(ShaderNode, NodeInternal, Node, bpy_struct):
    ''' Custom Shader Group Node for Python nodes
    '''

    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeDisplacement(ShaderNode, NodeInternal, Node, bpy_struct):
    space: typing.Union[int, str] = None
    ''' Space of the input height * OBJECT Object Space -- Displacement is in object space, affected by object scale. * WORLD World Space -- Displacement is in world space, not affected by object scale.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeEeveeSpecular(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeEmission(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeFloatCurve(ShaderNode, NodeInternal, Node, bpy_struct):
    mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeFresnel(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeGamma(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeGroup(ShaderNode, NodeInternal, Node, bpy_struct):
    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeHairInfo(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeHoldout(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeHueSaturation(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeInvert(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeLayerWeight(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeLightFalloff(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeLightPath(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeMapRange(ShaderNode, NodeInternal, Node, bpy_struct):
    clamp: bool = None
    ''' Clamp the result to the target range [To Min, To Max]

    :type: bool
    '''

    data_type: typing.Union[int, str] = None
    ''' * FLOAT Float -- Floating-point value. * FLOAT_VECTOR Vector -- 3D vector with floating-point values.

    :type: typing.Union[int, str]
    '''

    interpolation_type: typing.Union[int, str] = None
    ''' * LINEAR Linear -- Linear interpolation between From Min and From Max values. * STEPPED Stepped Linear -- Stepped linear interpolation between From Min and From Max values. * SMOOTHSTEP Smooth Step -- Smooth Hermite edge interpolation between From Min and From Max values. * SMOOTHERSTEP Smoother Step -- Smoother Hermite edge interpolation between From Min and From Max values.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeMapping(ShaderNode, NodeInternal, Node, bpy_struct):
    vector_type: typing.Union[int, str] = None
    ''' Type of vector that the mapping transforms * POINT Point -- Transform a point. * TEXTURE Texture -- Transform a texture by inverse mapping the texture coordinate. * VECTOR Vector -- Transform a direction vector. Location is ignored. * NORMAL Normal -- Transform a unit normal vector. Location is ignored.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeMath(ShaderNode, NodeInternal, Node, bpy_struct):
    operation: typing.Union[int, str] = None
    ''' * ADD Add -- A + B. * SUBTRACT Subtract -- A - B. * MULTIPLY Multiply -- A \* B. * DIVIDE Divide -- A / B. * MULTIPLY_ADD Multiply Add -- A \* B + C. * POWER Power -- A power B. * LOGARITHM Logarithm -- Logarithm A base B. * SQRT Square Root -- Square root of A. * INVERSE_SQRT Inverse Square Root -- 1 / Square root of A. * ABSOLUTE Absolute -- Magnitude of A. * EXPONENT Exponent -- exp(A). * MINIMUM Minimum -- The minimum from A and B. * MAXIMUM Maximum -- The maximum from A and B. * LESS_THAN Less Than -- 1 if A < B else 0. * GREATER_THAN Greater Than -- 1 if A > B else 0. * SIGN Sign -- Returns the sign of A. * COMPARE Compare -- 1 if (A == B) within tolerance C else 0. * SMOOTH_MIN Smooth Minimum -- The minimum from A and B with smoothing C. * SMOOTH_MAX Smooth Maximum -- The maximum from A and B with smoothing C. * ROUND Round -- Round A to the nearest integer. Round upward if the fraction part is 0.5. * FLOOR Floor -- The largest integer smaller than or equal A. * CEIL Ceil -- The smallest integer greater than or equal A. * TRUNC Truncate -- The integer part of A, removing fractional digits. * FRACT Fraction -- The fraction part of A. * MODULO Modulo -- Modulo using fmod(A,B). * WRAP Wrap -- Wrap value to range, wrap(A,B). * SNAP Snap -- Snap to increment, snap(A,B). * PINGPONG Ping-Pong -- Wraps a value and reverses every other cycle (A,B). * SINE Sine -- sin(A). * COSINE Cosine -- cos(A). * TANGENT Tangent -- tan(A). * ARCSINE Arcsine -- arcsin(A). * ARCCOSINE Arccosine -- arccos(A). * ARCTANGENT Arctangent -- arctan(A). * ARCTAN2 Arctan2 -- The signed angle arctan(A / B). * SINH Hyperbolic Sine -- sinh(A). * COSH Hyperbolic Cosine -- cosh(A). * TANH Hyperbolic Tangent -- tanh(A). * RADIANS To Radians -- Convert from degrees to radians. * DEGREES To Degrees -- Convert from radians to degrees.

    :type: typing.Union[int, str]
    '''

    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeMixRGB(ShaderNode, NodeInternal, Node, bpy_struct):
    blend_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_alpha: bool = None
    ''' Include alpha of second input in this operation

    :type: bool
    '''

    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeMixShader(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeNewGeometry(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeNormal(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeNormalMap(ShaderNode, NodeInternal, Node, bpy_struct):
    space: typing.Union[int, str] = None
    ''' Space of the input normal * TANGENT Tangent Space -- Tangent space normal mapping. * OBJECT Object Space -- Object space normal mapping. * WORLD World Space -- World space normal mapping. * BLENDER_OBJECT Blender Object Space -- Object space normal mapping, compatible with Blender render baking. * BLENDER_WORLD Blender World Space -- World space normal mapping, compatible with Blender render baking.

    :type: typing.Union[int, str]
    '''

    uv_map: str = None
    ''' UV Map for tangent space maps

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeObjectInfo(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeOutputAOV(ShaderNode, NodeInternal, Node, bpy_struct):
    name: str = None
    ''' Name of the AOV that this output writes to

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeOutputLight(ShaderNode, NodeInternal, Node, bpy_struct):
    is_active_output: bool = None
    ''' True if this node is used as the active output

    :type: bool
    '''

    target: typing.Union[int, str] = None
    ''' Which renderer and viewport shading types to use the shaders for * ALL All -- Use shaders for all renderers and viewports, unless there exists a more specific output. * EEVEE Eevee -- Use shaders for Eevee renderer. * CYCLES Cycles -- Use shaders for Cycles renderer.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeOutputLineStyle(ShaderNode, NodeInternal, Node, bpy_struct):
    blend_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    is_active_output: bool = None
    ''' True if this node is used as the active output

    :type: bool
    '''

    target: typing.Union[int, str] = None
    ''' Which renderer and viewport shading types to use the shaders for * ALL All -- Use shaders for all renderers and viewports, unless there exists a more specific output. * EEVEE Eevee -- Use shaders for Eevee renderer. * CYCLES Cycles -- Use shaders for Cycles renderer.

    :type: typing.Union[int, str]
    '''

    use_alpha: bool = None
    ''' Include alpha of second input in this operation

    :type: bool
    '''

    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeOutputMaterial(ShaderNode, NodeInternal, Node, bpy_struct):
    is_active_output: bool = None
    ''' True if this node is used as the active output

    :type: bool
    '''

    target: typing.Union[int, str] = None
    ''' Which renderer and viewport shading types to use the shaders for * ALL All -- Use shaders for all renderers and viewports, unless there exists a more specific output. * EEVEE Eevee -- Use shaders for Eevee renderer. * CYCLES Cycles -- Use shaders for Cycles renderer.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeOutputWorld(ShaderNode, NodeInternal, Node, bpy_struct):
    is_active_output: bool = None
    ''' True if this node is used as the active output

    :type: bool
    '''

    target: typing.Union[int, str] = None
    ''' Which renderer and viewport shading types to use the shaders for * ALL All -- Use shaders for all renderers and viewports, unless there exists a more specific output. * EEVEE Eevee -- Use shaders for Eevee renderer. * CYCLES Cycles -- Use shaders for Cycles renderer.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeParticleInfo(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeRGB(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeRGBCurve(ShaderNode, NodeInternal, Node, bpy_struct):
    mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeRGBToBW(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeScript(ShaderNode, NodeInternal, Node, bpy_struct):
    bytecode: str = None
    ''' Compile bytecode for shader script node

    :type: str
    '''

    bytecode_hash: str = None
    ''' Hash of compile bytecode, for quick equality checking

    :type: str
    '''

    filepath: str = None
    ''' Shader script path

    :type: str
    '''

    mode: typing.Union[int, str] = None
    ''' * INTERNAL Internal -- Use internal text data-block. * EXTERNAL External -- Use external .osl or .oso file.

    :type: typing.Union[int, str]
    '''

    script: 'Text' = None
    ''' Internal shader script to define the shader

    :type: 'Text'
    '''

    use_auto_update: bool = None
    ''' Automatically update the shader when the .osl file changes (external scripts only)

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeSeparateHSV(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeSeparateRGB(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeSeparateXYZ(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeShaderToRGB(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeSqueeze(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeSubsurfaceScattering(ShaderNode, NodeInternal, Node,
                                     bpy_struct):
    falloff: typing.Union[int, str] = None
    ''' Method for rendering subsurface scattering * BURLEY Christensen-Burley -- Approximation to physically based volume scattering. * RANDOM_WALK_FIXED_RADIUS Random Walk (Fixed Radius) -- Volumetric approximation to physically based volume scattering, using the scattering radius as specified. * RANDOM_WALK Random Walk -- Volumetric approximation to physically based volume scattering, with scattering radius automatically adjusted to match color textures.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTangent(ShaderNode, NodeInternal, Node, bpy_struct):
    axis: typing.Union[int, str] = None
    ''' Axis for radial tangents * X X -- X axis. * Y Y -- Y axis. * Z Z -- Z axis.

    :type: typing.Union[int, str]
    '''

    direction_type: typing.Union[int, str] = None
    ''' Method to use for the tangent * RADIAL Radial -- Radial tangent around the X, Y or Z axis. * UV_MAP UV Map -- Tangent from UV map.

    :type: typing.Union[int, str]
    '''

    uv_map: str = None
    ''' UV Map for tangent generated from UV

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexBrick(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    offset: float = None
    ''' 

    :type: float
    '''

    offset_frequency: int = None
    ''' 

    :type: int
    '''

    squash: float = None
    ''' 

    :type: float
    '''

    squash_frequency: int = None
    ''' 

    :type: int
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexChecker(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexCoord(ShaderNode, NodeInternal, Node, bpy_struct):
    from_instancer: bool = None
    ''' Use the parent of the instance object if possible

    :type: bool
    '''

    object: 'Object' = None
    ''' Use coordinates from this object (for object texture coordinates output)

    :type: 'Object'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexEnvironment(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    image_user: 'ImageUser' = None
    ''' Parameters defining which layer, pass and frame of the image is displayed

    :type: 'ImageUser'
    '''

    interpolation: typing.Union[int, str] = None
    ''' Texture interpolation * Linear Linear -- Linear interpolation. * Closest Closest -- No interpolation (sample closest texel). * Cubic Cubic -- Cubic interpolation. * Smart Smart -- Bicubic when magnifying, else bilinear (OSL only).

    :type: typing.Union[int, str]
    '''

    projection: typing.Union[int, str] = None
    ''' Projection of the input image * EQUIRECTANGULAR Equirectangular -- Equirectangular or latitude-longitude projection. * MIRROR_BALL Mirror Ball -- Projection from an orthographic photo of a mirror ball.

    :type: typing.Union[int, str]
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexGradient(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    gradient_type: typing.Union[int, str] = None
    ''' Style of the color blending * LINEAR Linear -- Create a linear progression. * QUADRATIC Quadratic -- Create a quadratic progression. * EASING Easing -- Create a progression easing from one step to the next. * DIAGONAL Diagonal -- Create a diagonal progression. * SPHERICAL Spherical -- Create a spherical progression. * QUADRATIC_SPHERE Quadratic Sphere -- Create a quadratic progression in the shape of a sphere. * RADIAL Radial -- Create a radial progression.

    :type: typing.Union[int, str]
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexIES(ShaderNode, NodeInternal, Node, bpy_struct):
    filepath: str = None
    ''' IES light path

    :type: str
    '''

    ies: 'Text' = None
    ''' Internal IES file

    :type: 'Text'
    '''

    mode: typing.Union[int, str] = None
    ''' Whether the IES file is loaded from disk or from a text data-block * INTERNAL Internal -- Use internal text data-block. * EXTERNAL External -- Use external .ies file.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexImage(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    extension: typing.Union[int, str] = None
    ''' How the image is extrapolated past its original bounds * REPEAT Repeat -- Cause the image to repeat horizontally and vertically. * EXTEND Extend -- Extend by repeating edge pixels of the image. * CLIP Clip -- Clip to image size and set exterior pixels as transparent.

    :type: typing.Union[int, str]
    '''

    image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    image_user: 'ImageUser' = None
    ''' Parameters defining which layer, pass and frame of the image is displayed

    :type: 'ImageUser'
    '''

    interpolation: typing.Union[int, str] = None
    ''' Texture interpolation * Linear Linear -- Linear interpolation. * Closest Closest -- No interpolation (sample closest texel). * Cubic Cubic -- Cubic interpolation. * Smart Smart -- Bicubic when magnifying, else bilinear (OSL only).

    :type: typing.Union[int, str]
    '''

    projection: typing.Union[int, str] = None
    ''' Method to project 2D image on object with a 3D texture vector * FLAT Flat -- Image is projected flat using the X and Y coordinates of the texture vector. * BOX Box -- Image is projected using different components for each side of the object space bounding box. * SPHERE Sphere -- Image is projected spherically using the Z axis as central. * TUBE Tube -- Image is projected from the tube using the Z axis as central.

    :type: typing.Union[int, str]
    '''

    projection_blend: float = None
    ''' For box projection, amount of blend to use between sides

    :type: float
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexMagic(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    turbulence_depth: int = None
    ''' Level of detail in the added turbulent noise

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexMusgrave(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    musgrave_dimensions: typing.Union[int, str] = None
    ''' * 1D 1D -- Use the scalar value W as input. * 2D 2D -- Use the 2D vector (x, y) as input. The z component is ignored. * 3D 3D -- Use the 3D vector (x, y, z) as input. * 4D 4D -- Use the 4D vector (x, y, z, w) as input.

    :type: typing.Union[int, str]
    '''

    musgrave_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexNoise(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    noise_dimensions: typing.Union[int, str] = None
    ''' The dimensions of the space to evaluate the noise in * 1D 1D -- Use the scalar value W as input. * 2D 2D -- Use the 2D vector (x, y) as input. The z component is ignored. * 3D 3D -- Use the 3D vector (x, y, z) as input. * 4D 4D -- Use the 4D vector (x, y, z, w) as input.

    :type: typing.Union[int, str]
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexPointDensity(ShaderNode, NodeInternal, Node, bpy_struct):
    interpolation: typing.Union[int, str] = None
    ''' Texture interpolation * Closest Closest -- No interpolation (sample closest texel). * Linear Linear -- Linear interpolation. * Cubic Cubic -- Cubic interpolation.

    :type: typing.Union[int, str]
    '''

    object: 'Object' = None
    ''' Object to take point data from

    :type: 'Object'
    '''

    particle_color_source: typing.Union[int, str] = None
    ''' Data to derive color results from * PARTICLE_AGE Particle Age -- Lifetime mapped as 0.0 to 1.0 intensity. * PARTICLE_SPEED Particle Speed -- Particle speed (absolute magnitude of velocity) mapped as 0.0 to 1.0 intensity. * PARTICLE_VELOCITY Particle Velocity -- XYZ velocity mapped to RGB colors.

    :type: typing.Union[int, str]
    '''

    particle_system: 'ParticleSystem' = None
    ''' Particle System to render as points

    :type: 'ParticleSystem'
    '''

    point_source: typing.Union[int, str] = None
    ''' Point data to use as renderable point density * PARTICLE_SYSTEM Particle System -- Generate point density from a particle system. * OBJECT Object Vertices -- Generate point density from an object's vertices.

    :type: typing.Union[int, str]
    '''

    radius: float = None
    ''' Radius from the shaded sample to look for points within

    :type: float
    '''

    resolution: int = None
    ''' Resolution used by the texture holding the point density

    :type: int
    '''

    space: typing.Union[int, str] = None
    ''' Coordinate system to calculate voxels in

    :type: typing.Union[int, str]
    '''

    vertex_attribute_name: str = None
    ''' Vertex attribute to use for color

    :type: str
    '''

    vertex_color_source: typing.Union[int, str] = None
    ''' Data to derive color results from * VERTEX_COLOR Vertex Color -- Vertex color layer. * VERTEX_WEIGHT Vertex Weight -- Vertex group weight. * VERTEX_NORMAL Vertex Normal -- XYZ normal vector mapped to RGB colors.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    def cache_point_density(self, depsgraph: 'Depsgraph' = None):
        ''' Cache point density data for later calculation

        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        '''
        pass

    def calc_point_density(
            self, depsgraph: 'Depsgraph' = None) -> typing.List[float]:
        ''' Calculate point density

        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        :rtype: typing.List[float]
        :return: RGBA Values
        '''
        pass

    def calc_point_density_minmax(self, depsgraph: 'Depsgraph' = None):
        ''' Calculate point density

        :param depsgraph: 
        :type depsgraph: 'Depsgraph'
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexSky(ShaderNode, NodeInternal, Node, bpy_struct):
    air_density: float = None
    ''' Density of air molecules

    :type: float
    '''

    altitude: float = None
    ''' Height from sea level

    :type: float
    '''

    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    dust_density: float = None
    ''' Density of dust molecules and water droplets

    :type: float
    '''

    ground_albedo: float = None
    ''' Ground color that is subtly reflected in the sky

    :type: float
    '''

    ozone_density: float = None
    ''' Density of ozone layer

    :type: float
    '''

    sky_type: typing.Union[int, str] = None
    ''' Which sky model should be used * PREETHAM Preetham -- Preetham 1999. * HOSEK_WILKIE Hosek / Wilkie -- Hosek / Wilkie 2012. * NISHITA Nishita -- Nishita 1993 improved.

    :type: typing.Union[int, str]
    '''

    sun_direction: typing.List[float] = None
    ''' Direction from where the sun is shining

    :type: typing.List[float]
    '''

    sun_disc: bool = None
    ''' Include the sun itself in the output

    :type: bool
    '''

    sun_elevation: float = None
    ''' Sun angle from horizon

    :type: float
    '''

    sun_intensity: float = None
    ''' Strength of sun

    :type: float
    '''

    sun_rotation: float = None
    ''' Rotation of sun around zenith

    :type: float
    '''

    sun_size: float = None
    ''' Size of sun disc

    :type: float
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    turbidity: float = None
    ''' Atmospheric turbidity

    :type: float
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexVoronoi(ShaderNode, NodeInternal, Node, bpy_struct):
    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    distance: typing.Union[int, str] = None
    ''' * EUCLIDEAN Euclidean -- Euclidean distance. * MANHATTAN Manhattan -- Manhattan distance. * CHEBYCHEV Chebychev -- Chebychev distance. * MINKOWSKI Minkowski -- Minkowski distance.

    :type: typing.Union[int, str]
    '''

    feature: typing.Union[int, str] = None
    ''' * F1 F1 -- Computes the distance to the closest point as well as its position and color. * F2 F2 -- Computes the distance to the second closest point as well as its position and color. * SMOOTH_F1 Smooth F1 -- Smoothed version of F1. Weighted sum of neighbor voronoi cells. * DISTANCE_TO_EDGE Distance to Edge -- Computes the distance to the edge of the voronoi cell. * N_SPHERE_RADIUS N-Sphere Radius -- Computes the radius of the n-sphere inscribed in the voronoi cell.

    :type: typing.Union[int, str]
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    voronoi_dimensions: typing.Union[int, str] = None
    ''' * 1D 1D -- Use the scalar value W as input. * 2D 2D -- Use the 2D vector (x, y) as input. The z component is ignored. * 3D 3D -- Use the 3D vector (x, y, z) as input. * 4D 4D -- Use the 4D vector (x, y, z, w) as input.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexWave(ShaderNode, NodeInternal, Node, bpy_struct):
    bands_direction: typing.Union[int, str] = None
    ''' * X X -- Bands across X axis. * Y Y -- Bands across Y axis. * Z Z -- Bands across Z axis. * DIAGONAL Diagonal -- Bands across diagonal axis.

    :type: typing.Union[int, str]
    '''

    color_mapping: 'ColorMapping' = None
    ''' Color mapping settings

    :type: 'ColorMapping'
    '''

    rings_direction: typing.Union[int, str] = None
    ''' * X X -- Rings along X axis. * Y Y -- Rings along Y axis. * Z Z -- Rings along Z axis. * SPHERICAL Spherical -- Rings along spherical distance.

    :type: typing.Union[int, str]
    '''

    texture_mapping: 'TexMapping' = None
    ''' Texture coordinate mapping settings

    :type: 'TexMapping'
    '''

    wave_profile: typing.Union[int, str] = None
    ''' * SIN Sine -- Use a standard sine profile. * SAW Saw -- Use a sawtooth profile. * TRI Triangle -- Use a triangle profile.

    :type: typing.Union[int, str]
    '''

    wave_type: typing.Union[int, str] = None
    ''' * BANDS Bands -- Use standard wave texture in bands. * RINGS Rings -- Use wave texture in rings.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeTexWhiteNoise(ShaderNode, NodeInternal, Node, bpy_struct):
    noise_dimensions: typing.Union[int, str] = None
    ''' The dimensions of the space to evaluate the noise in * 1D 1D -- Use the scalar value W as input. * 2D 2D -- Use the 2D vector (x, y) as input. The z component is ignored. * 3D 3D -- Use the 3D vector (x, y, z) as input. * 4D 4D -- Use the 4D vector (x, y, z, w) as input.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeUVAlongStroke(ShaderNode, NodeInternal, Node, bpy_struct):
    use_tips: bool = None
    ''' Lower half of the texture is for tips of the stroke

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeUVMap(ShaderNode, NodeInternal, Node, bpy_struct):
    from_instancer: bool = None
    ''' Use the parent of the instance object if possible

    :type: bool
    '''

    uv_map: str = None
    ''' UV coordinates to be used for mapping

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeValToRGB(ShaderNode, NodeInternal, Node, bpy_struct):
    color_ramp: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeValue(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVectorCurve(ShaderNode, NodeInternal, Node, bpy_struct):
    mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVectorDisplacement(ShaderNode, NodeInternal, Node, bpy_struct):
    space: typing.Union[int, str] = None
    ''' Space of the input height * TANGENT Tangent Space -- Tangent space vector displacement mapping. * OBJECT Object Space -- Object space vector displacement mapping. * WORLD World Space -- World space vector displacement mapping.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVectorMath(ShaderNode, NodeInternal, Node, bpy_struct):
    operation: typing.Union[int, str] = None
    ''' * ADD Add -- A + B. * SUBTRACT Subtract -- A - B. * MULTIPLY Multiply -- Entry-wise multiply. * DIVIDE Divide -- Entry-wise divide. * MULTIPLY_ADD Multiply Add -- A \* B + C. * CROSS_PRODUCT Cross Product -- A cross B. * PROJECT Project -- Project A onto B. * REFLECT Reflect -- Reflect A around the normal B. B doesn't need to be normalized. * REFRACT Refract -- For a given incident vector A, surface normal B and ratio of indices of refraction, Ior, refract returns the refraction vector, R. * FACEFORWARD Faceforward -- Orients a vector A to point away from a surface B as defined by its normal C. Returns (dot(B, C) < 0) ? A : -A. * DOT_PRODUCT Dot Product -- A dot B. * DISTANCE Distance -- Distance between A and B. * LENGTH Length -- Length of A. * SCALE Scale -- A multiplied by Scale. * NORMALIZE Normalize -- Normalize A. * ABSOLUTE Absolute -- Entry-wise absolute. * MINIMUM Minimum -- Entry-wise minimum. * MAXIMUM Maximum -- Entry-wise maximum. * FLOOR Floor -- Entry-wise floor. * CEIL Ceil -- Entry-wise ceil. * FRACTION Fraction -- The fraction part of A entry-wise. * MODULO Modulo -- Entry-wise modulo using fmod(A,B). * WRAP Wrap -- Entry-wise wrap(A,B). * SNAP Snap -- Round A to the largest integer multiple of B less than or equal A. * SINE Sine -- Entry-wise sin(A). * COSINE Cosine -- Entry-wise cos(A). * TANGENT Tangent -- Entry-wise tan(A).

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVectorRotate(ShaderNode, NodeInternal, Node, bpy_struct):
    invert: bool = None
    ''' Invert angle

    :type: bool
    '''

    rotation_type: typing.Union[int, str] = None
    ''' Type of rotation * AXIS_ANGLE Axis Angle -- Rotate a point using axis angle. * X_AXIS X Axis -- Rotate a point using X axis. * Y_AXIS Y Axis -- Rotate a point using Y axis. * Z_AXIS Z Axis -- Rotate a point using Z axis. * EULER_XYZ Euler -- Rotate a point using XYZ order.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVectorTransform(ShaderNode, NodeInternal, Node, bpy_struct):
    convert_from: typing.Union[int, str] = None
    ''' Space to convert from

    :type: typing.Union[int, str]
    '''

    convert_to: typing.Union[int, str] = None
    ''' Space to convert to

    :type: typing.Union[int, str]
    '''

    vector_type: typing.Union[int, str] = None
    ''' * POINT Point -- Transform a point. * VECTOR Vector -- Transform a direction vector. * NORMAL Normal -- Transform a normal vector with unit length.

    :type: typing.Union[int, str]
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVertexColor(ShaderNode, NodeInternal, Node, bpy_struct):
    layer_name: str = None
    ''' Vertex Color

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVolumeAbsorption(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVolumeInfo(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVolumePrincipled(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeVolumeScatter(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeWavelength(ShaderNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class ShaderNodeWireframe(ShaderNode, NodeInternal, Node, bpy_struct):
    use_pixel_size: bool = None
    ''' Use screen pixel size instead of world units

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeAt(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeBricks(TextureNode, NodeInternal, Node, bpy_struct):
    offset: float = None
    ''' 

    :type: float
    '''

    offset_frequency: int = None
    ''' Offset every N rows

    :type: int
    '''

    squash: float = None
    ''' 

    :type: float
    '''

    squash_frequency: int = None
    ''' Squash every N rows

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeChecker(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeCompose(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeCoordinates(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeCurveRGB(TextureNode, NodeInternal, Node, bpy_struct):
    mapping: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeCurveTime(TextureNode, NodeInternal, Node, bpy_struct):
    curve: 'CurveMapping' = None
    ''' 

    :type: 'CurveMapping'
    '''

    frame_end: int = None
    ''' 

    :type: int
    '''

    frame_start: int = None
    ''' 

    :type: int
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeDecompose(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeDistance(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeGroup(TextureNode, NodeInternal, Node, bpy_struct):
    interface: 'PropertyGroup' = None
    ''' Interface socket data

    :type: 'PropertyGroup'
    '''

    node_tree: 'NodeTree' = None
    ''' 

    :type: 'NodeTree'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeHueSaturation(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeImage(TextureNode, NodeInternal, Node, bpy_struct):
    image: 'Image' = None
    ''' 

    :type: 'Image'
    '''

    image_user: 'ImageUser' = None
    ''' Parameters defining the image duration, offset and related settings

    :type: 'ImageUser'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeInvert(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeMath(TextureNode, NodeInternal, Node, bpy_struct):
    operation: typing.Union[int, str] = None
    ''' * ADD Add -- A + B. * SUBTRACT Subtract -- A - B. * MULTIPLY Multiply -- A \* B. * DIVIDE Divide -- A / B. * MULTIPLY_ADD Multiply Add -- A \* B + C. * POWER Power -- A power B. * LOGARITHM Logarithm -- Logarithm A base B. * SQRT Square Root -- Square root of A. * INVERSE_SQRT Inverse Square Root -- 1 / Square root of A. * ABSOLUTE Absolute -- Magnitude of A. * EXPONENT Exponent -- exp(A). * MINIMUM Minimum -- The minimum from A and B. * MAXIMUM Maximum -- The maximum from A and B. * LESS_THAN Less Than -- 1 if A < B else 0. * GREATER_THAN Greater Than -- 1 if A > B else 0. * SIGN Sign -- Returns the sign of A. * COMPARE Compare -- 1 if (A == B) within tolerance C else 0. * SMOOTH_MIN Smooth Minimum -- The minimum from A and B with smoothing C. * SMOOTH_MAX Smooth Maximum -- The maximum from A and B with smoothing C. * ROUND Round -- Round A to the nearest integer. Round upward if the fraction part is 0.5. * FLOOR Floor -- The largest integer smaller than or equal A. * CEIL Ceil -- The smallest integer greater than or equal A. * TRUNC Truncate -- The integer part of A, removing fractional digits. * FRACT Fraction -- The fraction part of A. * MODULO Modulo -- Modulo using fmod(A,B). * WRAP Wrap -- Wrap value to range, wrap(A,B). * SNAP Snap -- Snap to increment, snap(A,B). * PINGPONG Ping-Pong -- Wraps a value and reverses every other cycle (A,B). * SINE Sine -- sin(A). * COSINE Cosine -- cos(A). * TANGENT Tangent -- tan(A). * ARCSINE Arcsine -- arcsin(A). * ARCCOSINE Arccosine -- arccos(A). * ARCTANGENT Arctangent -- arctan(A). * ARCTAN2 Arctan2 -- The signed angle arctan(A / B). * SINH Hyperbolic Sine -- sinh(A). * COSH Hyperbolic Cosine -- cosh(A). * TANH Hyperbolic Tangent -- tanh(A). * RADIANS To Radians -- Convert from degrees to radians. * DEGREES To Degrees -- Convert from radians to degrees.

    :type: typing.Union[int, str]
    '''

    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeMixRGB(TextureNode, NodeInternal, Node, bpy_struct):
    blend_type: typing.Union[int, str] = None
    ''' 

    :type: typing.Union[int, str]
    '''

    use_alpha: bool = None
    ''' Include alpha of second input in this operation

    :type: bool
    '''

    use_clamp: bool = None
    ''' Clamp result of the node to 0.0 to 1.0 range

    :type: bool
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeOutput(TextureNode, NodeInternal, Node, bpy_struct):
    filepath: str = None
    ''' 

    :type: str
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeRGBToBW(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeRotate(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeScale(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexBlend(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexClouds(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexDistNoise(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexMagic(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexMarble(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexMusgrave(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexNoise(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexStucci(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexVoronoi(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexWood(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTexture(TextureNode, NodeInternal, Node, bpy_struct):
    node_output: int = None
    ''' For node-based textures, which output node to use

    :type: int
    '''

    texture: 'Texture' = None
    ''' 

    :type: 'Texture'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeTranslate(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeValToNor(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeValToRGB(TextureNode, NodeInternal, Node, bpy_struct):
    color_ramp: 'ColorRamp' = None
    ''' 

    :type: 'ColorRamp'
    '''

    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


class TextureNodeViewer(TextureNode, NodeInternal, Node, bpy_struct):
    @classmethod
    def is_registered_node_type(cls) -> bool:
        ''' True if a registered node type

        :rtype: bool
        :return: Result
        '''
        pass

    @classmethod
    def input_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Input socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def output_template(cls, index: int) -> 'NodeInternalSocketTemplate':
        ''' Output socket template

        :param index: Index
        :type index: int
        :rtype: 'NodeInternalSocketTemplate'
        :return: result
        '''
        pass

    @classmethod
    def bl_rna_get_subclass(cls, id: str, default=None) -> 'Struct':
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :rtype: 'Struct'
        :return: The RNA type or default when not found.
        '''
        pass

    @classmethod
    def bl_rna_get_subclass_py(cls, id: str, default=None):
        ''' 

        :param id: The RNA type identifier.
        :type id: str
        :return: The class or default when not found.
        '''
        pass


ANIM_OT_keying_set_export: 'bl_operators.anim.ANIM_OT_keying_set_export' = None

ASSETBROWSER_MT_context_menu: 'bl_ui.space_filebrowser.ASSETBROWSER_MT_context_menu' = None

ASSETBROWSER_MT_edit: 'bl_ui.space_filebrowser.ASSETBROWSER_MT_edit' = None

ASSETBROWSER_MT_editor_menus: 'bl_ui.space_filebrowser.ASSETBROWSER_MT_editor_menus' = None

ASSETBROWSER_MT_select: 'bl_ui.space_filebrowser.ASSETBROWSER_MT_select' = None

ASSETBROWSER_MT_view: 'bl_ui.space_filebrowser.ASSETBROWSER_MT_view' = None

ASSETBROWSER_PT_display: 'bl_ui.space_filebrowser.ASSETBROWSER_PT_display' = None

ASSETBROWSER_PT_filter: 'bl_ui.space_filebrowser.ASSETBROWSER_PT_filter' = None

ASSETBROWSER_PT_metadata: 'bl_ui.space_filebrowser.ASSETBROWSER_PT_metadata' = None

ASSETBROWSER_PT_metadata_preview: 'bl_ui.space_filebrowser.ASSETBROWSER_PT_metadata_preview' = None

ASSETBROWSER_PT_metadata_tags: 'bl_ui.space_filebrowser.ASSETBROWSER_PT_metadata_tags' = None

ASSETBROWSER_UL_metadata_tags: 'bl_ui.space_filebrowser.ASSETBROWSER_UL_metadata_tags' = None

ASSET_OT_open_containing_blend_file: 'bl_operators.assets.ASSET_OT_open_containing_blend_file' = None

ASSET_OT_tag_add: 'bl_operators.assets.ASSET_OT_tag_add' = None

ASSET_OT_tag_remove: 'bl_operators.assets.ASSET_OT_tag_remove' = None

BONE_PT_bActionConstraint: 'bl_ui.properties_constraint.BONE_PT_bActionConstraint' = None

BONE_PT_bActionConstraint_action: 'bl_ui.properties_constraint.BONE_PT_bActionConstraint_action' = None

BONE_PT_bActionConstraint_target: 'bl_ui.properties_constraint.BONE_PT_bActionConstraint_target' = None

BONE_PT_bArmatureConstraint: 'bl_ui.properties_constraint.BONE_PT_bArmatureConstraint' = None

BONE_PT_bArmatureConstraint_bones: 'bl_ui.properties_constraint.BONE_PT_bArmatureConstraint_bones' = None

BONE_PT_bCameraSolverConstraint: 'bl_ui.properties_constraint.BONE_PT_bCameraSolverConstraint' = None

BONE_PT_bChildOfConstraint: 'bl_ui.properties_constraint.BONE_PT_bChildOfConstraint' = None

BONE_PT_bClampToConstraint: 'bl_ui.properties_constraint.BONE_PT_bClampToConstraint' = None

BONE_PT_bDampTrackConstraint: 'bl_ui.properties_constraint.BONE_PT_bDampTrackConstraint' = None

BONE_PT_bDistLimitConstraint: 'bl_ui.properties_constraint.BONE_PT_bDistLimitConstraint' = None

BONE_PT_bFollowPathConstraint: 'bl_ui.properties_constraint.BONE_PT_bFollowPathConstraint' = None

BONE_PT_bFollowTrackConstraint: 'bl_ui.properties_constraint.BONE_PT_bFollowTrackConstraint' = None

BONE_PT_bKinematicConstraint: 'bl_ui.properties_constraint.BONE_PT_bKinematicConstraint' = None

BONE_PT_bLocLimitConstraint: 'bl_ui.properties_constraint.BONE_PT_bLocLimitConstraint' = None

BONE_PT_bLocateLikeConstraint: 'bl_ui.properties_constraint.BONE_PT_bLocateLikeConstraint' = None

BONE_PT_bLockTrackConstraint: 'bl_ui.properties_constraint.BONE_PT_bLockTrackConstraint' = None

BONE_PT_bMinMaxConstraint: 'bl_ui.properties_constraint.BONE_PT_bMinMaxConstraint' = None

BONE_PT_bObjectSolverConstraint: 'bl_ui.properties_constraint.BONE_PT_bObjectSolverConstraint' = None

BONE_PT_bPivotConstraint: 'bl_ui.properties_constraint.BONE_PT_bPivotConstraint' = None

BONE_PT_bPythonConstraint: 'bl_ui.properties_constraint.BONE_PT_bPythonConstraint' = None

BONE_PT_bRotLimitConstraint: 'bl_ui.properties_constraint.BONE_PT_bRotLimitConstraint' = None

BONE_PT_bRotateLikeConstraint: 'bl_ui.properties_constraint.BONE_PT_bRotateLikeConstraint' = None

BONE_PT_bSameVolumeConstraint: 'bl_ui.properties_constraint.BONE_PT_bSameVolumeConstraint' = None

BONE_PT_bShrinkwrapConstraint: 'bl_ui.properties_constraint.BONE_PT_bShrinkwrapConstraint' = None

BONE_PT_bSizeLikeConstraint: 'bl_ui.properties_constraint.BONE_PT_bSizeLikeConstraint' = None

BONE_PT_bSizeLimitConstraint: 'bl_ui.properties_constraint.BONE_PT_bSizeLimitConstraint' = None

BONE_PT_bSplineIKConstraint: 'bl_ui.properties_constraint.BONE_PT_bSplineIKConstraint' = None

BONE_PT_bSplineIKConstraint_chain_scaling: 'bl_ui.properties_constraint.BONE_PT_bSplineIKConstraint_chain_scaling' = None

BONE_PT_bSplineIKConstraint_fitting: 'bl_ui.properties_constraint.BONE_PT_bSplineIKConstraint_fitting' = None

BONE_PT_bStretchToConstraint: 'bl_ui.properties_constraint.BONE_PT_bStretchToConstraint' = None

BONE_PT_bTrackToConstraint: 'bl_ui.properties_constraint.BONE_PT_bTrackToConstraint' = None

BONE_PT_bTransLikeConstraint: 'bl_ui.properties_constraint.BONE_PT_bTransLikeConstraint' = None

BONE_PT_bTransformCacheConstraint: 'bl_ui.properties_constraint.BONE_PT_bTransformCacheConstraint' = None

BONE_PT_bTransformConstraint: 'bl_ui.properties_constraint.BONE_PT_bTransformConstraint' = None

BONE_PT_bTransformConstraint_from: 'bl_ui.properties_constraint.BONE_PT_bTransformConstraint_from' = None

BONE_PT_bTransformConstraint_to: 'bl_ui.properties_constraint.BONE_PT_bTransformConstraint_to' = None

BONE_PT_constraints: 'bl_ui.properties_constraint.BONE_PT_constraints' = None

BONE_PT_context_bone: 'bl_ui.properties_data_bone.BONE_PT_context_bone' = None

BONE_PT_curved: 'bl_ui.properties_data_bone.BONE_PT_curved' = None

BONE_PT_custom_props: 'bl_ui.properties_data_bone.BONE_PT_custom_props' = None

BONE_PT_deform: 'bl_ui.properties_data_bone.BONE_PT_deform' = None

BONE_PT_display: 'bl_ui.properties_data_bone.BONE_PT_display' = None

BONE_PT_display_custom_shape: 'bl_ui.properties_data_bone.BONE_PT_display_custom_shape' = None

BONE_PT_inverse_kinematics: 'bl_ui.properties_data_bone.BONE_PT_inverse_kinematics' = None

BONE_PT_relations: 'bl_ui.properties_data_bone.BONE_PT_relations' = None

BONE_PT_transform: 'bl_ui.properties_data_bone.BONE_PT_transform' = None

CAMERA_PT_presets: 'bl_ui.properties_data_camera.CAMERA_PT_presets' = None

CLIP_HT_header: 'bl_ui.space_clip.CLIP_HT_header' = None

CLIP_MT_clip: 'bl_ui.space_clip.CLIP_MT_clip' = None

CLIP_MT_marker_pie: 'bl_ui.space_clip.CLIP_MT_marker_pie' = None

CLIP_MT_masking_editor_menus: 'bl_ui.space_clip.CLIP_MT_masking_editor_menus' = None

CLIP_MT_pivot_pie: 'bl_ui.space_clip.CLIP_MT_pivot_pie' = None

CLIP_MT_proxy: 'bl_ui.space_clip.CLIP_MT_proxy' = None

CLIP_MT_reconstruction: 'bl_ui.space_clip.CLIP_MT_reconstruction' = None

CLIP_MT_reconstruction_pie: 'bl_ui.space_clip.CLIP_MT_reconstruction_pie' = None

CLIP_MT_select: 'bl_ui.space_clip.CLIP_MT_select' = None

CLIP_MT_select_grouped: 'bl_ui.space_clip.CLIP_MT_select_grouped' = None

CLIP_MT_solving_pie: 'bl_ui.space_clip.CLIP_MT_solving_pie' = None

CLIP_MT_stabilize_2d_context_menu: 'bl_ui.space_clip.CLIP_MT_stabilize_2d_context_menu' = None

CLIP_MT_stabilize_2d_rotation_context_menu: 'bl_ui.space_clip.CLIP_MT_stabilize_2d_rotation_context_menu' = None

CLIP_MT_track: 'bl_ui.space_clip.CLIP_MT_track' = None

CLIP_MT_track_animation: 'bl_ui.space_clip.CLIP_MT_track_animation' = None

CLIP_MT_track_cleanup: 'bl_ui.space_clip.CLIP_MT_track_cleanup' = None

CLIP_MT_track_clear: 'bl_ui.space_clip.CLIP_MT_track_clear' = None

CLIP_MT_track_motion: 'bl_ui.space_clip.CLIP_MT_track_motion' = None

CLIP_MT_track_refine: 'bl_ui.space_clip.CLIP_MT_track_refine' = None

CLIP_MT_track_transform: 'bl_ui.space_clip.CLIP_MT_track_transform' = None

CLIP_MT_track_visibility: 'bl_ui.space_clip.CLIP_MT_track_visibility' = None

CLIP_MT_tracking_context_menu: 'bl_ui.space_clip.CLIP_MT_tracking_context_menu' = None

CLIP_MT_tracking_editor_menus: 'bl_ui.space_clip.CLIP_MT_tracking_editor_menus' = None

CLIP_MT_tracking_pie: 'bl_ui.space_clip.CLIP_MT_tracking_pie' = None

CLIP_MT_view: 'bl_ui.space_clip.CLIP_MT_view' = None

CLIP_MT_view_pie: 'bl_ui.space_clip.CLIP_MT_view_pie' = None

CLIP_MT_view_zoom: 'bl_ui.space_clip.CLIP_MT_view_zoom' = None

CLIP_OT_bundles_to_mesh: 'bl_operators.clip.CLIP_OT_bundles_to_mesh' = None

CLIP_OT_constraint_to_fcurve: 'bl_operators.clip.CLIP_OT_constraint_to_fcurve' = None

CLIP_OT_delete_proxy: 'bl_operators.clip.CLIP_OT_delete_proxy' = None

CLIP_OT_filter_tracks: 'bl_operators.clip.CLIP_OT_filter_tracks' = None

CLIP_OT_set_active_clip: 'bl_operators.clip.CLIP_OT_set_active_clip' = None

CLIP_OT_set_viewport_background: 'bl_operators.clip.CLIP_OT_set_viewport_background' = None

CLIP_OT_setup_tracking_scene: 'bl_operators.clip.CLIP_OT_setup_tracking_scene' = None

CLIP_OT_track_settings_as_default: 'bl_operators.clip.CLIP_OT_track_settings_as_default' = None

CLIP_OT_track_settings_to_track: 'bl_operators.clip.CLIP_OT_track_settings_to_track' = None

CLIP_OT_track_to_empty: 'bl_operators.clip.CLIP_OT_track_to_empty' = None

CLIP_PT_2d_cursor: 'bl_ui.space_clip.CLIP_PT_2d_cursor' = None

CLIP_PT_active_mask_point: 'bl_ui.space_clip.CLIP_PT_active_mask_point' = None

CLIP_PT_active_mask_spline: 'bl_ui.space_clip.CLIP_PT_active_mask_spline' = None

CLIP_PT_annotation: 'bl_ui.space_clip.CLIP_PT_annotation' = None

CLIP_PT_camera_presets: 'bl_ui.space_clip.CLIP_PT_camera_presets' = None

CLIP_PT_clip_display: 'bl_ui.space_clip.CLIP_PT_clip_display' = None

CLIP_PT_display: 'bl_ui.space_clip.CLIP_PT_display' = None

CLIP_PT_footage: 'bl_ui.space_clip.CLIP_PT_footage' = None

CLIP_PT_marker: 'bl_ui.space_clip.CLIP_PT_marker' = None

CLIP_PT_marker_display: 'bl_ui.space_clip.CLIP_PT_marker_display' = None

CLIP_PT_mask: 'bl_ui.space_clip.CLIP_PT_mask' = None

CLIP_PT_mask_display: 'bl_ui.space_clip.CLIP_PT_mask_display' = None

CLIP_PT_mask_layers: 'bl_ui.space_clip.CLIP_PT_mask_layers' = None

CLIP_PT_objects: 'bl_ui.space_clip.CLIP_PT_objects' = None

CLIP_PT_plane_track: 'bl_ui.space_clip.CLIP_PT_plane_track' = None

CLIP_PT_proxy: 'bl_ui.space_clip.CLIP_PT_proxy' = None

CLIP_PT_stabilization: 'bl_ui.space_clip.CLIP_PT_stabilization' = None

CLIP_PT_tools_cleanup: 'bl_ui.space_clip.CLIP_PT_tools_cleanup' = None

CLIP_PT_tools_clip: 'bl_ui.space_clip.CLIP_PT_tools_clip' = None

CLIP_PT_tools_geometry: 'bl_ui.space_clip.CLIP_PT_tools_geometry' = None

CLIP_PT_tools_grease_pencil_draw: 'bl_ui.space_clip.CLIP_PT_tools_grease_pencil_draw' = None

CLIP_PT_tools_marker: 'bl_ui.space_clip.CLIP_PT_tools_marker' = None

CLIP_PT_tools_mask_tools: 'bl_ui.space_clip.CLIP_PT_tools_mask_tools' = None

CLIP_PT_tools_mask_transforms: 'bl_ui.space_clip.CLIP_PT_tools_mask_transforms' = None

CLIP_PT_tools_object: 'bl_ui.space_clip.CLIP_PT_tools_object' = None

CLIP_PT_tools_orientation: 'bl_ui.space_clip.CLIP_PT_tools_orientation' = None

CLIP_PT_tools_plane_tracking: 'bl_ui.space_clip.CLIP_PT_tools_plane_tracking' = None

CLIP_PT_tools_scenesetup: 'bl_ui.space_clip.CLIP_PT_tools_scenesetup' = None

CLIP_PT_tools_solve: 'bl_ui.space_clip.CLIP_PT_tools_solve' = None

CLIP_PT_tools_tracking: 'bl_ui.space_clip.CLIP_PT_tools_tracking' = None

CLIP_PT_track: 'bl_ui.space_clip.CLIP_PT_track' = None

CLIP_PT_track_color_presets: 'bl_ui.space_clip.CLIP_PT_track_color_presets' = None

CLIP_PT_track_settings: 'bl_ui.space_clip.CLIP_PT_track_settings' = None

CLIP_PT_track_settings_extras: 'bl_ui.space_clip.CLIP_PT_track_settings_extras' = None

CLIP_PT_tracking_camera: 'bl_ui.space_clip.CLIP_PT_tracking_camera' = None

CLIP_PT_tracking_lens: 'bl_ui.space_clip.CLIP_PT_tracking_lens' = None

CLIP_PT_tracking_settings: 'bl_ui.space_clip.CLIP_PT_tracking_settings' = None

CLIP_PT_tracking_settings_extras: 'bl_ui.space_clip.CLIP_PT_tracking_settings_extras' = None

CLIP_PT_tracking_settings_presets: 'bl_ui.space_clip.CLIP_PT_tracking_settings_presets' = None

CLIP_UL_tracking_objects: 'bl_ui.space_clip.CLIP_UL_tracking_objects' = None

CLOTH_PT_presets: 'bl_ui.properties_physics_cloth.CLOTH_PT_presets' = None

COLLECTION_MT_context_menu: 'bl_ui.properties_object.COLLECTION_MT_context_menu' = None

COLLECTION_PT_collection_flags: 'bl_ui.properties_collection.COLLECTION_PT_collection_flags' = None

COLLECTION_PT_instancing: 'bl_ui.properties_collection.COLLECTION_PT_instancing' = None

COLLECTION_PT_lineart_collection: 'bl_ui.properties_collection.COLLECTION_PT_lineart_collection' = None

CONSOLE_HT_header: 'bl_ui.space_console.CONSOLE_HT_header' = None

CONSOLE_MT_console: 'bl_ui.space_console.CONSOLE_MT_console' = None

CONSOLE_MT_context_menu: 'bl_ui.space_console.CONSOLE_MT_context_menu' = None

CONSOLE_MT_editor_menus: 'bl_ui.space_console.CONSOLE_MT_editor_menus' = None

CONSOLE_MT_language: 'bl_ui.space_console.CONSOLE_MT_language' = None

CONSOLE_MT_view: 'bl_ui.space_console.CONSOLE_MT_view' = None

CONSTRAINT_OT_add_target: 'bl_operators.constraint.CONSTRAINT_OT_add_target' = None

CONSTRAINT_OT_disable_keep_transform: 'bl_operators.constraint.CONSTRAINT_OT_disable_keep_transform' = None

CONSTRAINT_OT_normalize_target_weights: 'bl_operators.constraint.CONSTRAINT_OT_normalize_target_weights' = None

CONSTRAINT_OT_remove_target: 'bl_operators.constraint.CONSTRAINT_OT_remove_target' = None

DATA_MT_bone_group_context_menu: 'bl_ui.properties_data_armature.DATA_MT_bone_group_context_menu' = None

DATA_PT_EEVEE_light: 'bl_ui.properties_data_light.DATA_PT_EEVEE_light' = None

DATA_PT_EEVEE_light_distance: 'bl_ui.properties_data_light.DATA_PT_EEVEE_light_distance' = None

DATA_PT_EEVEE_shadow: 'bl_ui.properties_data_light.DATA_PT_EEVEE_shadow' = None

DATA_PT_EEVEE_shadow_cascaded_shadow_map: 'bl_ui.properties_data_light.DATA_PT_EEVEE_shadow_cascaded_shadow_map' = None

DATA_PT_EEVEE_shadow_contact: 'bl_ui.properties_data_light.DATA_PT_EEVEE_shadow_contact' = None

DATA_PT_active_spline: 'bl_ui.properties_data_curve.DATA_PT_active_spline' = None

DATA_PT_area: 'bl_ui.properties_data_light.DATA_PT_area' = None

DATA_PT_bone_groups: 'bl_ui.properties_data_armature.DATA_PT_bone_groups' = None

DATA_PT_camera: 'bl_ui.properties_data_camera.DATA_PT_camera' = None

DATA_PT_camera_background_image: 'bl_ui.properties_data_camera.DATA_PT_camera_background_image' = None

DATA_PT_camera_display: 'bl_ui.properties_data_camera.DATA_PT_camera_display' = None

DATA_PT_camera_display_composition_guides: 'bl_ui.properties_data_camera.DATA_PT_camera_display_composition_guides' = None

DATA_PT_camera_dof: 'bl_ui.properties_data_camera.DATA_PT_camera_dof' = None

DATA_PT_camera_dof_aperture: 'bl_ui.properties_data_camera.DATA_PT_camera_dof_aperture' = None

DATA_PT_camera_safe_areas: 'bl_ui.properties_data_camera.DATA_PT_camera_safe_areas' = None

DATA_PT_camera_safe_areas_center_cut: 'bl_ui.properties_data_camera.DATA_PT_camera_safe_areas_center_cut' = None

DATA_PT_camera_stereoscopy: 'bl_ui.properties_data_camera.DATA_PT_camera_stereoscopy' = None

DATA_PT_cone: 'bl_ui.properties_data_speaker.DATA_PT_cone' = None

DATA_PT_context_arm: 'bl_ui.properties_data_armature.DATA_PT_context_arm' = None

DATA_PT_context_camera: 'bl_ui.properties_data_camera.DATA_PT_context_camera' = None

DATA_PT_context_curve: 'bl_ui.properties_data_curve.DATA_PT_context_curve' = None

DATA_PT_context_gpencil: 'bl_ui.properties_data_gpencil.DATA_PT_context_gpencil' = None

DATA_PT_context_hair: 'bl_ui.properties_data_hair.DATA_PT_context_hair' = None

DATA_PT_context_lattice: 'bl_ui.properties_data_lattice.DATA_PT_context_lattice' = None

DATA_PT_context_light: 'bl_ui.properties_data_light.DATA_PT_context_light' = None

DATA_PT_context_lightprobe: 'bl_ui.properties_data_lightprobe.DATA_PT_context_lightprobe' = None

DATA_PT_context_mesh: 'bl_ui.properties_data_mesh.DATA_PT_context_mesh' = None

DATA_PT_context_metaball: 'bl_ui.properties_data_metaball.DATA_PT_context_metaball' = None

DATA_PT_context_pointcloud: 'bl_ui.properties_data_pointcloud.DATA_PT_context_pointcloud' = None

DATA_PT_context_speaker: 'bl_ui.properties_data_speaker.DATA_PT_context_speaker' = None

DATA_PT_context_volume: 'bl_ui.properties_data_volume.DATA_PT_context_volume' = None

DATA_PT_curve_texture_space: 'bl_ui.properties_data_curve.DATA_PT_curve_texture_space' = None

DATA_PT_custom_props_arm: 'bl_ui.properties_data_armature.DATA_PT_custom_props_arm' = None

DATA_PT_custom_props_camera: 'bl_ui.properties_data_camera.DATA_PT_custom_props_camera' = None

DATA_PT_custom_props_curve: 'bl_ui.properties_data_curve.DATA_PT_custom_props_curve' = None

DATA_PT_custom_props_gpencil: 'bl_ui.properties_data_gpencil.DATA_PT_custom_props_gpencil' = None

DATA_PT_custom_props_hair: 'bl_ui.properties_data_hair.DATA_PT_custom_props_hair' = None

DATA_PT_custom_props_lattice: 'bl_ui.properties_data_lattice.DATA_PT_custom_props_lattice' = None

DATA_PT_custom_props_light: 'bl_ui.properties_data_light.DATA_PT_custom_props_light' = None

DATA_PT_custom_props_mesh: 'bl_ui.properties_data_mesh.DATA_PT_custom_props_mesh' = None

DATA_PT_custom_props_metaball: 'bl_ui.properties_data_metaball.DATA_PT_custom_props_metaball' = None

DATA_PT_custom_props_pointcloud: 'bl_ui.properties_data_pointcloud.DATA_PT_custom_props_pointcloud' = None

DATA_PT_custom_props_speaker: 'bl_ui.properties_data_speaker.DATA_PT_custom_props_speaker' = None

DATA_PT_custom_props_volume: 'bl_ui.properties_data_volume.DATA_PT_custom_props_volume' = None

DATA_PT_customdata: 'bl_ui.properties_data_mesh.DATA_PT_customdata' = None

DATA_PT_display: 'bl_ui.properties_data_armature.DATA_PT_display' = None

DATA_PT_distance: 'bl_ui.properties_data_speaker.DATA_PT_distance' = None

DATA_PT_empty: 'bl_ui.properties_data_empty.DATA_PT_empty' = None

DATA_PT_empty_image: 'bl_ui.properties_data_empty.DATA_PT_empty_image' = None

DATA_PT_face_maps: 'bl_ui.properties_data_mesh.DATA_PT_face_maps' = None

DATA_PT_falloff_curve: 'bl_ui.properties_data_light.DATA_PT_falloff_curve' = None

DATA_PT_font: 'bl_ui.properties_data_curve.DATA_PT_font' = None

DATA_PT_font_transform: 'bl_ui.properties_data_curve.DATA_PT_font_transform' = None

DATA_PT_geometry_curve: 'bl_ui.properties_data_curve.DATA_PT_geometry_curve' = None

DATA_PT_geometry_curve_bevel: 'bl_ui.properties_data_curve.DATA_PT_geometry_curve_bevel' = None

DATA_PT_geometry_curve_start_end: 'bl_ui.properties_data_curve.DATA_PT_geometry_curve_start_end' = None

DATA_PT_gpencil_canvas: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_canvas' = None

DATA_PT_gpencil_display: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_display' = None

DATA_PT_gpencil_layer_adjustments: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_layer_adjustments' = None

DATA_PT_gpencil_layer_display: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_layer_display' = None

DATA_PT_gpencil_layer_masks: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_layer_masks' = None

DATA_PT_gpencil_layer_relations: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_layer_relations' = None

DATA_PT_gpencil_layer_transform: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_layer_transform' = None

DATA_PT_gpencil_layers: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_layers' = None

DATA_PT_gpencil_modifiers: 'bl_ui.properties_data_modifier.DATA_PT_gpencil_modifiers' = None

DATA_PT_gpencil_onion_skinning: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_onion_skinning' = None

DATA_PT_gpencil_onion_skinning_custom_colors: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_onion_skinning_custom_colors' = None

DATA_PT_gpencil_onion_skinning_display: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_onion_skinning_display' = None

DATA_PT_gpencil_strokes: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_strokes' = None

DATA_PT_gpencil_vertex_groups: 'bl_ui.properties_data_gpencil.DATA_PT_gpencil_vertex_groups' = None

DATA_PT_hair_attributes: 'bl_ui.properties_data_hair.DATA_PT_hair_attributes' = None

DATA_PT_iksolver_itasc: 'bl_ui.properties_data_armature.DATA_PT_iksolver_itasc' = None

DATA_PT_lattice: 'bl_ui.properties_data_lattice.DATA_PT_lattice' = None

DATA_PT_lens: 'bl_ui.properties_data_camera.DATA_PT_lens' = None

DATA_PT_light: 'bl_ui.properties_data_light.DATA_PT_light' = None

DATA_PT_lightprobe: 'bl_ui.properties_data_lightprobe.DATA_PT_lightprobe' = None

DATA_PT_lightprobe_display: 'bl_ui.properties_data_lightprobe.DATA_PT_lightprobe_display' = None

DATA_PT_lightprobe_parallax: 'bl_ui.properties_data_lightprobe.DATA_PT_lightprobe_parallax' = None

DATA_PT_lightprobe_visibility: 'bl_ui.properties_data_lightprobe.DATA_PT_lightprobe_visibility' = None

DATA_PT_mball_texture_space: 'bl_ui.properties_data_metaball.DATA_PT_mball_texture_space' = None

DATA_PT_mesh_attributes: 'bl_ui.properties_data_mesh.DATA_PT_mesh_attributes' = None

DATA_PT_metaball: 'bl_ui.properties_data_metaball.DATA_PT_metaball' = None

DATA_PT_metaball_element: 'bl_ui.properties_data_metaball.DATA_PT_metaball_element' = None

DATA_PT_modifiers: 'bl_ui.properties_data_modifier.DATA_PT_modifiers' = None

DATA_PT_motion_paths: 'bl_ui.properties_data_armature.DATA_PT_motion_paths' = None

DATA_PT_motion_paths_display: 'bl_ui.properties_data_armature.DATA_PT_motion_paths_display' = None

DATA_PT_normals: 'bl_ui.properties_data_mesh.DATA_PT_normals' = None

DATA_PT_paragraph: 'bl_ui.properties_data_curve.DATA_PT_paragraph' = None

DATA_PT_paragraph_alignment: 'bl_ui.properties_data_curve.DATA_PT_paragraph_alignment' = None

DATA_PT_paragraph_spacing: 'bl_ui.properties_data_curve.DATA_PT_paragraph_spacing' = None

DATA_PT_pathanim: 'bl_ui.properties_data_curve.DATA_PT_pathanim' = None

DATA_PT_pointcloud_attributes: 'bl_ui.properties_data_pointcloud.DATA_PT_pointcloud_attributes' = None

DATA_PT_pose_library: 'bl_ui.properties_data_armature.DATA_PT_pose_library' = None

DATA_PT_preview: 'bl_ui.properties_data_light.DATA_PT_preview' = None

DATA_PT_remesh: 'bl_ui.properties_data_mesh.DATA_PT_remesh' = None

DATA_PT_sculpt_vertex_colors: 'bl_ui.properties_data_mesh.DATA_PT_sculpt_vertex_colors' = None

DATA_PT_shader_fx: 'bl_ui.properties_data_shaderfx.DATA_PT_shader_fx' = None

DATA_PT_shape_curve: 'bl_ui.properties_data_curve.DATA_PT_shape_curve' = None

DATA_PT_shape_keys: 'bl_ui.properties_data_mesh.DATA_PT_shape_keys' = None

DATA_PT_skeleton: 'bl_ui.properties_data_armature.DATA_PT_skeleton' = None

DATA_PT_speaker: 'bl_ui.properties_data_speaker.DATA_PT_speaker' = None

DATA_PT_spot: 'bl_ui.properties_data_light.DATA_PT_spot' = None

DATA_PT_text_boxes: 'bl_ui.properties_data_curve.DATA_PT_text_boxes' = None

DATA_PT_texture_space: 'bl_ui.properties_data_mesh.DATA_PT_texture_space' = None

DATA_PT_uv_texture: 'bl_ui.properties_data_mesh.DATA_PT_uv_texture' = None

DATA_PT_vertex_colors: 'bl_ui.properties_data_mesh.DATA_PT_vertex_colors' = None

DATA_PT_vertex_groups: 'bl_ui.properties_data_mesh.DATA_PT_vertex_groups' = None

DATA_PT_volume_file: 'bl_ui.properties_data_volume.DATA_PT_volume_file' = None

DATA_PT_volume_grids: 'bl_ui.properties_data_volume.DATA_PT_volume_grids' = None

DATA_PT_volume_render: 'bl_ui.properties_data_volume.DATA_PT_volume_render' = None

DATA_PT_volume_viewport_display: 'bl_ui.properties_data_volume.DATA_PT_volume_viewport_display' = None

DATA_PT_volume_viewport_display_slicing: 'bl_ui.properties_data_volume.DATA_PT_volume_viewport_display_slicing' = None

DOPESHEET_HT_header: 'bl_ui.space_dopesheet.DOPESHEET_HT_header' = None

DOPESHEET_MT_channel: 'bl_ui.space_dopesheet.DOPESHEET_MT_channel' = None

DOPESHEET_MT_channel_context_menu: 'bl_ui.space_dopesheet.DOPESHEET_MT_channel_context_menu' = None

DOPESHEET_MT_context_menu: 'bl_ui.space_dopesheet.DOPESHEET_MT_context_menu' = None

DOPESHEET_MT_delete: 'bl_ui.space_dopesheet.DOPESHEET_MT_delete' = None

DOPESHEET_MT_editor_menus: 'bl_ui.space_dopesheet.DOPESHEET_MT_editor_menus' = None

DOPESHEET_MT_gpencil_channel: 'bl_ui.space_dopesheet.DOPESHEET_MT_gpencil_channel' = None

DOPESHEET_MT_gpencil_key: 'bl_ui.space_dopesheet.DOPESHEET_MT_gpencil_key' = None

DOPESHEET_MT_key: 'bl_ui.space_dopesheet.DOPESHEET_MT_key' = None

DOPESHEET_MT_key_transform: 'bl_ui.space_dopesheet.DOPESHEET_MT_key_transform' = None

DOPESHEET_MT_marker: 'bl_ui.space_dopesheet.DOPESHEET_MT_marker' = None

DOPESHEET_MT_select: 'bl_ui.space_dopesheet.DOPESHEET_MT_select' = None

DOPESHEET_MT_snap_pie: 'bl_ui.space_dopesheet.DOPESHEET_MT_snap_pie' = None

DOPESHEET_MT_view: 'bl_ui.space_dopesheet.DOPESHEET_MT_view' = None

DOPESHEET_MT_view_pie: 'bl_ui.space_dopesheet.DOPESHEET_MT_view_pie' = None

DOPESHEET_PT_action: 'bl_ui.space_dopesheet.DOPESHEET_PT_action' = None

DOPESHEET_PT_filters: 'bl_ui.space_dopesheet.DOPESHEET_PT_filters' = None

DOPESHEET_PT_gpencil_layer_adjustments: 'bl_ui.space_dopesheet.DOPESHEET_PT_gpencil_layer_adjustments' = None

DOPESHEET_PT_gpencil_layer_display: 'bl_ui.space_dopesheet.DOPESHEET_PT_gpencil_layer_display' = None

DOPESHEET_PT_gpencil_layer_masks: 'bl_ui.space_dopesheet.DOPESHEET_PT_gpencil_layer_masks' = None

DOPESHEET_PT_gpencil_layer_relations: 'bl_ui.space_dopesheet.DOPESHEET_PT_gpencil_layer_relations' = None

DOPESHEET_PT_gpencil_layer_transform: 'bl_ui.space_dopesheet.DOPESHEET_PT_gpencil_layer_transform' = None

DOPESHEET_PT_gpencil_mode: 'bl_ui.space_dopesheet.DOPESHEET_PT_gpencil_mode' = None

EEVEE_MATERIAL_PT_context_material: 'bl_ui.properties_material.EEVEE_MATERIAL_PT_context_material' = None

EEVEE_MATERIAL_PT_settings: 'bl_ui.properties_material.EEVEE_MATERIAL_PT_settings' = None

EEVEE_MATERIAL_PT_surface: 'bl_ui.properties_material.EEVEE_MATERIAL_PT_surface' = None

EEVEE_MATERIAL_PT_viewport_settings: 'bl_ui.properties_material.EEVEE_MATERIAL_PT_viewport_settings' = None

EEVEE_MATERIAL_PT_volume: 'bl_ui.properties_material.EEVEE_MATERIAL_PT_volume' = None

EEVEE_WORLD_PT_mist: 'bl_ui.properties_world.EEVEE_WORLD_PT_mist' = None

EEVEE_WORLD_PT_surface: 'bl_ui.properties_world.EEVEE_WORLD_PT_surface' = None

EEVEE_WORLD_PT_volume: 'bl_ui.properties_world.EEVEE_WORLD_PT_volume' = None

FILEBROWSER_HT_header: 'bl_ui.space_filebrowser.FILEBROWSER_HT_header' = None

FILEBROWSER_MT_bookmarks_context_menu: 'bl_ui.space_filebrowser.FILEBROWSER_MT_bookmarks_context_menu' = None

FILEBROWSER_MT_context_menu: 'bl_ui.space_filebrowser.FILEBROWSER_MT_context_menu' = None

FILEBROWSER_MT_editor_menus: 'bl_ui.space_filebrowser.FILEBROWSER_MT_editor_menus' = None

FILEBROWSER_MT_select: 'bl_ui.space_filebrowser.FILEBROWSER_MT_select' = None

FILEBROWSER_MT_view: 'bl_ui.space_filebrowser.FILEBROWSER_MT_view' = None

FILEBROWSER_PT_advanced_filter: 'bl_ui.space_filebrowser.FILEBROWSER_PT_advanced_filter' = None

FILEBROWSER_PT_bookmarks_favorites: 'bl_ui.space_filebrowser.FILEBROWSER_PT_bookmarks_favorites' = None

FILEBROWSER_PT_bookmarks_recents: 'bl_ui.space_filebrowser.FILEBROWSER_PT_bookmarks_recents' = None

FILEBROWSER_PT_bookmarks_system: 'bl_ui.space_filebrowser.FILEBROWSER_PT_bookmarks_system' = None

FILEBROWSER_PT_bookmarks_volumes: 'bl_ui.space_filebrowser.FILEBROWSER_PT_bookmarks_volumes' = None

FILEBROWSER_PT_directory_path: 'bl_ui.space_filebrowser.FILEBROWSER_PT_directory_path' = None

FILEBROWSER_PT_display: 'bl_ui.space_filebrowser.FILEBROWSER_PT_display' = None

FILEBROWSER_PT_filter: 'bl_ui.space_filebrowser.FILEBROWSER_PT_filter' = None

FILEBROWSER_UL_dir: 'bl_ui.space_filebrowser.FILEBROWSER_UL_dir' = None

FLUID_PT_presets: 'bl_ui.properties_physics_fluid.FLUID_PT_presets' = None

GPENCIL_MT_cleanup: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_cleanup' = None

GPENCIL_MT_gpencil_draw_delete: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_gpencil_draw_delete' = None

GPENCIL_MT_gpencil_vertex_group: 'bl_ui.properties_data_gpencil.GPENCIL_MT_gpencil_vertex_group' = None

GPENCIL_MT_layer_active: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_layer_active' = None

GPENCIL_MT_layer_context_menu: 'bl_ui.properties_data_gpencil.GPENCIL_MT_layer_context_menu' = None

GPENCIL_MT_layer_mask_menu: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_layer_mask_menu' = None

GPENCIL_MT_material_active: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_material_active' = None

GPENCIL_MT_material_context_menu: 'bl_ui.properties_material_gpencil.GPENCIL_MT_material_context_menu' = None

GPENCIL_MT_move_to_layer: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_move_to_layer' = None

GPENCIL_MT_snap: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_snap' = None

GPENCIL_MT_snap_pie: 'bl_ui.properties_grease_pencil_common.GPENCIL_MT_snap_pie' = None

GPENCIL_UL_annotation_layer: 'bl_ui.properties_grease_pencil_common.GPENCIL_UL_annotation_layer' = None

GPENCIL_UL_layer: 'bl_ui.properties_grease_pencil_common.GPENCIL_UL_layer' = None

GPENCIL_UL_masks: 'bl_ui.properties_grease_pencil_common.GPENCIL_UL_masks' = None

GPENCIL_UL_matslots: 'bl_ui.properties_material_gpencil.GPENCIL_UL_matslots' = None

GPENCIL_UL_vgroups: 'bl_ui.properties_data_gpencil.GPENCIL_UL_vgroups' = None

GRAPH_HT_header: 'bl_ui.space_graph.GRAPH_HT_header' = None

GRAPH_MT_channel: 'bl_ui.space_graph.GRAPH_MT_channel' = None

GRAPH_MT_channel_context_menu: 'bl_ui.space_graph.GRAPH_MT_channel_context_menu' = None

GRAPH_MT_context_menu: 'bl_ui.space_graph.GRAPH_MT_context_menu' = None

GRAPH_MT_delete: 'bl_ui.space_graph.GRAPH_MT_delete' = None

GRAPH_MT_editor_menus: 'bl_ui.space_graph.GRAPH_MT_editor_menus' = None

GRAPH_MT_key: 'bl_ui.space_graph.GRAPH_MT_key' = None

GRAPH_MT_key_snap: 'bl_ui.space_graph.GRAPH_MT_key_snap' = None

GRAPH_MT_key_transform: 'bl_ui.space_graph.GRAPH_MT_key_transform' = None

GRAPH_MT_marker: 'bl_ui.space_graph.GRAPH_MT_marker' = None

GRAPH_MT_pivot_pie: 'bl_ui.space_graph.GRAPH_MT_pivot_pie' = None

GRAPH_MT_select: 'bl_ui.space_graph.GRAPH_MT_select' = None

GRAPH_MT_snap_pie: 'bl_ui.space_graph.GRAPH_MT_snap_pie' = None

GRAPH_MT_view: 'bl_ui.space_graph.GRAPH_MT_view' = None

GRAPH_MT_view_pie: 'bl_ui.space_graph.GRAPH_MT_view_pie' = None

GRAPH_PT_filters: 'bl_ui.space_graph.GRAPH_PT_filters' = None

HAIR_MT_add_attribute: 'bl_ui.properties_data_hair.HAIR_MT_add_attribute' = None

HAIR_UL_attributes: 'bl_ui.properties_data_hair.HAIR_UL_attributes' = None

IMAGE_HT_header: 'bl_ui.space_image.IMAGE_HT_header' = None

IMAGE_HT_tool_header: 'bl_ui.space_image.IMAGE_HT_tool_header' = None

IMAGE_MT_editor_menus: 'bl_ui.space_image.IMAGE_MT_editor_menus' = None

IMAGE_MT_image: 'bl_ui.space_image.IMAGE_MT_image' = None

IMAGE_MT_image_flip: 'bl_ui.space_image.IMAGE_MT_image_flip' = None

IMAGE_MT_image_invert: 'bl_ui.space_image.IMAGE_MT_image_invert' = None

IMAGE_MT_mask_context_menu: 'bl_ui.space_image.IMAGE_MT_mask_context_menu' = None

IMAGE_MT_pivot_pie: 'bl_ui.space_image.IMAGE_MT_pivot_pie' = None

IMAGE_MT_select: 'bl_ui.space_image.IMAGE_MT_select' = None

IMAGE_MT_select_linked: 'bl_ui.space_image.IMAGE_MT_select_linked' = None

IMAGE_MT_uvs: 'bl_ui.space_image.IMAGE_MT_uvs' = None

IMAGE_MT_uvs_align: 'bl_ui.space_image.IMAGE_MT_uvs_align' = None

IMAGE_MT_uvs_context_menu: 'bl_ui.space_image.IMAGE_MT_uvs_context_menu' = None

IMAGE_MT_uvs_merge: 'bl_ui.space_image.IMAGE_MT_uvs_merge' = None

IMAGE_MT_uvs_mirror: 'bl_ui.space_image.IMAGE_MT_uvs_mirror' = None

IMAGE_MT_uvs_select_mode: 'bl_ui.space_image.IMAGE_MT_uvs_select_mode' = None

IMAGE_MT_uvs_showhide: 'bl_ui.space_image.IMAGE_MT_uvs_showhide' = None

IMAGE_MT_uvs_snap: 'bl_ui.space_image.IMAGE_MT_uvs_snap' = None

IMAGE_MT_uvs_snap_pie: 'bl_ui.space_image.IMAGE_MT_uvs_snap_pie' = None

IMAGE_MT_uvs_split: 'bl_ui.space_image.IMAGE_MT_uvs_split' = None

IMAGE_MT_uvs_transform: 'bl_ui.space_image.IMAGE_MT_uvs_transform' = None

IMAGE_MT_uvs_unwrap: 'bl_ui.space_image.IMAGE_MT_uvs_unwrap' = None

IMAGE_MT_view: 'bl_ui.space_image.IMAGE_MT_view' = None

IMAGE_MT_view_pie: 'bl_ui.space_image.IMAGE_MT_view_pie' = None

IMAGE_MT_view_zoom: 'bl_ui.space_image.IMAGE_MT_view_zoom' = None

IMAGE_PT_active_mask_point: 'bl_ui.space_image.IMAGE_PT_active_mask_point' = None

IMAGE_PT_active_mask_spline: 'bl_ui.space_image.IMAGE_PT_active_mask_spline' = None

IMAGE_PT_active_tool: 'bl_ui.space_image.IMAGE_PT_active_tool' = None

IMAGE_PT_annotation: 'bl_ui.space_image.IMAGE_PT_annotation' = None

IMAGE_PT_custom_grid: 'bl_ui.space_image.IMAGE_PT_custom_grid' = None

IMAGE_PT_image_properties: 'bl_ui.space_image.IMAGE_PT_image_properties' = None

IMAGE_PT_mask: 'bl_ui.space_image.IMAGE_PT_mask' = None

IMAGE_PT_mask_display: 'bl_ui.space_image.IMAGE_PT_mask_display' = None

IMAGE_PT_mask_layers: 'bl_ui.space_image.IMAGE_PT_mask_layers' = None

IMAGE_PT_overlay: 'bl_ui.space_image.IMAGE_PT_overlay' = None

IMAGE_PT_overlay_image: 'bl_ui.space_image.IMAGE_PT_overlay_image' = None

IMAGE_PT_overlay_texture_paint: 'bl_ui.space_image.IMAGE_PT_overlay_texture_paint' = None

IMAGE_PT_overlay_uv_edit: 'bl_ui.space_image.IMAGE_PT_overlay_uv_edit' = None

IMAGE_PT_overlay_uv_edit_geometry: 'bl_ui.space_image.IMAGE_PT_overlay_uv_edit_geometry' = None

IMAGE_PT_paint_clone: 'bl_ui.space_image.IMAGE_PT_paint_clone' = None

IMAGE_PT_paint_color: 'bl_ui.space_image.IMAGE_PT_paint_color' = None

IMAGE_PT_paint_curve: 'bl_ui.space_image.IMAGE_PT_paint_curve' = None

IMAGE_PT_paint_select: 'bl_ui.space_image.IMAGE_PT_paint_select' = None

IMAGE_PT_paint_settings: 'bl_ui.space_image.IMAGE_PT_paint_settings' = None

IMAGE_PT_paint_settings_advanced: 'bl_ui.space_image.IMAGE_PT_paint_settings_advanced' = None

IMAGE_PT_paint_stroke: 'bl_ui.space_image.IMAGE_PT_paint_stroke' = None

IMAGE_PT_paint_stroke_smooth_stroke: 'bl_ui.space_image.IMAGE_PT_paint_stroke_smooth_stroke' = None

IMAGE_PT_paint_swatches: 'bl_ui.space_image.IMAGE_PT_paint_swatches' = None

IMAGE_PT_proportional_edit: 'bl_ui.space_image.IMAGE_PT_proportional_edit' = None

IMAGE_PT_render_slots: 'bl_ui.space_image.IMAGE_PT_render_slots' = None

IMAGE_PT_sample_line: 'bl_ui.space_image.IMAGE_PT_sample_line' = None

IMAGE_PT_scope_sample: 'bl_ui.space_image.IMAGE_PT_scope_sample' = None

IMAGE_PT_snapping: 'bl_ui.space_image.IMAGE_PT_snapping' = None

IMAGE_PT_tools_active: 'bl_ui.space_toolsystem_toolbar.IMAGE_PT_tools_active' = None

IMAGE_PT_tools_brush_display: 'bl_ui.space_image.IMAGE_PT_tools_brush_display' = None

IMAGE_PT_tools_brush_texture: 'bl_ui.space_image.IMAGE_PT_tools_brush_texture' = None

IMAGE_PT_tools_imagepaint_symmetry: 'bl_ui.space_image.IMAGE_PT_tools_imagepaint_symmetry' = None

IMAGE_PT_tools_mask_texture: 'bl_ui.space_image.IMAGE_PT_tools_mask_texture' = None

IMAGE_PT_udim_grid: 'bl_ui.space_image.IMAGE_PT_udim_grid' = None

IMAGE_PT_udim_tiles: 'bl_ui.space_image.IMAGE_PT_udim_tiles' = None

IMAGE_PT_uv_cursor: 'bl_ui.space_image.IMAGE_PT_uv_cursor' = None

IMAGE_PT_uv_sculpt_brush_select: 'bl_ui.space_image.IMAGE_PT_uv_sculpt_brush_select' = None

IMAGE_PT_uv_sculpt_brush_settings: 'bl_ui.space_image.IMAGE_PT_uv_sculpt_brush_settings' = None

IMAGE_PT_uv_sculpt_curve: 'bl_ui.space_image.IMAGE_PT_uv_sculpt_curve' = None

IMAGE_PT_uv_sculpt_options: 'bl_ui.space_image.IMAGE_PT_uv_sculpt_options' = None

IMAGE_PT_view_display: 'bl_ui.space_image.IMAGE_PT_view_display' = None

IMAGE_PT_view_histogram: 'bl_ui.space_image.IMAGE_PT_view_histogram' = None

IMAGE_PT_view_vectorscope: 'bl_ui.space_image.IMAGE_PT_view_vectorscope' = None

IMAGE_PT_view_waveform: 'bl_ui.space_image.IMAGE_PT_view_waveform' = None

IMAGE_UL_render_slots: 'bl_ui.space_image.IMAGE_UL_render_slots' = None

IMAGE_UL_udim_tiles: 'bl_ui.space_image.IMAGE_UL_udim_tiles' = None

INFO_HT_header: 'bl_ui.space_info.INFO_HT_header' = None

INFO_MT_area: 'bl_ui.space_info.INFO_MT_area' = None

INFO_MT_context_menu: 'bl_ui.space_info.INFO_MT_context_menu' = None

INFO_MT_editor_menus: 'bl_ui.space_info.INFO_MT_editor_menus' = None

INFO_MT_info: 'bl_ui.space_info.INFO_MT_info' = None

INFO_MT_view: 'bl_ui.space_info.INFO_MT_view' = None

MASK_MT_add: 'bl_ui.properties_mask_common.MASK_MT_add' = None

MASK_MT_animation: 'bl_ui.properties_mask_common.MASK_MT_animation' = None

MASK_MT_mask: 'bl_ui.properties_mask_common.MASK_MT_mask' = None

MASK_MT_select: 'bl_ui.properties_mask_common.MASK_MT_select' = None

MASK_MT_transform: 'bl_ui.properties_mask_common.MASK_MT_transform' = None

MASK_MT_visibility: 'bl_ui.properties_mask_common.MASK_MT_visibility' = None

MASK_UL_layers: 'bl_ui.properties_mask_common.MASK_UL_layers' = None

MATERIAL_MT_context_menu: 'bl_ui.properties_material.MATERIAL_MT_context_menu' = None

MATERIAL_PT_custom_props: 'bl_ui.properties_material.MATERIAL_PT_custom_props' = None

MATERIAL_PT_freestyle_line: 'bl_ui.properties_freestyle.MATERIAL_PT_freestyle_line' = None

MATERIAL_PT_gpencil_custom_props: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_custom_props' = None

MATERIAL_PT_gpencil_fillcolor: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_fillcolor' = None

MATERIAL_PT_gpencil_material_presets: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_material_presets' = None

MATERIAL_PT_gpencil_preview: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_preview' = None

MATERIAL_PT_gpencil_settings: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_settings' = None

MATERIAL_PT_gpencil_slots: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_slots' = None

MATERIAL_PT_gpencil_strokecolor: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_strokecolor' = None

MATERIAL_PT_gpencil_surface: 'bl_ui.properties_material_gpencil.MATERIAL_PT_gpencil_surface' = None

MATERIAL_PT_lineart: 'bl_ui.properties_material.MATERIAL_PT_lineart' = None

MATERIAL_PT_preview: 'bl_ui.properties_material.MATERIAL_PT_preview' = None

MATERIAL_PT_viewport: 'bl_ui.properties_material.MATERIAL_PT_viewport' = None

MATERIAL_UL_matslots: 'bl_ui.properties_material.MATERIAL_UL_matslots' = None

MESH_MT_shape_key_context_menu: 'bl_ui.properties_data_mesh.MESH_MT_shape_key_context_menu' = None

MESH_MT_vertex_group_context_menu: 'bl_ui.properties_data_mesh.MESH_MT_vertex_group_context_menu' = None

MESH_UL_attributes: 'bl_ui.properties_data_mesh.MESH_UL_attributes' = None

MESH_UL_fmaps: 'bl_ui.properties_data_mesh.MESH_UL_fmaps' = None

MESH_UL_shape_keys: 'bl_ui.properties_data_mesh.MESH_UL_shape_keys' = None

MESH_UL_uvmaps: 'bl_ui.properties_data_mesh.MESH_UL_uvmaps' = None

MESH_UL_vcols: 'bl_ui.properties_data_mesh.MESH_UL_vcols' = None

MESH_UL_vgroups: 'bl_ui.properties_data_mesh.MESH_UL_vgroups' = None

NLA_HT_header: 'bl_ui.space_nla.NLA_HT_header' = None

NLA_MT_add: 'bl_ui.space_nla.NLA_MT_add' = None

NLA_MT_channel_context_menu: 'bl_ui.space_nla.NLA_MT_channel_context_menu' = None

NLA_MT_context_menu: 'bl_ui.space_nla.NLA_MT_context_menu' = None

NLA_MT_edit: 'bl_ui.space_nla.NLA_MT_edit' = None

NLA_MT_edit_transform: 'bl_ui.space_nla.NLA_MT_edit_transform' = None

NLA_MT_editor_menus: 'bl_ui.space_nla.NLA_MT_editor_menus' = None

NLA_MT_marker: 'bl_ui.space_nla.NLA_MT_marker' = None

NLA_MT_select: 'bl_ui.space_nla.NLA_MT_select' = None

NLA_MT_snap_pie: 'bl_ui.space_nla.NLA_MT_snap_pie' = None

NLA_MT_view: 'bl_ui.space_nla.NLA_MT_view' = None

NLA_MT_view_pie: 'bl_ui.space_nla.NLA_MT_view_pie' = None

NLA_OT_bake: 'bl_operators.anim.NLA_OT_bake' = None

NLA_PT_action: 'bl_ui.space_nla.NLA_PT_action' = None

NLA_PT_filters: 'bl_ui.space_nla.NLA_PT_filters' = None

NODE_HT_header: 'bl_ui.space_node.NODE_HT_header' = None

NODE_MT_add: 'bl_ui.space_node.NODE_MT_add' = None

NODE_MT_context_menu: 'bl_ui.space_node.NODE_MT_context_menu' = None

NODE_MT_editor_menus: 'bl_ui.space_node.NODE_MT_editor_menus' = None

NODE_MT_node: 'bl_ui.space_node.NODE_MT_node' = None

NODE_MT_node_color_context_menu: 'bl_ui.space_node.NODE_MT_node_color_context_menu' = None

NODE_MT_select: 'bl_ui.space_node.NODE_MT_select' = None

NODE_MT_view: 'bl_ui.space_node.NODE_MT_view' = None

NODE_MT_view_pie: 'bl_ui.space_node.NODE_MT_view_pie' = None

NODE_OT_add_and_link_node: 'bl_operators.node.NODE_OT_add_and_link_node' = None

NODE_OT_add_node: 'bl_operators.node.NODE_OT_add_node' = None

NODE_OT_add_search: 'bl_operators.node.NODE_OT_add_search' = None

NODE_OT_collapse_hide_unused_toggle: 'bl_operators.node.NODE_OT_collapse_hide_unused_toggle' = None

NODE_OT_tree_path_parent: 'bl_operators.node.NODE_OT_tree_path_parent' = None

NODE_PT_active_node_color: 'bl_ui.space_node.NODE_PT_active_node_color' = None

NODE_PT_active_node_generic: 'bl_ui.space_node.NODE_PT_active_node_generic' = None

NODE_PT_active_node_properties: 'bl_ui.space_node.NODE_PT_active_node_properties' = None

NODE_PT_active_tool: 'bl_ui.space_node.NODE_PT_active_tool' = None

NODE_PT_annotation: 'bl_ui.space_node.NODE_PT_annotation' = None

NODE_PT_backdrop: 'bl_ui.space_node.NODE_PT_backdrop' = None

NODE_PT_material_slots: 'bl_ui.space_node.NODE_PT_material_slots' = None

NODE_PT_node_color_presets: 'bl_ui.space_node.NODE_PT_node_color_presets' = None

NODE_PT_node_tree_interface_inputs: 'bl_ui.space_node.NODE_PT_node_tree_interface_inputs' = None

NODE_PT_node_tree_interface_outputs: 'bl_ui.space_node.NODE_PT_node_tree_interface_outputs' = None

NODE_PT_overlay: 'bl_ui.space_node.NODE_PT_overlay' = None

NODE_PT_quality: 'bl_ui.space_node.NODE_PT_quality' = None

NODE_PT_texture_mapping: 'bl_ui.space_node.NODE_PT_texture_mapping' = None

NODE_PT_tools_active: 'bl_ui.space_toolsystem_toolbar.NODE_PT_tools_active' = None

NODE_UL_interface_sockets: 'bl_ui.space_node.NODE_UL_interface_sockets' = None

OBJECT_OT_assign_property_defaults: 'bl_operators.object.OBJECT_OT_assign_property_defaults' = None

OBJECT_PT_bActionConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bActionConstraint' = None

OBJECT_PT_bActionConstraint_action: 'bl_ui.properties_constraint.OBJECT_PT_bActionConstraint_action' = None

OBJECT_PT_bActionConstraint_target: 'bl_ui.properties_constraint.OBJECT_PT_bActionConstraint_target' = None

OBJECT_PT_bArmatureConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bArmatureConstraint' = None

OBJECT_PT_bArmatureConstraint_bones: 'bl_ui.properties_constraint.OBJECT_PT_bArmatureConstraint_bones' = None

OBJECT_PT_bCameraSolverConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bCameraSolverConstraint' = None

OBJECT_PT_bChildOfConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bChildOfConstraint' = None

OBJECT_PT_bClampToConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bClampToConstraint' = None

OBJECT_PT_bDampTrackConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bDampTrackConstraint' = None

OBJECT_PT_bDistLimitConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bDistLimitConstraint' = None

OBJECT_PT_bFollowPathConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bFollowPathConstraint' = None

OBJECT_PT_bFollowTrackConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bFollowTrackConstraint' = None

OBJECT_PT_bKinematicConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bKinematicConstraint' = None

OBJECT_PT_bLocLimitConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bLocLimitConstraint' = None

OBJECT_PT_bLocateLikeConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bLocateLikeConstraint' = None

OBJECT_PT_bLockTrackConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bLockTrackConstraint' = None

OBJECT_PT_bMinMaxConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bMinMaxConstraint' = None

OBJECT_PT_bObjectSolverConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bObjectSolverConstraint' = None

OBJECT_PT_bPivotConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bPivotConstraint' = None

OBJECT_PT_bPythonConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bPythonConstraint' = None

OBJECT_PT_bRotLimitConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bRotLimitConstraint' = None

OBJECT_PT_bRotateLikeConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bRotateLikeConstraint' = None

OBJECT_PT_bSameVolumeConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bSameVolumeConstraint' = None

OBJECT_PT_bShrinkwrapConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bShrinkwrapConstraint' = None

OBJECT_PT_bSizeLikeConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bSizeLikeConstraint' = None

OBJECT_PT_bSizeLimitConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bSizeLimitConstraint' = None

OBJECT_PT_bStretchToConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bStretchToConstraint' = None

OBJECT_PT_bTrackToConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bTrackToConstraint' = None

OBJECT_PT_bTransLikeConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bTransLikeConstraint' = None

OBJECT_PT_bTransformCacheConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bTransformCacheConstraint' = None

OBJECT_PT_bTransformConstraint: 'bl_ui.properties_constraint.OBJECT_PT_bTransformConstraint' = None

OBJECT_PT_bTransformConstraint_destination: 'bl_ui.properties_constraint.OBJECT_PT_bTransformConstraint_destination' = None

OBJECT_PT_bTransformConstraint_source: 'bl_ui.properties_constraint.OBJECT_PT_bTransformConstraint_source' = None

OBJECT_PT_collections: 'bl_ui.properties_object.OBJECT_PT_collections' = None

OBJECT_PT_constraints: 'bl_ui.properties_constraint.OBJECT_PT_constraints' = None

OBJECT_PT_context_object: 'bl_ui.properties_object.OBJECT_PT_context_object' = None

OBJECT_PT_custom_props: 'bl_ui.properties_object.OBJECT_PT_custom_props' = None

OBJECT_PT_delta_transform: 'bl_ui.properties_object.OBJECT_PT_delta_transform' = None

OBJECT_PT_display: 'bl_ui.properties_object.OBJECT_PT_display' = None

OBJECT_PT_instancing: 'bl_ui.properties_object.OBJECT_PT_instancing' = None

OBJECT_PT_instancing_size: 'bl_ui.properties_object.OBJECT_PT_instancing_size' = None

OBJECT_PT_lineart: 'bl_ui.properties_object.OBJECT_PT_lineart' = None

OBJECT_PT_motion_paths: 'bl_ui.properties_object.OBJECT_PT_motion_paths' = None

OBJECT_PT_motion_paths_display: 'bl_ui.properties_object.OBJECT_PT_motion_paths_display' = None

OBJECT_PT_relations: 'bl_ui.properties_object.OBJECT_PT_relations' = None

OBJECT_PT_transform: 'bl_ui.properties_object.OBJECT_PT_transform' = None

OBJECT_PT_visibility: 'bl_ui.properties_object.OBJECT_PT_visibility' = None

OUTLINER_HT_header: 'bl_ui.space_outliner.OUTLINER_HT_header' = None

OUTLINER_MT_asset: 'bl_ui.space_outliner.OUTLINER_MT_asset' = None

OUTLINER_MT_collection: 'bl_ui.space_outliner.OUTLINER_MT_collection' = None

OUTLINER_MT_collection_new: 'bl_ui.space_outliner.OUTLINER_MT_collection_new' = None

OUTLINER_MT_collection_view_layer: 'bl_ui.space_outliner.OUTLINER_MT_collection_view_layer' = None

OUTLINER_MT_collection_visibility: 'bl_ui.space_outliner.OUTLINER_MT_collection_visibility' = None

OUTLINER_MT_context_menu: 'bl_ui.space_outliner.OUTLINER_MT_context_menu' = None

OUTLINER_MT_context_menu_view: 'bl_ui.space_outliner.OUTLINER_MT_context_menu_view' = None

OUTLINER_MT_edit_datablocks: 'bl_ui.space_outliner.OUTLINER_MT_edit_datablocks' = None

OUTLINER_MT_editor_menus: 'bl_ui.space_outliner.OUTLINER_MT_editor_menus' = None

OUTLINER_MT_object: 'bl_ui.space_outliner.OUTLINER_MT_object' = None

OUTLINER_MT_view_pie: 'bl_ui.space_outliner.OUTLINER_MT_view_pie' = None

OUTLINER_PT_filter: 'bl_ui.space_outliner.OUTLINER_PT_filter' = None

PARTICLE_MT_context_menu: 'bl_ui.properties_particle.PARTICLE_MT_context_menu' = None

PARTICLE_PT_boidbrain: 'bl_ui.properties_particle.PARTICLE_PT_boidbrain' = None

PARTICLE_PT_cache: 'bl_ui.properties_particle.PARTICLE_PT_cache' = None

PARTICLE_PT_children: 'bl_ui.properties_particle.PARTICLE_PT_children' = None

PARTICLE_PT_children_clumping: 'bl_ui.properties_particle.PARTICLE_PT_children_clumping' = None

PARTICLE_PT_children_clumping_noise: 'bl_ui.properties_particle.PARTICLE_PT_children_clumping_noise' = None

PARTICLE_PT_children_kink: 'bl_ui.properties_particle.PARTICLE_PT_children_kink' = None

PARTICLE_PT_children_parting: 'bl_ui.properties_particle.PARTICLE_PT_children_parting' = None

PARTICLE_PT_children_roughness: 'bl_ui.properties_particle.PARTICLE_PT_children_roughness' = None

PARTICLE_PT_context_particles: 'bl_ui.properties_particle.PARTICLE_PT_context_particles' = None

PARTICLE_PT_custom_props: 'bl_ui.properties_particle.PARTICLE_PT_custom_props' = None

PARTICLE_PT_draw: 'bl_ui.properties_particle.PARTICLE_PT_draw' = None

PARTICLE_PT_emission: 'bl_ui.properties_particle.PARTICLE_PT_emission' = None

PARTICLE_PT_emission_source: 'bl_ui.properties_particle.PARTICLE_PT_emission_source' = None

PARTICLE_PT_field_weights: 'bl_ui.properties_particle.PARTICLE_PT_field_weights' = None

PARTICLE_PT_force_fields: 'bl_ui.properties_particle.PARTICLE_PT_force_fields' = None

PARTICLE_PT_force_fields_type1: 'bl_ui.properties_particle.PARTICLE_PT_force_fields_type1' = None

PARTICLE_PT_force_fields_type1_falloff: 'bl_ui.properties_particle.PARTICLE_PT_force_fields_type1_falloff' = None

PARTICLE_PT_force_fields_type2: 'bl_ui.properties_particle.PARTICLE_PT_force_fields_type2' = None

PARTICLE_PT_force_fields_type2_falloff: 'bl_ui.properties_particle.PARTICLE_PT_force_fields_type2_falloff' = None

PARTICLE_PT_hair_dynamics: 'bl_ui.properties_particle.PARTICLE_PT_hair_dynamics' = None

PARTICLE_PT_hair_dynamics_collision: 'bl_ui.properties_particle.PARTICLE_PT_hair_dynamics_collision' = None

PARTICLE_PT_hair_dynamics_presets: 'bl_ui.properties_particle.PARTICLE_PT_hair_dynamics_presets' = None

PARTICLE_PT_hair_dynamics_structure: 'bl_ui.properties_particle.PARTICLE_PT_hair_dynamics_structure' = None

PARTICLE_PT_hair_dynamics_volume: 'bl_ui.properties_particle.PARTICLE_PT_hair_dynamics_volume' = None

PARTICLE_PT_hair_shape: 'bl_ui.properties_particle.PARTICLE_PT_hair_shape' = None

PARTICLE_PT_physics: 'bl_ui.properties_particle.PARTICLE_PT_physics' = None

PARTICLE_PT_physics_boids_battle: 'bl_ui.properties_particle.PARTICLE_PT_physics_boids_battle' = None

PARTICLE_PT_physics_boids_misc: 'bl_ui.properties_particle.PARTICLE_PT_physics_boids_misc' = None

PARTICLE_PT_physics_boids_movement: 'bl_ui.properties_particle.PARTICLE_PT_physics_boids_movement' = None

PARTICLE_PT_physics_deflection: 'bl_ui.properties_particle.PARTICLE_PT_physics_deflection' = None

PARTICLE_PT_physics_fluid_advanced: 'bl_ui.properties_particle.PARTICLE_PT_physics_fluid_advanced' = None

PARTICLE_PT_physics_fluid_interaction: 'bl_ui.properties_particle.PARTICLE_PT_physics_fluid_interaction' = None

PARTICLE_PT_physics_fluid_springs: 'bl_ui.properties_particle.PARTICLE_PT_physics_fluid_springs' = None

PARTICLE_PT_physics_fluid_springs_advanced: 'bl_ui.properties_particle.PARTICLE_PT_physics_fluid_springs_advanced' = None

PARTICLE_PT_physics_fluid_springs_viscoelastic: 'bl_ui.properties_particle.PARTICLE_PT_physics_fluid_springs_viscoelastic' = None

PARTICLE_PT_physics_forces: 'bl_ui.properties_particle.PARTICLE_PT_physics_forces' = None

PARTICLE_PT_physics_integration: 'bl_ui.properties_particle.PARTICLE_PT_physics_integration' = None

PARTICLE_PT_physics_relations: 'bl_ui.properties_particle.PARTICLE_PT_physics_relations' = None

PARTICLE_PT_render: 'bl_ui.properties_particle.PARTICLE_PT_render' = None

PARTICLE_PT_render_collection: 'bl_ui.properties_particle.PARTICLE_PT_render_collection' = None

PARTICLE_PT_render_collection_use_count: 'bl_ui.properties_particle.PARTICLE_PT_render_collection_use_count' = None

PARTICLE_PT_render_extra: 'bl_ui.properties_particle.PARTICLE_PT_render_extra' = None

PARTICLE_PT_render_object: 'bl_ui.properties_particle.PARTICLE_PT_render_object' = None

PARTICLE_PT_render_path: 'bl_ui.properties_particle.PARTICLE_PT_render_path' = None

PARTICLE_PT_render_path_timing: 'bl_ui.properties_particle.PARTICLE_PT_render_path_timing' = None

PARTICLE_PT_rotation: 'bl_ui.properties_particle.PARTICLE_PT_rotation' = None

PARTICLE_PT_rotation_angular_velocity: 'bl_ui.properties_particle.PARTICLE_PT_rotation_angular_velocity' = None

PARTICLE_PT_textures: 'bl_ui.properties_particle.PARTICLE_PT_textures' = None

PARTICLE_PT_velocity: 'bl_ui.properties_particle.PARTICLE_PT_velocity' = None

PARTICLE_PT_vertexgroups: 'bl_ui.properties_particle.PARTICLE_PT_vertexgroups' = None

PARTICLE_UL_particle_systems: 'bl_ui.properties_particle.PARTICLE_UL_particle_systems' = None

PHYSICS_PT_adaptive_domain: 'bl_ui.properties_physics_fluid.PHYSICS_PT_adaptive_domain' = None

PHYSICS_PT_add: 'bl_ui.properties_physics_common.PHYSICS_PT_add' = None

PHYSICS_PT_borders: 'bl_ui.properties_physics_fluid.PHYSICS_PT_borders' = None

PHYSICS_PT_cache: 'bl_ui.properties_physics_fluid.PHYSICS_PT_cache' = None

PHYSICS_PT_cloth: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth' = None

PHYSICS_PT_cloth_cache: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_cache' = None

PHYSICS_PT_cloth_collision: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_collision' = None

PHYSICS_PT_cloth_damping: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_damping' = None

PHYSICS_PT_cloth_field_weights: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_field_weights' = None

PHYSICS_PT_cloth_internal_springs: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_internal_springs' = None

PHYSICS_PT_cloth_object_collision: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_object_collision' = None

PHYSICS_PT_cloth_physical_properties: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_physical_properties' = None

PHYSICS_PT_cloth_pressure: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_pressure' = None

PHYSICS_PT_cloth_property_weights: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_property_weights' = None

PHYSICS_PT_cloth_self_collision: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_self_collision' = None

PHYSICS_PT_cloth_shape: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_shape' = None

PHYSICS_PT_cloth_stiffness: 'bl_ui.properties_physics_cloth.PHYSICS_PT_cloth_stiffness' = None

PHYSICS_PT_collections: 'bl_ui.properties_physics_fluid.PHYSICS_PT_collections' = None

PHYSICS_PT_collision: 'bl_ui.properties_physics_field.PHYSICS_PT_collision' = None

PHYSICS_PT_collision_particle: 'bl_ui.properties_physics_field.PHYSICS_PT_collision_particle' = None

PHYSICS_PT_collision_softbody: 'bl_ui.properties_physics_field.PHYSICS_PT_collision_softbody' = None

PHYSICS_PT_diffusion: 'bl_ui.properties_physics_fluid.PHYSICS_PT_diffusion' = None

PHYSICS_PT_dp_brush_source: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_brush_source' = None

PHYSICS_PT_dp_brush_source_color_ramp: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_brush_source_color_ramp' = None

PHYSICS_PT_dp_brush_velocity: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_brush_velocity' = None

PHYSICS_PT_dp_brush_velocity_color_ramp: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_brush_velocity_color_ramp' = None

PHYSICS_PT_dp_brush_velocity_smudge: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_brush_velocity_smudge' = None

PHYSICS_PT_dp_brush_wave: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_brush_wave' = None

PHYSICS_PT_dp_cache: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_cache' = None

PHYSICS_PT_dp_canvas_initial_color: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_canvas_initial_color' = None

PHYSICS_PT_dp_canvas_output: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_canvas_output' = None

PHYSICS_PT_dp_canvas_output_paintmaps: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_canvas_output_paintmaps' = None

PHYSICS_PT_dp_canvas_output_wetmaps: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_canvas_output_wetmaps' = None

PHYSICS_PT_dp_effects: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_effects' = None

PHYSICS_PT_dp_effects_drip: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_effects_drip' = None

PHYSICS_PT_dp_effects_drip_weights: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_effects_drip_weights' = None

PHYSICS_PT_dp_effects_shrink: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_effects_shrink' = None

PHYSICS_PT_dp_effects_spread: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_effects_spread' = None

PHYSICS_PT_dp_surface_canvas: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_surface_canvas' = None

PHYSICS_PT_dp_surface_canvas_paint_dissolve: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_surface_canvas_paint_dissolve' = None

PHYSICS_PT_dp_surface_canvas_paint_dry: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dp_surface_canvas_paint_dry' = None

PHYSICS_PT_dynamic_paint: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dynamic_paint' = None

PHYSICS_PT_dynamic_paint_settings: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_PT_dynamic_paint_settings' = None

PHYSICS_PT_export: 'bl_ui.properties_physics_fluid.PHYSICS_PT_export' = None

PHYSICS_PT_field: 'bl_ui.properties_physics_field.PHYSICS_PT_field' = None

PHYSICS_PT_field_falloff: 'bl_ui.properties_physics_field.PHYSICS_PT_field_falloff' = None

PHYSICS_PT_field_falloff_angular: 'bl_ui.properties_physics_field.PHYSICS_PT_field_falloff_angular' = None

PHYSICS_PT_field_falloff_radial: 'bl_ui.properties_physics_field.PHYSICS_PT_field_falloff_radial' = None

PHYSICS_PT_field_settings: 'bl_ui.properties_physics_field.PHYSICS_PT_field_settings' = None

PHYSICS_PT_field_settings_kink: 'bl_ui.properties_physics_field.PHYSICS_PT_field_settings_kink' = None

PHYSICS_PT_field_settings_texture_select: 'bl_ui.properties_physics_field.PHYSICS_PT_field_settings_texture_select' = None

PHYSICS_PT_field_weights: 'bl_ui.properties_physics_fluid.PHYSICS_PT_field_weights' = None

PHYSICS_PT_fire: 'bl_ui.properties_physics_fluid.PHYSICS_PT_fire' = None

PHYSICS_PT_flow_initial_velocity: 'bl_ui.properties_physics_fluid.PHYSICS_PT_flow_initial_velocity' = None

PHYSICS_PT_flow_source: 'bl_ui.properties_physics_fluid.PHYSICS_PT_flow_source' = None

PHYSICS_PT_flow_texture: 'bl_ui.properties_physics_fluid.PHYSICS_PT_flow_texture' = None

PHYSICS_PT_fluid: 'bl_ui.properties_physics_fluid.PHYSICS_PT_fluid' = None

PHYSICS_PT_guide: 'bl_ui.properties_physics_fluid.PHYSICS_PT_guide' = None

PHYSICS_PT_liquid: 'bl_ui.properties_physics_fluid.PHYSICS_PT_liquid' = None

PHYSICS_PT_mesh: 'bl_ui.properties_physics_fluid.PHYSICS_PT_mesh' = None

PHYSICS_PT_noise: 'bl_ui.properties_physics_fluid.PHYSICS_PT_noise' = None

PHYSICS_PT_particles: 'bl_ui.properties_physics_fluid.PHYSICS_PT_particles' = None

PHYSICS_PT_rigid_body: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body' = None

PHYSICS_PT_rigid_body_collisions: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body_collisions' = None

PHYSICS_PT_rigid_body_collisions_collections: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body_collisions_collections' = None

PHYSICS_PT_rigid_body_collisions_sensitivity: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body_collisions_sensitivity' = None

PHYSICS_PT_rigid_body_collisions_surface: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body_collisions_surface' = None

PHYSICS_PT_rigid_body_constraint: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint' = None

PHYSICS_PT_rigid_body_constraint_limits: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_limits' = None

PHYSICS_PT_rigid_body_constraint_limits_angular: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_limits_angular' = None

PHYSICS_PT_rigid_body_constraint_limits_linear: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_limits_linear' = None

PHYSICS_PT_rigid_body_constraint_motor: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_motor' = None

PHYSICS_PT_rigid_body_constraint_motor_angular: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_motor_angular' = None

PHYSICS_PT_rigid_body_constraint_motor_linear: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_motor_linear' = None

PHYSICS_PT_rigid_body_constraint_objects: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_objects' = None

PHYSICS_PT_rigid_body_constraint_override_iterations: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_override_iterations' = None

PHYSICS_PT_rigid_body_constraint_settings: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_settings' = None

PHYSICS_PT_rigid_body_constraint_springs: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_springs' = None

PHYSICS_PT_rigid_body_constraint_springs_angular: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_springs_angular' = None

PHYSICS_PT_rigid_body_constraint_springs_linear: 'bl_ui.properties_physics_rigidbody_constraint.PHYSICS_PT_rigid_body_constraint_springs_linear' = None

PHYSICS_PT_rigid_body_dynamics: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body_dynamics' = None

PHYSICS_PT_rigid_body_dynamics_deactivation: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body_dynamics_deactivation' = None

PHYSICS_PT_rigid_body_settings: 'bl_ui.properties_physics_rigidbody.PHYSICS_PT_rigid_body_settings' = None

PHYSICS_PT_settings: 'bl_ui.properties_physics_fluid.PHYSICS_PT_settings' = None

PHYSICS_PT_smoke: 'bl_ui.properties_physics_fluid.PHYSICS_PT_smoke' = None

PHYSICS_PT_smoke_dissolve: 'bl_ui.properties_physics_fluid.PHYSICS_PT_smoke_dissolve' = None

PHYSICS_PT_softbody: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody' = None

PHYSICS_PT_softbody_cache: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_cache' = None

PHYSICS_PT_softbody_collision: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_collision' = None

PHYSICS_PT_softbody_edge: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_edge' = None

PHYSICS_PT_softbody_edge_aerodynamics: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_edge_aerodynamics' = None

PHYSICS_PT_softbody_edge_stiffness: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_edge_stiffness' = None

PHYSICS_PT_softbody_field_weights: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_field_weights' = None

PHYSICS_PT_softbody_goal: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_goal' = None

PHYSICS_PT_softbody_goal_settings: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_goal_settings' = None

PHYSICS_PT_softbody_goal_strengths: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_goal_strengths' = None

PHYSICS_PT_softbody_object: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_object' = None

PHYSICS_PT_softbody_simulation: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_simulation' = None

PHYSICS_PT_softbody_solver: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_solver' = None

PHYSICS_PT_softbody_solver_diagnostics: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_solver_diagnostics' = None

PHYSICS_PT_softbody_solver_helpers: 'bl_ui.properties_physics_softbody.PHYSICS_PT_softbody_solver_helpers' = None

PHYSICS_PT_viewport_display: 'bl_ui.properties_physics_fluid.PHYSICS_PT_viewport_display' = None

PHYSICS_PT_viewport_display_advanced: 'bl_ui.properties_physics_fluid.PHYSICS_PT_viewport_display_advanced' = None

PHYSICS_PT_viewport_display_color: 'bl_ui.properties_physics_fluid.PHYSICS_PT_viewport_display_color' = None

PHYSICS_PT_viewport_display_debug: 'bl_ui.properties_physics_fluid.PHYSICS_PT_viewport_display_debug' = None

PHYSICS_PT_viewport_display_slicing: 'bl_ui.properties_physics_fluid.PHYSICS_PT_viewport_display_slicing' = None

PHYSICS_PT_viscosity: 'bl_ui.properties_physics_fluid.PHYSICS_PT_viscosity' = None

PHYSICS_UL_dynapaint_surfaces: 'bl_ui.properties_physics_dynamicpaint.PHYSICS_UL_dynapaint_surfaces' = None

POINTCLOUD_MT_add_attribute: 'bl_ui.properties_data_pointcloud.POINTCLOUD_MT_add_attribute' = None

POINTCLOUD_UL_attributes: 'bl_ui.properties_data_pointcloud.POINTCLOUD_UL_attributes' = None

PREFERENCES_OT_addon_disable: 'bl_operators.userpref.PREFERENCES_OT_addon_disable' = None

PREFERENCES_OT_addon_enable: 'bl_operators.userpref.PREFERENCES_OT_addon_enable' = None

PREFERENCES_OT_addon_expand: 'bl_operators.userpref.PREFERENCES_OT_addon_expand' = None

PREFERENCES_OT_addon_install: 'bl_operators.userpref.PREFERENCES_OT_addon_install' = None

PREFERENCES_OT_addon_refresh: 'bl_operators.userpref.PREFERENCES_OT_addon_refresh' = None

PREFERENCES_OT_addon_remove: 'bl_operators.userpref.PREFERENCES_OT_addon_remove' = None

PREFERENCES_OT_addon_show: 'bl_operators.userpref.PREFERENCES_OT_addon_show' = None

PREFERENCES_OT_app_template_install: 'bl_operators.userpref.PREFERENCES_OT_app_template_install' = None

PREFERENCES_OT_copy_prev: 'bl_operators.userpref.PREFERENCES_OT_copy_prev' = None

PREFERENCES_OT_keyconfig_activate: 'bl_operators.userpref.PREFERENCES_OT_keyconfig_activate' = None

PREFERENCES_OT_keyconfig_export: 'bl_operators.userpref.PREFERENCES_OT_keyconfig_export' = None

PREFERENCES_OT_keyconfig_import: 'bl_operators.userpref.PREFERENCES_OT_keyconfig_import' = None

PREFERENCES_OT_keyconfig_remove: 'bl_operators.userpref.PREFERENCES_OT_keyconfig_remove' = None

PREFERENCES_OT_keyconfig_test: 'bl_operators.userpref.PREFERENCES_OT_keyconfig_test' = None

PREFERENCES_OT_keyitem_add: 'bl_operators.userpref.PREFERENCES_OT_keyitem_add' = None

PREFERENCES_OT_keyitem_remove: 'bl_operators.userpref.PREFERENCES_OT_keyitem_remove' = None

PREFERENCES_OT_keyitem_restore: 'bl_operators.userpref.PREFERENCES_OT_keyitem_restore' = None

PREFERENCES_OT_keymap_restore: 'bl_operators.userpref.PREFERENCES_OT_keymap_restore' = None

PREFERENCES_OT_studiolight_copy_settings: 'bl_operators.userpref.PREFERENCES_OT_studiolight_copy_settings' = None

PREFERENCES_OT_studiolight_install: 'bl_operators.userpref.PREFERENCES_OT_studiolight_install' = None

PREFERENCES_OT_studiolight_new: 'bl_operators.userpref.PREFERENCES_OT_studiolight_new' = None

PREFERENCES_OT_studiolight_show: 'bl_operators.userpref.PREFERENCES_OT_studiolight_show' = None

PREFERENCES_OT_studiolight_uninstall: 'bl_operators.userpref.PREFERENCES_OT_studiolight_uninstall' = None

PREFERENCES_OT_theme_install: 'bl_operators.userpref.PREFERENCES_OT_theme_install' = None

PROPERTIES_HT_header: 'bl_ui.space_properties.PROPERTIES_HT_header' = None

PROPERTIES_PT_navigation_bar: 'bl_ui.space_properties.PROPERTIES_PT_navigation_bar' = None

PROPERTIES_PT_options: 'bl_ui.space_properties.PROPERTIES_PT_options' = None

RENDER_MT_framerate_presets: 'bl_ui.properties_output.RENDER_MT_framerate_presets' = None

RENDER_MT_lineset_context_menu: 'bl_ui.properties_freestyle.RENDER_MT_lineset_context_menu' = None

RENDER_PT_color_management: 'bl_ui.properties_render.RENDER_PT_color_management' = None

RENDER_PT_color_management_curves: 'bl_ui.properties_render.RENDER_PT_color_management_curves' = None

RENDER_PT_context: 'bl_ui.properties_render.RENDER_PT_context' = None

RENDER_PT_eevee_ambient_occlusion: 'bl_ui.properties_render.RENDER_PT_eevee_ambient_occlusion' = None

RENDER_PT_eevee_bloom: 'bl_ui.properties_render.RENDER_PT_eevee_bloom' = None

RENDER_PT_eevee_depth_of_field: 'bl_ui.properties_render.RENDER_PT_eevee_depth_of_field' = None

RENDER_PT_eevee_film: 'bl_ui.properties_render.RENDER_PT_eevee_film' = None

RENDER_PT_eevee_hair: 'bl_ui.properties_render.RENDER_PT_eevee_hair' = None

RENDER_PT_eevee_indirect_lighting: 'bl_ui.properties_render.RENDER_PT_eevee_indirect_lighting' = None

RENDER_PT_eevee_indirect_lighting_display: 'bl_ui.properties_render.RENDER_PT_eevee_indirect_lighting_display' = None

RENDER_PT_eevee_motion_blur: 'bl_ui.properties_render.RENDER_PT_eevee_motion_blur' = None

RENDER_PT_eevee_performance: 'bl_ui.properties_render.RENDER_PT_eevee_performance' = None

RENDER_PT_eevee_sampling: 'bl_ui.properties_render.RENDER_PT_eevee_sampling' = None

RENDER_PT_eevee_screen_space_reflections: 'bl_ui.properties_render.RENDER_PT_eevee_screen_space_reflections' = None

RENDER_PT_eevee_shadows: 'bl_ui.properties_render.RENDER_PT_eevee_shadows' = None

RENDER_PT_eevee_subsurface_scattering: 'bl_ui.properties_render.RENDER_PT_eevee_subsurface_scattering' = None

RENDER_PT_eevee_volumetric: 'bl_ui.properties_render.RENDER_PT_eevee_volumetric' = None

RENDER_PT_eevee_volumetric_lighting: 'bl_ui.properties_render.RENDER_PT_eevee_volumetric_lighting' = None

RENDER_PT_eevee_volumetric_shadows: 'bl_ui.properties_render.RENDER_PT_eevee_volumetric_shadows' = None

RENDER_PT_encoding: 'bl_ui.properties_output.RENDER_PT_encoding' = None

RENDER_PT_encoding_audio: 'bl_ui.properties_output.RENDER_PT_encoding_audio' = None

RENDER_PT_encoding_video: 'bl_ui.properties_output.RENDER_PT_encoding_video' = None

RENDER_PT_ffmpeg_presets: 'bl_ui.properties_output.RENDER_PT_ffmpeg_presets' = None

RENDER_PT_format: 'bl_ui.properties_output.RENDER_PT_format' = None

RENDER_PT_format_presets: 'bl_ui.properties_output.RENDER_PT_format_presets' = None

RENDER_PT_frame_range: 'bl_ui.properties_output.RENDER_PT_frame_range' = None

RENDER_PT_freestyle: 'bl_ui.properties_freestyle.RENDER_PT_freestyle' = None

RENDER_PT_gpencil: 'bl_ui.properties_render.RENDER_PT_gpencil' = None

RENDER_PT_opengl_color: 'bl_ui.properties_render.RENDER_PT_opengl_color' = None

RENDER_PT_opengl_film: 'bl_ui.properties_render.RENDER_PT_opengl_film' = None

RENDER_PT_opengl_lighting: 'bl_ui.properties_render.RENDER_PT_opengl_lighting' = None

RENDER_PT_opengl_options: 'bl_ui.properties_render.RENDER_PT_opengl_options' = None

RENDER_PT_opengl_sampling: 'bl_ui.properties_render.RENDER_PT_opengl_sampling' = None

RENDER_PT_output: 'bl_ui.properties_output.RENDER_PT_output' = None

RENDER_PT_output_views: 'bl_ui.properties_output.RENDER_PT_output_views' = None

RENDER_PT_post_processing: 'bl_ui.properties_output.RENDER_PT_post_processing' = None

RENDER_PT_simplify: 'bl_ui.properties_render.RENDER_PT_simplify' = None

RENDER_PT_simplify_greasepencil: 'bl_ui.properties_render.RENDER_PT_simplify_greasepencil' = None

RENDER_PT_simplify_render: 'bl_ui.properties_render.RENDER_PT_simplify_render' = None

RENDER_PT_simplify_viewport: 'bl_ui.properties_render.RENDER_PT_simplify_viewport' = None

RENDER_PT_stamp: 'bl_ui.properties_output.RENDER_PT_stamp' = None

RENDER_PT_stamp_burn: 'bl_ui.properties_output.RENDER_PT_stamp_burn' = None

RENDER_PT_stamp_note: 'bl_ui.properties_output.RENDER_PT_stamp_note' = None

RENDER_PT_stereoscopy: 'bl_ui.properties_output.RENDER_PT_stereoscopy' = None

RENDER_PT_time_stretching: 'bl_ui.properties_output.RENDER_PT_time_stretching' = None

RENDER_UL_renderviews: 'bl_ui.properties_output.RENDER_UL_renderviews' = None

SAFE_AREAS_PT_presets: 'bl_ui.properties_data_camera.SAFE_AREAS_PT_presets' = None

SCENE_OT_freestyle_add_edge_marks_to_keying_set: 'bl_operators.freestyle.SCENE_OT_freestyle_add_edge_marks_to_keying_set' = None

SCENE_OT_freestyle_add_face_marks_to_keying_set: 'bl_operators.freestyle.SCENE_OT_freestyle_add_face_marks_to_keying_set' = None

SCENE_OT_freestyle_fill_range_by_selection: 'bl_operators.freestyle.SCENE_OT_freestyle_fill_range_by_selection' = None

SCENE_OT_freestyle_module_open: 'bl_operators.freestyle.SCENE_OT_freestyle_module_open' = None

SCENE_PT_audio: 'bl_ui.properties_scene.SCENE_PT_audio' = None

SCENE_PT_custom_props: 'bl_ui.properties_scene.SCENE_PT_custom_props' = None

SCENE_PT_keyframing_settings: 'bl_ui.properties_scene.SCENE_PT_keyframing_settings' = None

SCENE_PT_keying_set_paths: 'bl_ui.properties_scene.SCENE_PT_keying_set_paths' = None

SCENE_PT_keying_sets: 'bl_ui.properties_scene.SCENE_PT_keying_sets' = None

SCENE_PT_physics: 'bl_ui.properties_scene.SCENE_PT_physics' = None

SCENE_PT_rigid_body_cache: 'bl_ui.properties_scene.SCENE_PT_rigid_body_cache' = None

SCENE_PT_rigid_body_field_weights: 'bl_ui.properties_scene.SCENE_PT_rigid_body_field_weights' = None

SCENE_PT_rigid_body_world: 'bl_ui.properties_scene.SCENE_PT_rigid_body_world' = None

SCENE_PT_rigid_body_world_settings: 'bl_ui.properties_scene.SCENE_PT_rigid_body_world_settings' = None

SCENE_PT_scene: 'bl_ui.properties_scene.SCENE_PT_scene' = None

SCENE_PT_unit: 'bl_ui.properties_scene.SCENE_PT_unit' = None

SCENE_UL_keying_set_paths: 'bl_ui.properties_scene.SCENE_UL_keying_set_paths' = None

SEQUENCER_HT_header: 'bl_ui.space_sequencer.SEQUENCER_HT_header' = None

SEQUENCER_HT_tool_header: 'bl_ui.space_sequencer.SEQUENCER_HT_tool_header' = None

SEQUENCER_MT_add: 'bl_ui.space_sequencer.SEQUENCER_MT_add' = None

SEQUENCER_MT_add_effect: 'bl_ui.space_sequencer.SEQUENCER_MT_add_effect' = None

SEQUENCER_MT_add_empty: 'bl_ui.space_sequencer.SEQUENCER_MT_add_empty' = None

SEQUENCER_MT_add_transitions: 'bl_ui.space_sequencer.SEQUENCER_MT_add_transitions' = None

SEQUENCER_MT_change: 'bl_ui.space_sequencer.SEQUENCER_MT_change' = None

SEQUENCER_MT_color_tag_picker: 'bl_ui.space_sequencer.SEQUENCER_MT_color_tag_picker' = None

SEQUENCER_MT_context_menu: 'bl_ui.space_sequencer.SEQUENCER_MT_context_menu' = None

SEQUENCER_MT_editor_menus: 'bl_ui.space_sequencer.SEQUENCER_MT_editor_menus' = None

SEQUENCER_MT_image: 'bl_ui.space_sequencer.SEQUENCER_MT_image' = None

SEQUENCER_MT_image_apply: 'bl_ui.space_sequencer.SEQUENCER_MT_image_apply' = None

SEQUENCER_MT_image_clear: 'bl_ui.space_sequencer.SEQUENCER_MT_image_clear' = None

SEQUENCER_MT_image_transform: 'bl_ui.space_sequencer.SEQUENCER_MT_image_transform' = None

SEQUENCER_MT_marker: 'bl_ui.space_sequencer.SEQUENCER_MT_marker' = None

SEQUENCER_MT_navigation: 'bl_ui.space_sequencer.SEQUENCER_MT_navigation' = None

SEQUENCER_MT_pivot_pie: 'bl_ui.space_sequencer.SEQUENCER_MT_pivot_pie' = None

SEQUENCER_MT_preview_context_menu: 'bl_ui.space_sequencer.SEQUENCER_MT_preview_context_menu' = None

SEQUENCER_MT_preview_view_pie: 'bl_ui.space_sequencer.SEQUENCER_MT_preview_view_pie' = None

SEQUENCER_MT_preview_zoom: 'bl_ui.space_sequencer.SEQUENCER_MT_preview_zoom' = None

SEQUENCER_MT_proxy: 'bl_ui.space_sequencer.SEQUENCER_MT_proxy' = None

SEQUENCER_MT_range: 'bl_ui.space_sequencer.SEQUENCER_MT_range' = None

SEQUENCER_MT_select: 'bl_ui.space_sequencer.SEQUENCER_MT_select' = None

SEQUENCER_MT_select_channel: 'bl_ui.space_sequencer.SEQUENCER_MT_select_channel' = None

SEQUENCER_MT_select_handle: 'bl_ui.space_sequencer.SEQUENCER_MT_select_handle' = None

SEQUENCER_MT_select_linked: 'bl_ui.space_sequencer.SEQUENCER_MT_select_linked' = None

SEQUENCER_MT_strip: 'bl_ui.space_sequencer.SEQUENCER_MT_strip' = None

SEQUENCER_MT_strip_effect: 'bl_ui.space_sequencer.SEQUENCER_MT_strip_effect' = None

SEQUENCER_MT_strip_input: 'bl_ui.space_sequencer.SEQUENCER_MT_strip_input' = None

SEQUENCER_MT_strip_lock_mute: 'bl_ui.space_sequencer.SEQUENCER_MT_strip_lock_mute' = None

SEQUENCER_MT_strip_movie: 'bl_ui.space_sequencer.SEQUENCER_MT_strip_movie' = None

SEQUENCER_MT_strip_transform: 'bl_ui.space_sequencer.SEQUENCER_MT_strip_transform' = None

SEQUENCER_MT_view: 'bl_ui.space_sequencer.SEQUENCER_MT_view' = None

SEQUENCER_MT_view_cache: 'bl_ui.space_sequencer.SEQUENCER_MT_view_cache' = None

SEQUENCER_MT_view_pie: 'bl_ui.space_sequencer.SEQUENCER_MT_view_pie' = None

SEQUENCER_PT_active_tool: 'bl_ui.space_sequencer.SEQUENCER_PT_active_tool' = None

SEQUENCER_PT_adjust_color: 'bl_ui.space_sequencer.SEQUENCER_PT_adjust_color' = None

SEQUENCER_PT_adjust_comp: 'bl_ui.space_sequencer.SEQUENCER_PT_adjust_comp' = None

SEQUENCER_PT_adjust_crop: 'bl_ui.space_sequencer.SEQUENCER_PT_adjust_crop' = None

SEQUENCER_PT_adjust_sound: 'bl_ui.space_sequencer.SEQUENCER_PT_adjust_sound' = None

SEQUENCER_PT_adjust_transform: 'bl_ui.space_sequencer.SEQUENCER_PT_adjust_transform' = None

SEQUENCER_PT_adjust_video: 'bl_ui.space_sequencer.SEQUENCER_PT_adjust_video' = None

SEQUENCER_PT_annotation: 'bl_ui.space_sequencer.SEQUENCER_PT_annotation' = None

SEQUENCER_PT_annotation_onion: 'bl_ui.space_sequencer.SEQUENCER_PT_annotation_onion' = None

SEQUENCER_PT_cache_settings: 'bl_ui.space_sequencer.SEQUENCER_PT_cache_settings' = None

SEQUENCER_PT_color_tag_picker: 'bl_ui.space_sequencer.SEQUENCER_PT_color_tag_picker' = None

SEQUENCER_PT_custom_props: 'bl_ui.space_sequencer.SEQUENCER_PT_custom_props' = None

SEQUENCER_PT_effect: 'bl_ui.space_sequencer.SEQUENCER_PT_effect' = None

SEQUENCER_PT_effect_text_layout: 'bl_ui.space_sequencer.SEQUENCER_PT_effect_text_layout' = None

SEQUENCER_PT_effect_text_style: 'bl_ui.space_sequencer.SEQUENCER_PT_effect_text_style' = None

SEQUENCER_PT_frame_overlay: 'bl_ui.space_sequencer.SEQUENCER_PT_frame_overlay' = None

SEQUENCER_PT_gizmo_display: 'bl_ui.space_sequencer.SEQUENCER_PT_gizmo_display' = None

SEQUENCER_PT_mask: 'bl_ui.space_sequencer.SEQUENCER_PT_mask' = None

SEQUENCER_PT_modifiers: 'bl_ui.space_sequencer.SEQUENCER_PT_modifiers' = None

SEQUENCER_PT_overlay: 'bl_ui.space_sequencer.SEQUENCER_PT_overlay' = None

SEQUENCER_PT_preview: 'bl_ui.space_sequencer.SEQUENCER_PT_preview' = None

SEQUENCER_PT_preview_overlay: 'bl_ui.space_sequencer.SEQUENCER_PT_preview_overlay' = None

SEQUENCER_PT_proxy_settings: 'bl_ui.space_sequencer.SEQUENCER_PT_proxy_settings' = None

SEQUENCER_PT_scene: 'bl_ui.space_sequencer.SEQUENCER_PT_scene' = None

SEQUENCER_PT_sequencer_overlay: 'bl_ui.space_sequencer.SEQUENCER_PT_sequencer_overlay' = None

SEQUENCER_PT_snapping: 'bl_ui.space_sequencer.SEQUENCER_PT_snapping' = None

SEQUENCER_PT_source: 'bl_ui.space_sequencer.SEQUENCER_PT_source' = None

SEQUENCER_PT_strip: 'bl_ui.space_sequencer.SEQUENCER_PT_strip' = None

SEQUENCER_PT_strip_cache: 'bl_ui.space_sequencer.SEQUENCER_PT_strip_cache' = None

SEQUENCER_PT_strip_proxy: 'bl_ui.space_sequencer.SEQUENCER_PT_strip_proxy' = None

SEQUENCER_PT_time: 'bl_ui.space_sequencer.SEQUENCER_PT_time' = None

SEQUENCER_PT_tools_active: 'bl_ui.space_toolsystem_toolbar.SEQUENCER_PT_tools_active' = None

SEQUENCER_PT_view: 'bl_ui.space_sequencer.SEQUENCER_PT_view' = None

SEQUENCER_PT_view_cursor: 'bl_ui.space_sequencer.SEQUENCER_PT_view_cursor' = None

SEQUENCER_PT_view_safe_areas: 'bl_ui.space_sequencer.SEQUENCER_PT_view_safe_areas' = None

SEQUENCER_PT_view_safe_areas_center_cut: 'bl_ui.space_sequencer.SEQUENCER_PT_view_safe_areas_center_cut' = None

SPREADSHEET_HT_header: 'bl_ui.space_spreadsheet.SPREADSHEET_HT_header' = None

SPREADSHEET_OT_toggle_pin: 'bl_operators.spreadsheet.SPREADSHEET_OT_toggle_pin' = None

STATUSBAR_HT_header: 'bl_ui.space_statusbar.STATUSBAR_HT_header' = None

TEXTURE_MT_context_menu: 'bl_ui.properties_texture.TEXTURE_MT_context_menu' = None

TEXTURE_PT_blend: 'bl_ui.properties_texture.TEXTURE_PT_blend' = None

TEXTURE_PT_clouds: 'bl_ui.properties_texture.TEXTURE_PT_clouds' = None

TEXTURE_PT_colors: 'bl_ui.properties_texture.TEXTURE_PT_colors' = None

TEXTURE_PT_colors_ramp: 'bl_ui.properties_texture.TEXTURE_PT_colors_ramp' = None

TEXTURE_PT_context: 'bl_ui.properties_texture.TEXTURE_PT_context' = None

TEXTURE_PT_custom_props: 'bl_ui.properties_texture.TEXTURE_PT_custom_props' = None

TEXTURE_PT_distortednoise: 'bl_ui.properties_texture.TEXTURE_PT_distortednoise' = None

TEXTURE_PT_image: 'bl_ui.properties_texture.TEXTURE_PT_image' = None

TEXTURE_PT_image_alpha: 'bl_ui.properties_texture.TEXTURE_PT_image_alpha' = None

TEXTURE_PT_image_mapping: 'bl_ui.properties_texture.TEXTURE_PT_image_mapping' = None

TEXTURE_PT_image_mapping_crop: 'bl_ui.properties_texture.TEXTURE_PT_image_mapping_crop' = None

TEXTURE_PT_image_sampling: 'bl_ui.properties_texture.TEXTURE_PT_image_sampling' = None

TEXTURE_PT_image_settings: 'bl_ui.properties_texture.TEXTURE_PT_image_settings' = None

TEXTURE_PT_influence: 'bl_ui.properties_texture.TEXTURE_PT_influence' = None

TEXTURE_PT_magic: 'bl_ui.properties_texture.TEXTURE_PT_magic' = None

TEXTURE_PT_mapping: 'bl_ui.properties_texture.TEXTURE_PT_mapping' = None

TEXTURE_PT_marble: 'bl_ui.properties_texture.TEXTURE_PT_marble' = None

TEXTURE_PT_musgrave: 'bl_ui.properties_texture.TEXTURE_PT_musgrave' = None

TEXTURE_PT_node: 'bl_ui.properties_texture.TEXTURE_PT_node' = None

TEXTURE_PT_preview: 'bl_ui.properties_texture.TEXTURE_PT_preview' = None

TEXTURE_PT_stucci: 'bl_ui.properties_texture.TEXTURE_PT_stucci' = None

TEXTURE_PT_voronoi: 'bl_ui.properties_texture.TEXTURE_PT_voronoi' = None

TEXTURE_PT_voronoi_feature_weights: 'bl_ui.properties_texture.TEXTURE_PT_voronoi_feature_weights' = None

TEXTURE_PT_wood: 'bl_ui.properties_texture.TEXTURE_PT_wood' = None

TEXTURE_UL_texpaintslots: 'bl_ui.space_view3d_toolbar.TEXTURE_UL_texpaintslots' = None

TEXTURE_UL_texslots: 'bl_ui.properties_texture.TEXTURE_UL_texslots' = None

TEXT_HT_footer: 'bl_ui.space_text.TEXT_HT_footer' = None

TEXT_HT_header: 'bl_ui.space_text.TEXT_HT_header' = None

TEXT_MT_context_menu: 'bl_ui.space_text.TEXT_MT_context_menu' = None

TEXT_MT_edit: 'bl_ui.space_text.TEXT_MT_edit' = None

TEXT_MT_edit_to3d: 'bl_ui.space_text.TEXT_MT_edit_to3d' = None

TEXT_MT_editor_menus: 'bl_ui.space_text.TEXT_MT_editor_menus' = None

TEXT_MT_format: 'bl_ui.space_text.TEXT_MT_format' = None

TEXT_MT_select: 'bl_ui.space_text.TEXT_MT_select' = None

TEXT_MT_templates: 'bl_ui.space_text.TEXT_MT_templates' = None

TEXT_MT_templates_osl: 'bl_ui.space_text.TEXT_MT_templates_osl' = None

TEXT_MT_templates_py: 'bl_ui.space_text.TEXT_MT_templates_py' = None

TEXT_MT_text: 'bl_ui.space_text.TEXT_MT_text' = None

TEXT_MT_view: 'bl_ui.space_text.TEXT_MT_view' = None

TEXT_MT_view_navigation: 'bl_ui.space_text.TEXT_MT_view_navigation' = None

TEXT_PT_find: 'bl_ui.space_text.TEXT_PT_find' = None

TEXT_PT_properties: 'bl_ui.space_text.TEXT_PT_properties' = None

TIME_MT_cache: 'bl_ui.space_time.TIME_MT_cache' = None

TIME_MT_editor_menus: 'bl_ui.space_time.TIME_MT_editor_menus' = None

TIME_MT_marker: 'bl_ui.space_time.TIME_MT_marker' = None

TIME_MT_view: 'bl_ui.space_time.TIME_MT_view' = None

TIME_PT_auto_keyframing: 'bl_ui.space_time.TIME_PT_auto_keyframing' = None

TIME_PT_keyframing_settings: 'bl_ui.space_time.TIME_PT_keyframing_settings' = None

TIME_PT_playback: 'bl_ui.space_time.TIME_PT_playback' = None

TOPBAR_HT_upper_bar: 'bl_ui.space_topbar.TOPBAR_HT_upper_bar' = None

TOPBAR_MT_blender: 'bl_ui.space_topbar.TOPBAR_MT_blender' = None

TOPBAR_MT_blender_system: 'bl_ui.space_topbar.TOPBAR_MT_blender_system' = None

TOPBAR_MT_edit: 'bl_ui.space_topbar.TOPBAR_MT_edit' = None

TOPBAR_MT_edit_armature_add: 'bl_ui.space_view3d.TOPBAR_MT_edit_armature_add' = None

TOPBAR_MT_edit_curve_add: 'bl_ui.space_view3d.TOPBAR_MT_edit_curve_add' = None

TOPBAR_MT_editor_menus: 'bl_ui.space_topbar.TOPBAR_MT_editor_menus' = None

TOPBAR_MT_file: 'bl_ui.space_topbar.TOPBAR_MT_file' = None

TOPBAR_MT_file_cleanup: 'bl_ui.space_topbar.TOPBAR_MT_file_cleanup' = None

TOPBAR_MT_file_context_menu: 'bl_ui.space_topbar.TOPBAR_MT_file_context_menu' = None

TOPBAR_MT_file_defaults: 'bl_ui.space_topbar.TOPBAR_MT_file_defaults' = None

TOPBAR_MT_file_export: 'bl_ui.space_topbar.TOPBAR_MT_file_export' = None

TOPBAR_MT_file_external_data: 'bl_ui.space_topbar.TOPBAR_MT_file_external_data' = None

TOPBAR_MT_file_import: 'bl_ui.space_topbar.TOPBAR_MT_file_import' = None

TOPBAR_MT_file_new: 'bl_ui.space_topbar.TOPBAR_MT_file_new' = None

TOPBAR_MT_file_previews: 'bl_ui.space_topbar.TOPBAR_MT_file_previews' = None

TOPBAR_MT_file_recover: 'bl_ui.space_topbar.TOPBAR_MT_file_recover' = None

TOPBAR_MT_help: 'bl_ui.space_topbar.TOPBAR_MT_help' = None

TOPBAR_MT_render: 'bl_ui.space_topbar.TOPBAR_MT_render' = None

TOPBAR_MT_templates_more: 'bl_ui.space_topbar.TOPBAR_MT_templates_more' = None

TOPBAR_MT_window: 'bl_ui.space_topbar.TOPBAR_MT_window' = None

TOPBAR_MT_workspace_menu: 'bl_ui.space_topbar.TOPBAR_MT_workspace_menu' = None

TOPBAR_PT_annotation_layers: 'bl_ui.space_view3d.TOPBAR_PT_annotation_layers' = None

TOPBAR_PT_gpencil_layers: 'bl_ui.space_topbar.TOPBAR_PT_gpencil_layers' = None

TOPBAR_PT_gpencil_materials: 'bl_ui.space_view3d.TOPBAR_PT_gpencil_materials' = None

TOPBAR_PT_gpencil_primitive: 'bl_ui.space_topbar.TOPBAR_PT_gpencil_primitive' = None

TOPBAR_PT_gpencil_vertexcolor: 'bl_ui.space_view3d.TOPBAR_PT_gpencil_vertexcolor' = None

TOPBAR_PT_name: 'bl_ui.space_topbar.TOPBAR_PT_name' = None

TOPBAR_PT_tool_fallback: 'bl_ui.space_topbar.TOPBAR_PT_tool_fallback' = None

TOPBAR_PT_tool_settings_extra: 'bl_ui.space_topbar.TOPBAR_PT_tool_settings_extra' = None

UI_MT_list_item_context_menu: 'bl_ui.UI_MT_list_item_context_menu' = None

UI_UL_list: 'bl_ui.UI_UL_list' = None

USERPREF_HT_header: 'bl_ui.space_userpref.USERPREF_HT_header' = None

USERPREF_MT_editor_menus: 'bl_ui.space_userpref.USERPREF_MT_editor_menus' = None

USERPREF_MT_interface_theme_presets: 'bl_ui.space_userpref.USERPREF_MT_interface_theme_presets' = None

USERPREF_MT_keyconfigs: 'bl_ui.space_userpref.USERPREF_MT_keyconfigs' = None

USERPREF_MT_save_load: 'bl_ui.space_userpref.USERPREF_MT_save_load' = None

USERPREF_MT_view: 'bl_ui.space_userpref.USERPREF_MT_view' = None

USERPREF_PT_addons: 'bl_ui.space_userpref.USERPREF_PT_addons' = None

USERPREF_PT_animation_fcurves: 'bl_ui.space_userpref.USERPREF_PT_animation_fcurves' = None

USERPREF_PT_animation_keyframes: 'bl_ui.space_userpref.USERPREF_PT_animation_keyframes' = None

USERPREF_PT_animation_timeline: 'bl_ui.space_userpref.USERPREF_PT_animation_timeline' = None

USERPREF_PT_edit_annotations: 'bl_ui.space_userpref.USERPREF_PT_edit_annotations' = None

USERPREF_PT_edit_cursor: 'bl_ui.space_userpref.USERPREF_PT_edit_cursor' = None

USERPREF_PT_edit_gpencil: 'bl_ui.space_userpref.USERPREF_PT_edit_gpencil' = None

USERPREF_PT_edit_misc: 'bl_ui.space_userpref.USERPREF_PT_edit_misc' = None

USERPREF_PT_edit_objects: 'bl_ui.space_userpref.USERPREF_PT_edit_objects' = None

USERPREF_PT_edit_objects_duplicate_data: 'bl_ui.space_userpref.USERPREF_PT_edit_objects_duplicate_data' = None

USERPREF_PT_edit_objects_new: 'bl_ui.space_userpref.USERPREF_PT_edit_objects_new' = None

USERPREF_PT_edit_text_editor: 'bl_ui.space_userpref.USERPREF_PT_edit_text_editor' = None

USERPREF_PT_edit_weight_paint: 'bl_ui.space_userpref.USERPREF_PT_edit_weight_paint' = None

USERPREF_PT_experimental_debugging: 'bl_ui.space_userpref.USERPREF_PT_experimental_debugging' = None

USERPREF_PT_experimental_new_features: 'bl_ui.space_userpref.USERPREF_PT_experimental_new_features' = None

USERPREF_PT_experimental_prototypes: 'bl_ui.space_userpref.USERPREF_PT_experimental_prototypes' = None

USERPREF_PT_file_paths_applications: 'bl_ui.space_userpref.USERPREF_PT_file_paths_applications' = None

USERPREF_PT_file_paths_asset_libraries: 'bl_ui.space_userpref.USERPREF_PT_file_paths_asset_libraries' = None

USERPREF_PT_file_paths_data: 'bl_ui.space_userpref.USERPREF_PT_file_paths_data' = None

USERPREF_PT_file_paths_development: 'bl_ui.space_userpref.USERPREF_PT_file_paths_development' = None

USERPREF_PT_file_paths_render: 'bl_ui.space_userpref.USERPREF_PT_file_paths_render' = None

USERPREF_PT_input_keyboard: 'bl_ui.space_userpref.USERPREF_PT_input_keyboard' = None

USERPREF_PT_input_mouse: 'bl_ui.space_userpref.USERPREF_PT_input_mouse' = None

USERPREF_PT_input_ndof: 'bl_ui.space_userpref.USERPREF_PT_input_ndof' = None

USERPREF_PT_input_tablet: 'bl_ui.space_userpref.USERPREF_PT_input_tablet' = None

USERPREF_PT_interface_display: 'bl_ui.space_userpref.USERPREF_PT_interface_display' = None

USERPREF_PT_interface_editors: 'bl_ui.space_userpref.USERPREF_PT_interface_editors' = None

USERPREF_PT_interface_menus: 'bl_ui.space_userpref.USERPREF_PT_interface_menus' = None

USERPREF_PT_interface_menus_mouse_over: 'bl_ui.space_userpref.USERPREF_PT_interface_menus_mouse_over' = None

USERPREF_PT_interface_menus_pie: 'bl_ui.space_userpref.USERPREF_PT_interface_menus_pie' = None

USERPREF_PT_interface_statusbar: 'bl_ui.space_userpref.USERPREF_PT_interface_statusbar' = None

USERPREF_PT_interface_temporary_windows: 'bl_ui.space_userpref.USERPREF_PT_interface_temporary_windows' = None

USERPREF_PT_interface_text: 'bl_ui.space_userpref.USERPREF_PT_interface_text' = None

USERPREF_PT_interface_translation: 'bl_ui.space_userpref.USERPREF_PT_interface_translation' = None

USERPREF_PT_keymap: 'bl_ui.space_userpref.USERPREF_PT_keymap' = None

USERPREF_PT_navigation_bar: 'bl_ui.space_userpref.USERPREF_PT_navigation_bar' = None

USERPREF_PT_navigation_fly_walk: 'bl_ui.space_userpref.USERPREF_PT_navigation_fly_walk' = None

USERPREF_PT_navigation_fly_walk_gravity: 'bl_ui.space_userpref.USERPREF_PT_navigation_fly_walk_gravity' = None

USERPREF_PT_navigation_fly_walk_navigation: 'bl_ui.space_userpref.USERPREF_PT_navigation_fly_walk_navigation' = None

USERPREF_PT_navigation_orbit: 'bl_ui.space_userpref.USERPREF_PT_navigation_orbit' = None

USERPREF_PT_navigation_zoom: 'bl_ui.space_userpref.USERPREF_PT_navigation_zoom' = None

USERPREF_PT_ndof_settings: 'bl_ui.space_userpref.USERPREF_PT_ndof_settings' = None

USERPREF_PT_save_preferences: 'bl_ui.space_userpref.USERPREF_PT_save_preferences' = None

USERPREF_PT_saveload_autorun: 'bl_ui.space_userpref.USERPREF_PT_saveload_autorun' = None

USERPREF_PT_saveload_blend: 'bl_ui.space_userpref.USERPREF_PT_saveload_blend' = None

USERPREF_PT_saveload_blend_autosave: 'bl_ui.space_userpref.USERPREF_PT_saveload_blend_autosave' = None

USERPREF_PT_saveload_file_browser: 'bl_ui.space_userpref.USERPREF_PT_saveload_file_browser' = None

USERPREF_PT_studiolight_light_editor: 'bl_ui.space_userpref.USERPREF_PT_studiolight_light_editor' = None

USERPREF_PT_studiolight_lights: 'bl_ui.space_userpref.USERPREF_PT_studiolight_lights' = None

USERPREF_PT_studiolight_matcaps: 'bl_ui.space_userpref.USERPREF_PT_studiolight_matcaps' = None

USERPREF_PT_studiolight_world: 'bl_ui.space_userpref.USERPREF_PT_studiolight_world' = None

USERPREF_PT_system_cycles_devices: 'bl_ui.space_userpref.USERPREF_PT_system_cycles_devices' = None

USERPREF_PT_system_memory: 'bl_ui.space_userpref.USERPREF_PT_system_memory' = None

USERPREF_PT_system_os_settings: 'bl_ui.space_userpref.USERPREF_PT_system_os_settings' = None

USERPREF_PT_system_sound: 'bl_ui.space_userpref.USERPREF_PT_system_sound' = None

USERPREF_PT_system_video_sequencer: 'bl_ui.space_userpref.USERPREF_PT_system_video_sequencer' = None

USERPREF_PT_theme: 'bl_ui.space_userpref.USERPREF_PT_theme' = None

USERPREF_PT_theme_bone_color_sets: 'bl_ui.space_userpref.USERPREF_PT_theme_bone_color_sets' = None

USERPREF_PT_theme_collection_colors: 'bl_ui.space_userpref.USERPREF_PT_theme_collection_colors' = None

USERPREF_PT_theme_interface_gizmos: 'bl_ui.space_userpref.USERPREF_PT_theme_interface_gizmos' = None

USERPREF_PT_theme_interface_icons: 'bl_ui.space_userpref.USERPREF_PT_theme_interface_icons' = None

USERPREF_PT_theme_interface_state: 'bl_ui.space_userpref.USERPREF_PT_theme_interface_state' = None

USERPREF_PT_theme_interface_styles: 'bl_ui.space_userpref.USERPREF_PT_theme_interface_styles' = None

USERPREF_PT_theme_interface_transparent_checker: 'bl_ui.space_userpref.USERPREF_PT_theme_interface_transparent_checker' = None

USERPREF_PT_theme_strip_colors: 'bl_ui.space_userpref.USERPREF_PT_theme_strip_colors' = None

USERPREF_PT_theme_text_style: 'bl_ui.space_userpref.USERPREF_PT_theme_text_style' = None

USERPREF_PT_theme_user_interface: 'bl_ui.space_userpref.USERPREF_PT_theme_user_interface' = None

USERPREF_PT_viewport_display: 'bl_ui.space_userpref.USERPREF_PT_viewport_display' = None

USERPREF_PT_viewport_quality: 'bl_ui.space_userpref.USERPREF_PT_viewport_quality' = None

USERPREF_PT_viewport_selection: 'bl_ui.space_userpref.USERPREF_PT_viewport_selection' = None

USERPREF_PT_viewport_textures: 'bl_ui.space_userpref.USERPREF_PT_viewport_textures' = None

VIEW3D_HT_header: 'bl_ui.space_view3d.VIEW3D_HT_header' = None

VIEW3D_HT_tool_header: 'bl_ui.space_view3d.VIEW3D_HT_tool_header' = None

VIEW3D_MT_add: 'bl_ui.space_view3d.VIEW3D_MT_add' = None

VIEW3D_MT_angle_control: 'bl_ui.space_view3d.VIEW3D_MT_angle_control' = None

VIEW3D_MT_armature_add: 'bl_ui.space_view3d.VIEW3D_MT_armature_add' = None

VIEW3D_MT_armature_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_armature_context_menu' = None

VIEW3D_MT_assign_material: 'bl_ui.space_view3d.VIEW3D_MT_assign_material' = None

VIEW3D_MT_bone_options_disable: 'bl_ui.space_view3d.VIEW3D_MT_bone_options_disable' = None

VIEW3D_MT_bone_options_enable: 'bl_ui.space_view3d.VIEW3D_MT_bone_options_enable' = None

VIEW3D_MT_bone_options_toggle: 'bl_ui.space_view3d.VIEW3D_MT_bone_options_toggle' = None

VIEW3D_MT_brush_context_menu: 'bl_ui.space_view3d_toolbar.VIEW3D_MT_brush_context_menu' = None

VIEW3D_MT_brush_context_menu_paint_modes: 'bl_ui.space_view3d_toolbar.VIEW3D_MT_brush_context_menu_paint_modes' = None

VIEW3D_MT_brush_gpencil_context_menu: 'bl_ui.space_view3d_toolbar.VIEW3D_MT_brush_gpencil_context_menu' = None

VIEW3D_MT_brush_paint_modes: 'bl_ui.space_view3d.VIEW3D_MT_brush_paint_modes' = None

VIEW3D_MT_camera_add: 'bl_ui.space_view3d.VIEW3D_MT_camera_add' = None

VIEW3D_MT_curve_add: 'bl_ui.space_view3d.VIEW3D_MT_curve_add' = None

VIEW3D_MT_draw_gpencil: 'bl_ui.space_view3d.VIEW3D_MT_draw_gpencil' = None

VIEW3D_MT_edit_armature: 'bl_ui.space_view3d.VIEW3D_MT_edit_armature' = None

VIEW3D_MT_edit_armature_delete: 'bl_ui.space_view3d.VIEW3D_MT_edit_armature_delete' = None

VIEW3D_MT_edit_armature_names: 'bl_ui.space_view3d.VIEW3D_MT_edit_armature_names' = None

VIEW3D_MT_edit_armature_parent: 'bl_ui.space_view3d.VIEW3D_MT_edit_armature_parent' = None

VIEW3D_MT_edit_armature_roll: 'bl_ui.space_view3d.VIEW3D_MT_edit_armature_roll' = None

VIEW3D_MT_edit_curve: 'bl_ui.space_view3d.VIEW3D_MT_edit_curve' = None

VIEW3D_MT_edit_curve_clean: 'bl_ui.space_view3d.VIEW3D_MT_edit_curve_clean' = None

VIEW3D_MT_edit_curve_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_edit_curve_context_menu' = None

VIEW3D_MT_edit_curve_ctrlpoints: 'bl_ui.space_view3d.VIEW3D_MT_edit_curve_ctrlpoints' = None

VIEW3D_MT_edit_curve_delete: 'bl_ui.space_view3d.VIEW3D_MT_edit_curve_delete' = None

VIEW3D_MT_edit_curve_segments: 'bl_ui.space_view3d.VIEW3D_MT_edit_curve_segments' = None

VIEW3D_MT_edit_curve_showhide: 'bl_ui.space_view3d.VIEW3D_MT_edit_curve_showhide' = None

VIEW3D_MT_edit_font: 'bl_ui.space_view3d.VIEW3D_MT_edit_font' = None

VIEW3D_MT_edit_font_chars: 'bl_ui.space_view3d.VIEW3D_MT_edit_font_chars' = None

VIEW3D_MT_edit_font_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_edit_font_context_menu' = None

VIEW3D_MT_edit_font_delete: 'bl_ui.space_view3d.VIEW3D_MT_edit_font_delete' = None

VIEW3D_MT_edit_font_kerning: 'bl_ui.space_view3d.VIEW3D_MT_edit_font_kerning' = None

VIEW3D_MT_edit_gpencil: 'bl_ui.space_view3d.VIEW3D_MT_edit_gpencil' = None

VIEW3D_MT_edit_gpencil_delete: 'bl_ui.space_view3d.VIEW3D_MT_edit_gpencil_delete' = None

VIEW3D_MT_edit_gpencil_point: 'bl_ui.space_view3d.VIEW3D_MT_edit_gpencil_point' = None

VIEW3D_MT_edit_gpencil_showhide: 'bl_ui.space_view3d.VIEW3D_MT_edit_gpencil_showhide' = None

VIEW3D_MT_edit_gpencil_stroke: 'bl_ui.space_view3d.VIEW3D_MT_edit_gpencil_stroke' = None

VIEW3D_MT_edit_gpencil_transform: 'bl_ui.space_view3d.VIEW3D_MT_edit_gpencil_transform' = None

VIEW3D_MT_edit_lattice: 'bl_ui.space_view3d.VIEW3D_MT_edit_lattice' = None

VIEW3D_MT_edit_lattice_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_edit_lattice_context_menu' = None

VIEW3D_MT_edit_mesh: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh' = None

VIEW3D_MT_edit_mesh_clean: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_clean' = None

VIEW3D_MT_edit_mesh_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_context_menu' = None

VIEW3D_MT_edit_mesh_delete: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_delete' = None

VIEW3D_MT_edit_mesh_edges: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_edges' = None

VIEW3D_MT_edit_mesh_extrude: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_extrude' = None

VIEW3D_MT_edit_mesh_faces: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_faces' = None

VIEW3D_MT_edit_mesh_faces_data: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_faces_data' = None

VIEW3D_MT_edit_mesh_merge: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_merge' = None

VIEW3D_MT_edit_mesh_normals: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_normals' = None

VIEW3D_MT_edit_mesh_normals_average: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_normals_average' = None

VIEW3D_MT_edit_mesh_normals_select_strength: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_normals_select_strength' = None

VIEW3D_MT_edit_mesh_normals_set_strength: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_normals_set_strength' = None

VIEW3D_MT_edit_mesh_select_by_trait: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_select_by_trait' = None

VIEW3D_MT_edit_mesh_select_linked: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_select_linked' = None

VIEW3D_MT_edit_mesh_select_loops: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_select_loops' = None

VIEW3D_MT_edit_mesh_select_mode: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_select_mode' = None

VIEW3D_MT_edit_mesh_select_more_less: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_select_more_less' = None

VIEW3D_MT_edit_mesh_select_similar: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_select_similar' = None

VIEW3D_MT_edit_mesh_shading: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_shading' = None

VIEW3D_MT_edit_mesh_showhide: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_showhide' = None

VIEW3D_MT_edit_mesh_split: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_split' = None

VIEW3D_MT_edit_mesh_vertices: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_vertices' = None

VIEW3D_MT_edit_mesh_weights: 'bl_ui.space_view3d.VIEW3D_MT_edit_mesh_weights' = None

VIEW3D_MT_edit_meta: 'bl_ui.space_view3d.VIEW3D_MT_edit_meta' = None

VIEW3D_MT_edit_meta_showhide: 'bl_ui.space_view3d.VIEW3D_MT_edit_meta_showhide' = None

VIEW3D_MT_edit_metaball_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_edit_metaball_context_menu' = None

VIEW3D_MT_edit_surface: 'bl_ui.space_view3d.VIEW3D_MT_edit_surface' = None

VIEW3D_MT_editor_menus: 'bl_ui.space_view3d.VIEW3D_MT_editor_menus' = None

VIEW3D_MT_face_sets: 'bl_ui.space_view3d.VIEW3D_MT_face_sets' = None

VIEW3D_MT_face_sets_init: 'bl_ui.space_view3d.VIEW3D_MT_face_sets_init' = None

VIEW3D_MT_gpencil_animation: 'bl_ui.space_view3d.VIEW3D_MT_gpencil_animation' = None

VIEW3D_MT_gpencil_autoweights: 'bl_ui.space_view3d.VIEW3D_MT_gpencil_autoweights' = None

VIEW3D_MT_gpencil_edit_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_gpencil_edit_context_menu' = None

VIEW3D_MT_gpencil_simplify: 'bl_ui.space_view3d.VIEW3D_MT_gpencil_simplify' = None

VIEW3D_MT_gpencil_vertex_group: 'bl_ui.space_view3d.VIEW3D_MT_gpencil_vertex_group' = None

VIEW3D_MT_hook: 'bl_ui.space_view3d.VIEW3D_MT_hook' = None

VIEW3D_MT_image_add: 'bl_ui.space_view3d.VIEW3D_MT_image_add' = None

VIEW3D_MT_light_add: 'bl_ui.space_view3d.VIEW3D_MT_light_add' = None

VIEW3D_MT_lightprobe_add: 'bl_ui.space_view3d.VIEW3D_MT_lightprobe_add' = None

VIEW3D_MT_make_links: 'bl_ui.space_view3d.VIEW3D_MT_make_links' = None

VIEW3D_MT_make_single_user: 'bl_ui.space_view3d.VIEW3D_MT_make_single_user' = None

VIEW3D_MT_mask: 'bl_ui.space_view3d.VIEW3D_MT_mask' = None

VIEW3D_MT_mesh_add: 'bl_ui.space_view3d.VIEW3D_MT_mesh_add' = None

VIEW3D_MT_metaball_add: 'bl_ui.space_view3d.VIEW3D_MT_metaball_add' = None

VIEW3D_MT_mirror: 'bl_ui.space_view3d.VIEW3D_MT_mirror' = None

VIEW3D_MT_object: 'bl_ui.space_view3d.VIEW3D_MT_object' = None

VIEW3D_MT_object_animation: 'bl_ui.space_view3d.VIEW3D_MT_object_animation' = None

VIEW3D_MT_object_apply: 'bl_ui.space_view3d.VIEW3D_MT_object_apply' = None

VIEW3D_MT_object_asset: 'bl_ui.space_view3d.VIEW3D_MT_object_asset' = None

VIEW3D_MT_object_cleanup: 'bl_ui.space_view3d.VIEW3D_MT_object_cleanup' = None

VIEW3D_MT_object_clear: 'bl_ui.space_view3d.VIEW3D_MT_object_clear' = None

VIEW3D_MT_object_collection: 'bl_ui.space_view3d.VIEW3D_MT_object_collection' = None

VIEW3D_MT_object_constraints: 'bl_ui.space_view3d.VIEW3D_MT_object_constraints' = None

VIEW3D_MT_object_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_object_context_menu' = None

VIEW3D_MT_object_convert: 'bl_ui.space_view3d.VIEW3D_MT_object_convert' = None

VIEW3D_MT_object_mode_pie: 'bl_ui.space_view3d.VIEW3D_MT_object_mode_pie' = None

VIEW3D_MT_object_parent: 'bl_ui.space_view3d.VIEW3D_MT_object_parent' = None

VIEW3D_MT_object_quick_effects: 'bl_ui.space_view3d.VIEW3D_MT_object_quick_effects' = None

VIEW3D_MT_object_relations: 'bl_ui.space_view3d.VIEW3D_MT_object_relations' = None

VIEW3D_MT_object_rigid_body: 'bl_ui.space_view3d.VIEW3D_MT_object_rigid_body' = None

VIEW3D_MT_object_shading: 'bl_ui.space_view3d.VIEW3D_MT_object_shading' = None

VIEW3D_MT_object_showhide: 'bl_ui.space_view3d.VIEW3D_MT_object_showhide' = None

VIEW3D_MT_object_track: 'bl_ui.space_view3d.VIEW3D_MT_object_track' = None

VIEW3D_MT_orientations_pie: 'bl_ui.space_view3d.VIEW3D_MT_orientations_pie' = None

VIEW3D_MT_paint_gpencil: 'bl_ui.space_view3d.VIEW3D_MT_paint_gpencil' = None

VIEW3D_MT_paint_vertex: 'bl_ui.space_view3d.VIEW3D_MT_paint_vertex' = None

VIEW3D_MT_paint_weight: 'bl_ui.space_view3d.VIEW3D_MT_paint_weight' = None

VIEW3D_MT_paint_weight_lock: 'bl_ui.space_view3d.VIEW3D_MT_paint_weight_lock' = None

VIEW3D_MT_particle: 'bl_ui.space_view3d.VIEW3D_MT_particle' = None

VIEW3D_MT_particle_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_particle_context_menu' = None

VIEW3D_MT_particle_showhide: 'bl_ui.space_view3d.VIEW3D_MT_particle_showhide' = None

VIEW3D_MT_pivot_pie: 'bl_ui.space_view3d.VIEW3D_MT_pivot_pie' = None

VIEW3D_MT_pose: 'bl_ui.space_view3d.VIEW3D_MT_pose' = None

VIEW3D_MT_pose_apply: 'bl_ui.space_view3d.VIEW3D_MT_pose_apply' = None

VIEW3D_MT_pose_constraints: 'bl_ui.space_view3d.VIEW3D_MT_pose_constraints' = None

VIEW3D_MT_pose_context_menu: 'bl_ui.space_view3d.VIEW3D_MT_pose_context_menu' = None

VIEW3D_MT_pose_group: 'bl_ui.space_view3d.VIEW3D_MT_pose_group' = None

VIEW3D_MT_pose_ik: 'bl_ui.space_view3d.VIEW3D_MT_pose_ik' = None

VIEW3D_MT_pose_library: 'bl_ui.space_view3d.VIEW3D_MT_pose_library' = None

VIEW3D_MT_pose_motion: 'bl_ui.space_view3d.VIEW3D_MT_pose_motion' = None

VIEW3D_MT_pose_names: 'bl_ui.space_view3d.VIEW3D_MT_pose_names' = None

VIEW3D_MT_pose_propagate: 'bl_ui.space_view3d.VIEW3D_MT_pose_propagate' = None

VIEW3D_MT_pose_showhide: 'bl_ui.space_view3d.VIEW3D_MT_pose_showhide' = None

VIEW3D_MT_pose_slide: 'bl_ui.space_view3d.VIEW3D_MT_pose_slide' = None

VIEW3D_MT_pose_transform: 'bl_ui.space_view3d.VIEW3D_MT_pose_transform' = None

VIEW3D_MT_proportional_editing_falloff_pie: 'bl_ui.space_view3d.VIEW3D_MT_proportional_editing_falloff_pie' = None

VIEW3D_MT_random_mask: 'bl_ui.space_view3d.VIEW3D_MT_random_mask' = None

VIEW3D_MT_sculpt: 'bl_ui.space_view3d.VIEW3D_MT_sculpt' = None

VIEW3D_MT_sculpt_automasking_pie: 'bl_ui.space_view3d.VIEW3D_MT_sculpt_automasking_pie' = None

VIEW3D_MT_sculpt_face_sets_edit_pie: 'bl_ui.space_view3d.VIEW3D_MT_sculpt_face_sets_edit_pie' = None

VIEW3D_MT_sculpt_mask_edit_pie: 'bl_ui.space_view3d.VIEW3D_MT_sculpt_mask_edit_pie' = None

VIEW3D_MT_sculpt_set_pivot: 'bl_ui.space_view3d.VIEW3D_MT_sculpt_set_pivot' = None

VIEW3D_MT_select_edit_armature: 'bl_ui.space_view3d.VIEW3D_MT_select_edit_armature' = None

VIEW3D_MT_select_edit_curve: 'bl_ui.space_view3d.VIEW3D_MT_select_edit_curve' = None

VIEW3D_MT_select_edit_lattice: 'bl_ui.space_view3d.VIEW3D_MT_select_edit_lattice' = None

VIEW3D_MT_select_edit_mesh: 'bl_ui.space_view3d.VIEW3D_MT_select_edit_mesh' = None

VIEW3D_MT_select_edit_metaball: 'bl_ui.space_view3d.VIEW3D_MT_select_edit_metaball' = None

VIEW3D_MT_select_edit_surface: 'bl_ui.space_view3d.VIEW3D_MT_select_edit_surface' = None

VIEW3D_MT_select_edit_text: 'bl_ui.space_view3d.VIEW3D_MT_select_edit_text' = None

VIEW3D_MT_select_gpencil: 'bl_ui.space_view3d.VIEW3D_MT_select_gpencil' = None

VIEW3D_MT_select_object: 'bl_ui.space_view3d.VIEW3D_MT_select_object' = None

VIEW3D_MT_select_object_more_less: 'bl_ui.space_view3d.VIEW3D_MT_select_object_more_less' = None

VIEW3D_MT_select_paint_mask: 'bl_ui.space_view3d.VIEW3D_MT_select_paint_mask' = None

VIEW3D_MT_select_paint_mask_vertex: 'bl_ui.space_view3d.VIEW3D_MT_select_paint_mask_vertex' = None

VIEW3D_MT_select_particle: 'bl_ui.space_view3d.VIEW3D_MT_select_particle' = None

VIEW3D_MT_select_pose: 'bl_ui.space_view3d.VIEW3D_MT_select_pose' = None

VIEW3D_MT_select_pose_more_less: 'bl_ui.space_view3d.VIEW3D_MT_select_pose_more_less' = None

VIEW3D_MT_shading_ex_pie: 'bl_ui.space_view3d.VIEW3D_MT_shading_ex_pie' = None

VIEW3D_MT_shading_pie: 'bl_ui.space_view3d.VIEW3D_MT_shading_pie' = None

VIEW3D_MT_snap: 'bl_ui.space_view3d.VIEW3D_MT_snap' = None

VIEW3D_MT_snap_pie: 'bl_ui.space_view3d.VIEW3D_MT_snap_pie' = None

VIEW3D_MT_surface_add: 'bl_ui.space_view3d.VIEW3D_MT_surface_add' = None

VIEW3D_MT_tools_projectpaint_clone: 'bl_ui.properties_paint_common.VIEW3D_MT_tools_projectpaint_clone' = None

VIEW3D_MT_tools_projectpaint_stencil: 'bl_ui.space_view3d_toolbar.VIEW3D_MT_tools_projectpaint_stencil' = None

VIEW3D_MT_tools_projectpaint_uvlayer: 'bl_ui.space_view3d_toolbar.VIEW3D_MT_tools_projectpaint_uvlayer' = None

VIEW3D_MT_transform: 'bl_ui.space_view3d.VIEW3D_MT_transform' = None

VIEW3D_MT_transform_armature: 'bl_ui.space_view3d.VIEW3D_MT_transform_armature' = None

VIEW3D_MT_transform_gizmo_pie: 'bl_ui.space_view3d.VIEW3D_MT_transform_gizmo_pie' = None

VIEW3D_MT_transform_object: 'bl_ui.space_view3d.VIEW3D_MT_transform_object' = None

VIEW3D_MT_uv_map: 'bl_ui.space_view3d.VIEW3D_MT_uv_map' = None

VIEW3D_MT_vertex_group: 'bl_ui.space_view3d.VIEW3D_MT_vertex_group' = None

VIEW3D_MT_view: 'bl_ui.space_view3d.VIEW3D_MT_view' = None

VIEW3D_MT_view_align: 'bl_ui.space_view3d.VIEW3D_MT_view_align' = None

VIEW3D_MT_view_align_selected: 'bl_ui.space_view3d.VIEW3D_MT_view_align_selected' = None

VIEW3D_MT_view_cameras: 'bl_ui.space_view3d.VIEW3D_MT_view_cameras' = None

VIEW3D_MT_view_local: 'bl_ui.space_view3d.VIEW3D_MT_view_local' = None

VIEW3D_MT_view_navigation: 'bl_ui.space_view3d.VIEW3D_MT_view_navigation' = None

VIEW3D_MT_view_pie: 'bl_ui.space_view3d.VIEW3D_MT_view_pie' = None

VIEW3D_MT_view_regions: 'bl_ui.space_view3d.VIEW3D_MT_view_regions' = None

VIEW3D_MT_view_viewpoint: 'bl_ui.space_view3d.VIEW3D_MT_view_viewpoint' = None

VIEW3D_MT_volume_add: 'bl_ui.space_view3d.VIEW3D_MT_volume_add' = None

VIEW3D_MT_weight_gpencil: 'bl_ui.space_view3d.VIEW3D_MT_weight_gpencil' = None

VIEW3D_MT_wpaint_vgroup_lock_pie: 'bl_ui.space_view3d.VIEW3D_MT_wpaint_vgroup_lock_pie' = None

VIEW3D_OT_edit_mesh_extrude_individual_move: 'bl_operators.view3d.VIEW3D_OT_edit_mesh_extrude_individual_move' = None

VIEW3D_OT_edit_mesh_extrude_manifold_normal: 'bl_operators.view3d.VIEW3D_OT_edit_mesh_extrude_manifold_normal' = None

VIEW3D_OT_transform_gizmo_set: 'bl_operators.view3d.VIEW3D_OT_transform_gizmo_set' = None

VIEW3D_PT_active_tool: 'bl_ui.space_view3d.VIEW3D_PT_active_tool' = None

VIEW3D_PT_active_tool_duplicate: 'bl_ui.space_view3d.VIEW3D_PT_active_tool_duplicate' = None

VIEW3D_PT_annotation_onion: 'bl_ui.space_view3d.VIEW3D_PT_annotation_onion' = None

VIEW3D_PT_collections: 'bl_ui.space_view3d.VIEW3D_PT_collections' = None

VIEW3D_PT_context_properties: 'bl_ui.space_view3d.VIEW3D_PT_context_properties' = None

VIEW3D_PT_gizmo_display: 'bl_ui.space_view3d.VIEW3D_PT_gizmo_display' = None

VIEW3D_PT_gpencil_brush_presets: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_gpencil_brush_presets' = None

VIEW3D_PT_gpencil_curve_edit: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_curve_edit' = None

VIEW3D_PT_gpencil_draw_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_draw_context_menu' = None

VIEW3D_PT_gpencil_guide: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_guide' = None

VIEW3D_PT_gpencil_lock: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_lock' = None

VIEW3D_PT_gpencil_multi_frame: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_multi_frame' = None

VIEW3D_PT_gpencil_origin: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_origin' = None

VIEW3D_PT_gpencil_sculpt_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_sculpt_context_menu' = None

VIEW3D_PT_gpencil_vertex_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_vertex_context_menu' = None

VIEW3D_PT_gpencil_weight_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_gpencil_weight_context_menu' = None

VIEW3D_PT_grease_pencil: 'bl_ui.space_view3d.VIEW3D_PT_grease_pencil' = None

VIEW3D_PT_mask: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_mask' = None

VIEW3D_PT_object_type_visibility: 'bl_ui.space_view3d.VIEW3D_PT_object_type_visibility' = None

VIEW3D_PT_overlay: 'bl_ui.space_view3d.VIEW3D_PT_overlay' = None

VIEW3D_PT_overlay_edit_curve: 'bl_ui.space_view3d.VIEW3D_PT_overlay_edit_curve' = None

VIEW3D_PT_overlay_edit_mesh: 'bl_ui.space_view3d.VIEW3D_PT_overlay_edit_mesh' = None

VIEW3D_PT_overlay_edit_mesh_freestyle: 'bl_ui.space_view3d.VIEW3D_PT_overlay_edit_mesh_freestyle' = None

VIEW3D_PT_overlay_edit_mesh_measurement: 'bl_ui.space_view3d.VIEW3D_PT_overlay_edit_mesh_measurement' = None

VIEW3D_PT_overlay_edit_mesh_normals: 'bl_ui.space_view3d.VIEW3D_PT_overlay_edit_mesh_normals' = None

VIEW3D_PT_overlay_edit_mesh_shading: 'bl_ui.space_view3d.VIEW3D_PT_overlay_edit_mesh_shading' = None

VIEW3D_PT_overlay_geometry: 'bl_ui.space_view3d.VIEW3D_PT_overlay_geometry' = None

VIEW3D_PT_overlay_gpencil_options: 'bl_ui.space_view3d.VIEW3D_PT_overlay_gpencil_options' = None

VIEW3D_PT_overlay_guides: 'bl_ui.space_view3d.VIEW3D_PT_overlay_guides' = None

VIEW3D_PT_overlay_motion_tracking: 'bl_ui.space_view3d.VIEW3D_PT_overlay_motion_tracking' = None

VIEW3D_PT_overlay_object: 'bl_ui.space_view3d.VIEW3D_PT_overlay_object' = None

VIEW3D_PT_overlay_pose: 'bl_ui.space_view3d.VIEW3D_PT_overlay_pose' = None

VIEW3D_PT_overlay_sculpt: 'bl_ui.space_view3d.VIEW3D_PT_overlay_sculpt' = None

VIEW3D_PT_overlay_texture_paint: 'bl_ui.space_view3d.VIEW3D_PT_overlay_texture_paint' = None

VIEW3D_PT_overlay_vertex_paint: 'bl_ui.space_view3d.VIEW3D_PT_overlay_vertex_paint' = None

VIEW3D_PT_overlay_weight_paint: 'bl_ui.space_view3d.VIEW3D_PT_overlay_weight_paint' = None

VIEW3D_PT_paint_texture_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_paint_texture_context_menu' = None

VIEW3D_PT_paint_vertex_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_paint_vertex_context_menu' = None

VIEW3D_PT_paint_weight_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_paint_weight_context_menu' = None

VIEW3D_PT_proportional_edit: 'bl_ui.space_view3d.VIEW3D_PT_proportional_edit' = None

VIEW3D_PT_quad_view: 'bl_ui.space_view3d.VIEW3D_PT_quad_view' = None

VIEW3D_PT_sculpt_context_menu: 'bl_ui.space_view3d.VIEW3D_PT_sculpt_context_menu' = None

VIEW3D_PT_sculpt_dyntopo: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_sculpt_dyntopo' = None

VIEW3D_PT_sculpt_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_sculpt_options' = None

VIEW3D_PT_sculpt_options_gravity: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_sculpt_options_gravity' = None

VIEW3D_PT_sculpt_symmetry: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_sculpt_symmetry' = None

VIEW3D_PT_sculpt_symmetry_for_topbar: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_sculpt_symmetry_for_topbar' = None

VIEW3D_PT_sculpt_voxel_remesh: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_sculpt_voxel_remesh' = None

VIEW3D_PT_shading: 'bl_ui.space_view3d.VIEW3D_PT_shading' = None

VIEW3D_PT_shading_color: 'bl_ui.space_view3d.VIEW3D_PT_shading_color' = None

VIEW3D_PT_shading_lighting: 'bl_ui.space_view3d.VIEW3D_PT_shading_lighting' = None

VIEW3D_PT_shading_options: 'bl_ui.space_view3d.VIEW3D_PT_shading_options' = None

VIEW3D_PT_shading_options_shadow: 'bl_ui.space_view3d.VIEW3D_PT_shading_options_shadow' = None

VIEW3D_PT_shading_options_ssao: 'bl_ui.space_view3d.VIEW3D_PT_shading_options_ssao' = None

VIEW3D_PT_shading_render_pass: 'bl_ui.space_view3d.VIEW3D_PT_shading_render_pass' = None

VIEW3D_PT_slots_projectpaint: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_slots_projectpaint' = None

VIEW3D_PT_snapping: 'bl_ui.space_view3d.VIEW3D_PT_snapping' = None

VIEW3D_PT_stencil_projectpaint: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_stencil_projectpaint' = None

VIEW3D_PT_tools_active: 'bl_ui.space_toolsystem_toolbar.VIEW3D_PT_tools_active' = None

VIEW3D_PT_tools_armatureedit_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_armatureedit_options' = None

VIEW3D_PT_tools_brush_clone: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_clone' = None

VIEW3D_PT_tools_brush_color: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_color' = None

VIEW3D_PT_tools_brush_display: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_display' = None

VIEW3D_PT_tools_brush_falloff: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_falloff' = None

VIEW3D_PT_tools_brush_falloff_frontface: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_falloff_frontface' = None

VIEW3D_PT_tools_brush_falloff_normal: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_falloff_normal' = None

VIEW3D_PT_tools_brush_select: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_select' = None

VIEW3D_PT_tools_brush_settings: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_settings' = None

VIEW3D_PT_tools_brush_settings_advanced: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_settings_advanced' = None

VIEW3D_PT_tools_brush_stroke: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_stroke' = None

VIEW3D_PT_tools_brush_stroke_smooth_stroke: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_stroke_smooth_stroke' = None

VIEW3D_PT_tools_brush_swatches: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_swatches' = None

VIEW3D_PT_tools_brush_texture: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_brush_texture' = None

VIEW3D_PT_tools_grease_pencil_brush_advanced: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_advanced' = None

VIEW3D_PT_tools_grease_pencil_brush_mix_palette: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_mix_palette' = None

VIEW3D_PT_tools_grease_pencil_brush_mixcolor: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_mixcolor' = None

VIEW3D_PT_tools_grease_pencil_brush_paint_falloff: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_paint_falloff' = None

VIEW3D_PT_tools_grease_pencil_brush_post_processing: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_post_processing' = None

VIEW3D_PT_tools_grease_pencil_brush_random: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_random' = None

VIEW3D_PT_tools_grease_pencil_brush_sculpt_falloff: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_sculpt_falloff' = None

VIEW3D_PT_tools_grease_pencil_brush_select: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_select' = None

VIEW3D_PT_tools_grease_pencil_brush_settings: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_settings' = None

VIEW3D_PT_tools_grease_pencil_brush_stabilizer: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_stabilizer' = None

VIEW3D_PT_tools_grease_pencil_brush_stroke: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_stroke' = None

VIEW3D_PT_tools_grease_pencil_brush_vertex_color: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_vertex_color' = None

VIEW3D_PT_tools_grease_pencil_brush_vertex_falloff: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_vertex_falloff' = None

VIEW3D_PT_tools_grease_pencil_brush_vertex_palette: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_vertex_palette' = None

VIEW3D_PT_tools_grease_pencil_brush_weight_falloff: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_brush_weight_falloff' = None

VIEW3D_PT_tools_grease_pencil_paint_appearance: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_paint_appearance' = None

VIEW3D_PT_tools_grease_pencil_sculpt_appearance: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_sculpt_appearance' = None

VIEW3D_PT_tools_grease_pencil_sculpt_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_sculpt_options' = None

VIEW3D_PT_tools_grease_pencil_sculpt_select: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_sculpt_select' = None

VIEW3D_PT_tools_grease_pencil_sculpt_settings: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_sculpt_settings' = None

VIEW3D_PT_tools_grease_pencil_vertex_appearance: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_vertex_appearance' = None

VIEW3D_PT_tools_grease_pencil_vertex_paint_select: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_vertex_paint_select' = None

VIEW3D_PT_tools_grease_pencil_vertex_paint_settings: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_vertex_paint_settings' = None

VIEW3D_PT_tools_grease_pencil_weight_appearance: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_weight_appearance' = None

VIEW3D_PT_tools_grease_pencil_weight_paint_select: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_weight_paint_select' = None

VIEW3D_PT_tools_grease_pencil_weight_paint_settings: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_grease_pencil_weight_paint_settings' = None

VIEW3D_PT_tools_imagepaint_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_imagepaint_options' = None

VIEW3D_PT_tools_imagepaint_options_cavity: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_imagepaint_options_cavity' = None

VIEW3D_PT_tools_imagepaint_options_external: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_imagepaint_options_external' = None

VIEW3D_PT_tools_imagepaint_symmetry: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_imagepaint_symmetry' = None

VIEW3D_PT_tools_mask_texture: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_mask_texture' = None

VIEW3D_PT_tools_meshedit_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_meshedit_options' = None

VIEW3D_PT_tools_meshedit_options_automerge: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_meshedit_options_automerge' = None

VIEW3D_PT_tools_object_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_object_options' = None

VIEW3D_PT_tools_object_options_transform: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_object_options_transform' = None

VIEW3D_PT_tools_particlemode: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_particlemode' = None

VIEW3D_PT_tools_particlemode_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_particlemode_options' = None

VIEW3D_PT_tools_particlemode_options_display: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_particlemode_options_display' = None

VIEW3D_PT_tools_particlemode_options_shapecut: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_particlemode_options_shapecut' = None

VIEW3D_PT_tools_posemode_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_posemode_options' = None

VIEW3D_PT_tools_vertexpaint_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_vertexpaint_options' = None

VIEW3D_PT_tools_vertexpaint_symmetry: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_vertexpaint_symmetry' = None

VIEW3D_PT_tools_vertexpaint_symmetry_for_topbar: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_vertexpaint_symmetry_for_topbar' = None

VIEW3D_PT_tools_weight_gradient: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_weight_gradient' = None

VIEW3D_PT_tools_weightpaint_options: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_weightpaint_options' = None

VIEW3D_PT_tools_weightpaint_symmetry: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_weightpaint_symmetry' = None

VIEW3D_PT_tools_weightpaint_symmetry_for_topbar: 'bl_ui.space_view3d_toolbar.VIEW3D_PT_tools_weightpaint_symmetry_for_topbar' = None

VIEW3D_PT_transform_orientations: 'bl_ui.space_view3d.VIEW3D_PT_transform_orientations' = None

VIEW3D_PT_view3d_cursor: 'bl_ui.space_view3d.VIEW3D_PT_view3d_cursor' = None

VIEW3D_PT_view3d_lock: 'bl_ui.space_view3d.VIEW3D_PT_view3d_lock' = None

VIEW3D_PT_view3d_properties: 'bl_ui.space_view3d.VIEW3D_PT_view3d_properties' = None

VIEW3D_PT_view3d_stereo: 'bl_ui.space_view3d.VIEW3D_PT_view3d_stereo' = None

VIEWLAYER_PT_eevee_layer_passes_data: 'bl_ui.properties_view_layer.VIEWLAYER_PT_eevee_layer_passes_data' = None

VIEWLAYER_PT_eevee_layer_passes_effects: 'bl_ui.properties_view_layer.VIEWLAYER_PT_eevee_layer_passes_effects' = None

VIEWLAYER_PT_eevee_layer_passes_light: 'bl_ui.properties_view_layer.VIEWLAYER_PT_eevee_layer_passes_light' = None

VIEWLAYER_PT_freestyle: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle' = None

VIEWLAYER_PT_freestyle_edge_detection: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_edge_detection' = None

VIEWLAYER_PT_freestyle_lineset: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_lineset' = None

VIEWLAYER_PT_freestyle_lineset_collection: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_lineset_collection' = None

VIEWLAYER_PT_freestyle_lineset_edgetype: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_lineset_edgetype' = None

VIEWLAYER_PT_freestyle_lineset_facemarks: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_lineset_facemarks' = None

VIEWLAYER_PT_freestyle_lineset_visibilty: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_lineset_visibilty' = None

VIEWLAYER_PT_freestyle_linestyle_alpha: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_alpha' = None

VIEWLAYER_PT_freestyle_linestyle_color: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_color' = None

VIEWLAYER_PT_freestyle_linestyle_geometry: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_geometry' = None

VIEWLAYER_PT_freestyle_linestyle_strokes: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_strokes' = None

VIEWLAYER_PT_freestyle_linestyle_strokes_chaining: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_strokes_chaining' = None

VIEWLAYER_PT_freestyle_linestyle_strokes_dashedline: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_strokes_dashedline' = None

VIEWLAYER_PT_freestyle_linestyle_strokes_selection: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_strokes_selection' = None

VIEWLAYER_PT_freestyle_linestyle_strokes_sorting: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_strokes_sorting' = None

VIEWLAYER_PT_freestyle_linestyle_strokes_splitting: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_strokes_splitting' = None

VIEWLAYER_PT_freestyle_linestyle_strokes_splitting_pattern: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_strokes_splitting_pattern' = None

VIEWLAYER_PT_freestyle_linestyle_texture: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_texture' = None

VIEWLAYER_PT_freestyle_linestyle_thickness: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_linestyle_thickness' = None

VIEWLAYER_PT_freestyle_style_modules: 'bl_ui.properties_freestyle.VIEWLAYER_PT_freestyle_style_modules' = None

VIEWLAYER_PT_layer: 'bl_ui.properties_view_layer.VIEWLAYER_PT_layer' = None

VIEWLAYER_PT_layer_passes: 'bl_ui.properties_view_layer.VIEWLAYER_PT_layer_passes' = None

VIEWLAYER_PT_layer_passes_aov: 'bl_ui.properties_view_layer.VIEWLAYER_PT_layer_passes_aov' = None

VIEWLAYER_PT_layer_passes_cryptomatte: 'bl_ui.properties_view_layer.VIEWLAYER_PT_layer_passes_cryptomatte' = None

VIEWLAYER_UL_aov: 'bl_ui.properties_view_layer.VIEWLAYER_UL_aov' = None

VIEWLAYER_UL_linesets: 'bl_ui.properties_freestyle.VIEWLAYER_UL_linesets' = None

VOLUME_UL_grids: 'bl_ui.properties_data_volume.VOLUME_UL_grids' = None

WM_MT_operator_presets: 'bl_operators.presets.WM_MT_operator_presets' = None

WM_MT_splash: 'bl_operators.wm.WM_MT_splash' = None

WM_MT_splash_about: 'bl_operators.wm.WM_MT_splash_about' = None

WM_MT_splash_quick_setup: 'bl_operators.wm.WM_MT_splash_quick_setup' = None

WM_MT_toolsystem_submenu: 'bl_ui.space_toolsystem_common.WM_MT_toolsystem_submenu' = None

WM_OT_batch_rename: 'bl_operators.wm.WM_OT_batch_rename' = None

WM_OT_blend_strings_utf8_validate: 'bl_operators.file.WM_OT_blend_strings_utf8_validate' = None

WM_OT_context_collection_boolean_set: 'bl_operators.wm.WM_OT_context_collection_boolean_set' = None

WM_OT_context_cycle_array: 'bl_operators.wm.WM_OT_context_cycle_array' = None

WM_OT_context_cycle_enum: 'bl_operators.wm.WM_OT_context_cycle_enum' = None

WM_OT_context_cycle_int: 'bl_operators.wm.WM_OT_context_cycle_int' = None

WM_OT_context_menu_enum: 'bl_operators.wm.WM_OT_context_menu_enum' = None

WM_OT_context_modal_mouse: 'bl_operators.wm.WM_OT_context_modal_mouse' = None

WM_OT_context_pie_enum: 'bl_operators.wm.WM_OT_context_pie_enum' = None

WM_OT_context_scale_float: 'bl_operators.wm.WM_OT_context_scale_float' = None

WM_OT_context_scale_int: 'bl_operators.wm.WM_OT_context_scale_int' = None

WM_OT_context_set_boolean: 'bl_operators.wm.WM_OT_context_set_boolean' = None

WM_OT_context_set_enum: 'bl_operators.wm.WM_OT_context_set_enum' = None

WM_OT_context_set_float: 'bl_operators.wm.WM_OT_context_set_float' = None

WM_OT_context_set_id: 'bl_operators.wm.WM_OT_context_set_id' = None

WM_OT_context_set_int: 'bl_operators.wm.WM_OT_context_set_int' = None

WM_OT_context_set_string: 'bl_operators.wm.WM_OT_context_set_string' = None

WM_OT_context_set_value: 'bl_operators.wm.WM_OT_context_set_value' = None

WM_OT_context_toggle: 'bl_operators.wm.WM_OT_context_toggle' = None

WM_OT_context_toggle_enum: 'bl_operators.wm.WM_OT_context_toggle_enum' = None

WM_OT_doc_view: 'bl_operators.wm.WM_OT_doc_view' = None

WM_OT_doc_view_manual: 'bl_operators.wm.WM_OT_doc_view_manual' = None

WM_OT_drop_blend_file: 'bl_operators.wm.WM_OT_drop_blend_file' = None

WM_OT_operator_cheat_sheet: 'bl_operators.wm.WM_OT_operator_cheat_sheet' = None

WM_OT_operator_pie_enum: 'bl_operators.wm.WM_OT_operator_pie_enum' = None

WM_OT_owner_disable: 'bl_operators.wm.WM_OT_owner_disable' = None

WM_OT_owner_enable: 'bl_operators.wm.WM_OT_owner_enable' = None

WM_OT_path_open: 'bl_operators.wm.WM_OT_path_open' = None

WM_OT_previews_batch_clear: 'bl_operators.file.WM_OT_previews_batch_clear' = None

WM_OT_previews_batch_generate: 'bl_operators.file.WM_OT_previews_batch_generate' = None

WM_OT_properties_add: 'bl_operators.wm.WM_OT_properties_add' = None

WM_OT_properties_context_change: 'bl_operators.wm.WM_OT_properties_context_change' = None

WM_OT_properties_edit: 'bl_operators.wm.WM_OT_properties_edit' = None

WM_OT_properties_edit_value: 'bl_operators.wm.WM_OT_properties_edit_value' = None

WM_OT_properties_remove: 'bl_operators.wm.WM_OT_properties_remove' = None

WM_OT_sysinfo: 'bl_operators.wm.WM_OT_sysinfo' = None

WM_OT_tool_set_by_id: 'bl_operators.wm.WM_OT_tool_set_by_id' = None

WM_OT_tool_set_by_index: 'bl_operators.wm.WM_OT_tool_set_by_index' = None

WM_OT_toolbar: 'bl_operators.wm.WM_OT_toolbar' = None

WM_OT_toolbar_fallback_pie: 'bl_operators.wm.WM_OT_toolbar_fallback_pie' = None

WM_OT_toolbar_prompt: 'bl_operators.wm.WM_OT_toolbar_prompt' = None

WM_OT_url_open: 'bl_operators.wm.WM_OT_url_open' = None

WM_OT_url_open_preset: 'bl_operators.wm.WM_OT_url_open_preset' = None

WORKSPACE_PT_addons: 'bl_ui.properties_workspace.WORKSPACE_PT_addons' = None

WORKSPACE_PT_custom_props: 'bl_ui.properties_workspace.WORKSPACE_PT_custom_props' = None

WORKSPACE_PT_main: 'bl_ui.properties_workspace.WORKSPACE_PT_main' = None

WORLD_PT_context_world: 'bl_ui.properties_world.WORLD_PT_context_world' = None

WORLD_PT_custom_props: 'bl_ui.properties_world.WORLD_PT_custom_props' = None

WORLD_PT_viewport_display: 'bl_ui.properties_world.WORLD_PT_viewport_display' = None
