import enum
import pydrake.autodiffutils
from pydrake.common.cpp_template import DeformableBodyConfig_ as DeformableBodyConfig_, ForceDensityFieldBase_ as ForceDensityFieldBase_
from typing import Callable, ClassVar

class DeformableBodyConfig:
    def __init__(self) -> None: ...
    def mass_damping_coefficient(self) -> float: ...
    def mass_density(self) -> float: ...
    def material_model(self) -> MaterialModel: ...
    def poissons_ratio(self) -> float: ...
    def set_mass_damping_coefficient(self, mass_damping_coefficient: float) -> None: ...
    def set_mass_density(self, mass_density: float) -> None: ...
    def set_material_model(self, material_model: MaterialModel) -> None: ...
    def set_poissons_ratio(self, poissons_ratio: float) -> None: ...
    def set_stiffness_damping_coefficient(self, stiffness_damping_coefficient: float) -> None: ...
    def set_youngs_modulus(self, youngs_modulus: float) -> None: ...
    def stiffness_damping_coefficient(self) -> float: ...
    def youngs_modulus(self) -> float: ...
    def __copy__(self) -> DeformableBodyConfig: ...
    def __deepcopy__(self, arg: dict) -> DeformableBodyConfig: ...

class DeformableBodyConfig_𝓣AutoDiffXd𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self) -> None: ...
    def mass_damping_coefficient(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def mass_density(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def material_model(self) -> MaterialModel: ...
    def poissons_ratio(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def set_mass_damping_coefficient(self, mass_damping_coefficient: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_mass_density(self, mass_density: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_material_model(self, material_model: MaterialModel) -> None: ...
    def set_poissons_ratio(self, poissons_ratio: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_stiffness_damping_coefficient(self, stiffness_damping_coefficient: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_youngs_modulus(self, youngs_modulus: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def stiffness_damping_coefficient(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def youngs_modulus(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def __copy__(self) -> DeformableBodyConfig_TAutoDiffXdU: ...
    def __deepcopy__(self, arg: dict) -> DeformableBodyConfig_TAutoDiffXdU: ...

class ForceDensityFieldBase:
    def __init__(self, *args, **kwargs) -> None: ...
    def Clone(self) -> ForceDensityFieldBase: ...
    def EvaluateAt(self, *args, **kwargs): ...
    def density_type(self) -> ForceDensityType: ...
    def __copy__(self) -> ForceDensityFieldBase: ...
    def __deepcopy__(self, arg: dict) -> ForceDensityFieldBase: ...

class ForceDensityFieldBase_𝓣AutoDiffXd𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def Clone(self) -> ForceDensityFieldBase_TAutoDiffXdU: ...
    def EvaluateAt(self, *args, **kwargs): ...
    def density_type(self) -> ForceDensityType: ...
    def __copy__(self) -> ForceDensityFieldBase_TAutoDiffXdU: ...
    def __deepcopy__(self, arg: dict) -> ForceDensityFieldBase_TAutoDiffXdU: ...

class ForceDensityFieldBase_𝓣Expression𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def Clone(self) -> ForceDensityFieldBase_TExpressionU: ...
    def EvaluateAt(self, *args, **kwargs): ...
    def density_type(self) -> ForceDensityType: ...
    def __copy__(self) -> ForceDensityFieldBase_TExpressionU: ...
    def __deepcopy__(self, arg: dict) -> ForceDensityFieldBase_TExpressionU: ...

class ForceDensityType(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kPerCurrentVolume: ClassVar[ForceDensityType] = ...
    kPerReferenceVolume: ClassVar[ForceDensityType] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class MaterialModel(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kCorotated: ClassVar[MaterialModel] = ...
    kLinear: ClassVar[MaterialModel] = ...
    kLinearCorotated: ClassVar[MaterialModel] = ...
    kNeoHookean: ClassVar[MaterialModel] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class _TemporaryName_N5drake9multibody21ForceDensityFieldBaseINS_2ad8AutoDiffEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def Clone(self) -> ForceDensityFieldBase_TAutoDiffXdU: ...
    def EvaluateAt(self, *args, **kwargs): ...
    def density_type(self) -> ForceDensityType: ...
    def __copy__(self) -> ForceDensityFieldBase_TAutoDiffXdU: ...
    def __deepcopy__(self, arg: dict) -> ForceDensityFieldBase_TAutoDiffXdU: ...

class _TemporaryName_N5drake9multibody21ForceDensityFieldBaseINS_8symbolic10ExpressionEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def Clone(self) -> ForceDensityFieldBase_TExpressionU: ...
    def EvaluateAt(self, *args, **kwargs): ...
    def density_type(self) -> ForceDensityType: ...
    def __copy__(self) -> ForceDensityFieldBase_TExpressionU: ...
    def __deepcopy__(self, arg: dict) -> ForceDensityFieldBase_TExpressionU: ...

class _TemporaryName_N5drake9multibody3fem20DeformableBodyConfigINS_2ad8AutoDiffEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self) -> None: ...
    def mass_damping_coefficient(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def mass_density(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def material_model(self) -> MaterialModel: ...
    def poissons_ratio(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def set_mass_damping_coefficient(self, mass_damping_coefficient: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_mass_density(self, mass_density: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_material_model(self, material_model: MaterialModel) -> None: ...
    def set_poissons_ratio(self, poissons_ratio: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_stiffness_damping_coefficient(self, stiffness_damping_coefficient: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_youngs_modulus(self, youngs_modulus: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def stiffness_damping_coefficient(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def youngs_modulus(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def __copy__(self) -> DeformableBodyConfig_TAutoDiffXdU: ...
    def __deepcopy__(self, arg: dict) -> DeformableBodyConfig_TAutoDiffXdU: ...
