import typing
import collections.abc
import typing_extensions
import numpy.typing as npt
import bpy.ops
import bpy.stub_internal.rna_enums

class _CLS_asset_activate(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        asset_library_type: typing.Literal[
            bpy.stub_internal.rna_enums.AssetLibraryTypeItems
        ]
        | None = "LOCAL",
        asset_library_identifier: str = "",
        relative_asset_identifier: str = "",
        use_toggle: bool | None = False,
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Activate a brush asset as current sculpt and paint tool

        :param execution_context:
        :param undo:
        :param asset_library_type: Asset Library Type, (optional)
        :param asset_library_identifier: Asset Library Identifier, (optional, never None)
        :param relative_asset_identifier: Relative Asset Identifier, (optional, never None)
        :param use_toggle: Toggle, Switch between the current and assigned brushes on consecutive uses. (optional)
        :return: Result of the operator call.
        """

class _CLS_asset_delete(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Delete the active brush asset

        :param execution_context:
        :param undo:
        :return: Result of the operator call.
        """

class _CLS_asset_edit_metadata(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        catalog_path: str = "",
        author: str = "",
        description: str = "",
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Edit asset information like the catalog, preview image, tags, or author

        :param execution_context:
        :param undo:
        :param catalog_path: Catalog, The assets catalog path (optional, never None)
        :param author: Author, (optional, never None)
        :param description: Description, (optional, never None)
        :return: Result of the operator call.
        """

class _CLS_asset_load_preview(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        filepath: str = "",
        hide_props_region: bool | None = True,
        check_existing: bool | None = False,
        filter_blender: bool | None = False,
        filter_backup: bool | None = False,
        filter_image: bool | None = True,
        filter_movie: bool | None = False,
        filter_python: bool | None = False,
        filter_font: bool | None = False,
        filter_sound: bool | None = False,
        filter_text: bool | None = False,
        filter_archive: bool | None = False,
        filter_btx: bool | None = False,
        filter_alembic: bool | None = False,
        filter_usd: bool | None = False,
        filter_obj: bool | None = False,
        filter_volume: bool | None = False,
        filter_folder: bool | None = True,
        filter_blenlib: bool | None = False,
        filemode: int | None = 9,
        show_multiview: bool | None = False,
        use_multiview: bool | None = False,
        display_type: typing.Literal[
            "DEFAULT", "LIST_VERTICAL", "LIST_HORIZONTAL", "THUMBNAIL"
        ]
        | None = "DEFAULT",
        sort_method: str | None = "",
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Choose a preview image for the brush

                :param execution_context:
                :param undo:
                :param filepath: File Path, Path to file (optional, never None)
                :param hide_props_region: Hide Operator Properties, Collapse the region displaying the operator settings (optional)
                :param check_existing: Check Existing, Check and warn on overwriting existing files (optional)
                :param filter_blender: Filter .blend files, (optional)
                :param filter_backup: Filter backup .blend files, (optional)
                :param filter_image: Filter image files, (optional)
                :param filter_movie: Filter movie files, (optional)
                :param filter_python: Filter Python files, (optional)
                :param filter_font: Filter font files, (optional)
                :param filter_sound: Filter sound files, (optional)
                :param filter_text: Filter text files, (optional)
                :param filter_archive: Filter archive files, (optional)
                :param filter_btx: Filter btx files, (optional)
                :param filter_alembic: Filter Alembic files, (optional)
                :param filter_usd: Filter USD files, (optional)
                :param filter_obj: Filter OBJ files, (optional)
                :param filter_volume: Filter OpenVDB volume files, (optional)
                :param filter_folder: Filter folders, (optional)
                :param filter_blenlib: Filter Blender IDs, (optional)
                :param filemode: File Browser Mode, The setting for the file browser mode to load a .blend file, a library or a special file (in [1, 9], optional)
                :param show_multiview: Enable Multi-View, (optional)
                :param use_multiview: Use Multi-View, (optional)
                :param display_type: Display Type, (optional)

        DEFAULT
        Default -- Automatically determine display type for files.

        LIST_VERTICAL
        Short List -- Display files as short list.

        LIST_HORIZONTAL
        Long List -- Display files as a detailed list.

        THUMBNAIL
        Thumbnails -- Display files as thumbnails.
                :param sort_method: File sorting mode, (optional)
                :return: Result of the operator call.
        """

class _CLS_asset_revert(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Revert the active brush settings to the default values from the asset library

        :param execution_context:
        :param undo:
        :return: Result of the operator call.
        """

class _CLS_asset_save(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Update the active brush asset in the asset library with current settings

        :param execution_context:
        :param undo:
        :return: Result of the operator call.
        """

class _CLS_asset_save_as(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        name: str = "",
        asset_library_reference: str | None = "",
        catalog_path: str = "",
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Save a copy of the active brush asset into the default asset library, and make it the active brush

        :param execution_context:
        :param undo:
        :param name: Name, Name for the new brush asset (optional, never None)
        :param asset_library_reference: Library, Asset library used to store the new brush (optional)
        :param catalog_path: Catalog, Catalog to use for the new asset (optional, never None)
        :return: Result of the operator call.
        """

class _CLS_scale_size(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        scalar: float | None = 1.0,
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Change brush size by a scalar

        :param execution_context:
        :param undo:
        :param scalar: Scalar, Factor to scale brush size by (in [0, 2], optional)
        :return: Result of the operator call.
        """

class _CLS_stencil_control(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        mode: typing.Literal["TRANSLATION", "SCALE", "ROTATION"] | None = "TRANSLATION",
        texmode: typing.Literal["PRIMARY", "SECONDARY"] | None = "PRIMARY",
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Control the stencil brush

        :param execution_context:
        :param undo:
        :param mode: Tool, (optional)
        :param texmode: Tool, (optional)
        :return: Result of the operator call.
        """

class _CLS_stencil_fit_image_aspect(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        use_repeat: bool | None = True,
        use_scale: bool | None = True,
        mask: bool | None = False,
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """When using an image texture, adjust the stencil size to fit the image aspect ratio

        :param execution_context:
        :param undo:
        :param use_repeat: Use Repeat, Use repeat mapping values (optional)
        :param use_scale: Use Scale, Use texture scale values (optional)
        :param mask: Modify Mask Stencil, Modify either the primary or mask stencil (optional)
        :return: Result of the operator call.
        """

class _CLS_stencil_reset_transform(bpy.ops._BPyOpsSubModOp):
    def __call__(
        self,
        execution_context: int | str | None = None,
        undo: bool | None = None,
        /,
        *,
        mask: bool | None = False,
    ) -> set[typing.Literal[bpy.stub_internal.rna_enums.OperatorReturnItems]]:
        """Reset the stencil transformation to the default

        :param execution_context:
        :param undo:
        :param mask: Modify Mask Stencil, Modify either the primary or mask stencil (optional)
        :return: Result of the operator call.
        """

asset_activate: _CLS_asset_activate

asset_delete: _CLS_asset_delete

asset_edit_metadata: _CLS_asset_edit_metadata

asset_load_preview: _CLS_asset_load_preview

asset_revert: _CLS_asset_revert

asset_save: _CLS_asset_save

asset_save_as: _CLS_asset_save_as

scale_size: _CLS_scale_size

stencil_control: _CLS_stencil_control

stencil_fit_image_aspect: _CLS_stencil_fit_image_aspect

stencil_reset_transform: _CLS_stencil_reset_transform
