import pydantic.v1 as pydantic
from _typeshed import Incomplete
from zfit.util.warnings import warn_experimental_feature as warn_experimental_feature

class ZfitSerializable:
    hs3_type: str
    @classmethod
    def get_repr(cls) -> pydantic.BaseModel: ...
    def to_orm(self, *, reuse_params=None) -> None: ...

class NumpyArrayNotSerializableError(TypeError): ...

class SerializableMixin(ZfitSerializable):
    hs3: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def __init_subclass__(cls, **kwargs) -> None: ...
    @warn_experimental_feature
    def to_yaml(self): ...
    @warn_experimental_feature
    def to_asdf(self): ...
    @classmethod
    @warn_experimental_feature
    def from_asdf(cls, asdf_obj, *, reuse_params=None): ...
    @warn_experimental_feature
    def to_json(self): ...
    @classmethod
    @warn_experimental_feature
    def from_json(cls, json: str, *, reuse_params=None) -> object: ...
    @warn_experimental_feature
    def to_dict(self): ...
    @classmethod
    @warn_experimental_feature
    def from_dict(cls, dict_, *, reuse_params=None): ...
    @classmethod
    def get_repr(cls): ...

class HS3:
    implementation: Incomplete
    original_init: Incomplete
    def __init__(self, obj) -> None: ...
    @property
    def obj(self): ...
    def to_json(self): ...
    def to_dict(self): ...
    @classmethod
    def from_json(cls, json: str, *, reuse_params: bool | None = None) -> object: ...
    @property
    def repr(self): ...

def create_HS3(cls): ...
