import reaktoro.reaktoro4py
import typing
import numpy
_Shape = typing.Tuple[int, ...]

__all__ = [
    "ActivityArgs",
    "ActivityModelCubicEOSParams",
    "ActivityModelDebyeHuckel",
    "ActivityModelDebyeHuckelKielland",
    "ActivityModelDebyeHuckelLimitingLaw",
    "ActivityModelDebyeHuckelPHREEQC",
    "ActivityModelDebyeHuckelParams",
    "ActivityModelDebyeHuckelWATEQ4F",
    "ActivityModelDrummond",
    "ActivityModelDrummondParams",
    "ActivityModelDuanSun",
    "ActivityModelHKF",
    "ActivityModelIdealAqueous",
    "ActivityModelIdealGas",
    "ActivityModelIdealSolution",
    "ActivityModelPengRobinson",
    "ActivityModelPitzerHMW",
    "ActivityModelRedlichKister",
    "ActivityModelRedlichKwong",
    "ActivityModelRumpf",
    "ActivityModelSetschenow",
    "ActivityModelSoaveRedlichKwong",
    "ActivityModelSpycherPruessEnnis",
    "ActivityModelSpycherReed",
    "ActivityModelVanDerWaals",
    "ActivityProps",
    "ActivityPropsConstRef",
    "ActivityPropsRef",
    "AggregateState",
    "AqueousMixture",
    "AqueousMixtureState",
    "AqueousPhase",
    "AqueousProps",
    "ChemicalFormula",
    "ChemicalProps",
    "ChemicalPropsPhase",
    "ChemicalState",
    "ChemicalSystem",
    "CubicEOSModel",
    "Database",
    "Element",
    "ElementList",
    "ElementalComposition",
    "EquilibriumConditions",
    "EquilibriumConstraintChemicalPotential",
    "EquilibriumConstraintEquation",
    "EquilibriumDims",
    "EquilibriumOptions",
    "EquilibriumProblem",
    "EquilibriumRestrictions",
    "EquilibriumResult",
    "EquilibriumSolver",
    "EquilibriumSpecs",
    "Exclude",
    "FormationReaction",
    "GaseousPhase",
    "GenericPhase",
    "GenericPhasesGenerator",
    "LiquidPhase",
    "Memoization",
    "MineralPhase",
    "MineralPhases",
    "Param",
    "Params",
    "Phase",
    "PhaseIdentificationMethod",
    "PhaseList",
    "Phases",
    "PhreeqcDatabase",
    "ReactionEquation",
    "ReactionThermoArgs",
    "ReactionThermoModel",
    "ReactionThermoModelConstLgK",
    "ReactionThermoModelGemsLgK",
    "ReactionThermoModelParamsConstLgK",
    "ReactionThermoModelParamsGemsLgK",
    "ReactionThermoModelParamsPhreeqcLgK",
    "ReactionThermoModelParamsVantHoff",
    "ReactionThermoModelPhreeqcLgK",
    "ReactionThermoModelPressureCorrection",
    "ReactionThermoModelVantHoff",
    "ReactionThermoModelYAML",
    "ReactionThermoProps",
    "SolidPhase",
    "Speciate",
    "Species",
    "SpeciesList",
    "StandardThermoModel",
    "StandardThermoModelConstant",
    "StandardThermoModelHKF",
    "StandardThermoModelHollandPowell",
    "StandardThermoModelMaierKelley",
    "StandardThermoModelMineralHKF",
    "StandardThermoModelParamsConstant",
    "StandardThermoModelParamsHKF",
    "StandardThermoModelParamsHollandPowell",
    "StandardThermoModelParamsMaierKelley",
    "StandardThermoModelParamsMineralHKF",
    "StandardThermoModelParamsWaterHKF",
    "StandardThermoModelWaterHKF",
    "StandardThermoModelYAML",
    "StandardThermoProps",
    "StateOfMatter",
    "StringList",
    "SupcrtDatabase",
    "ThermoFunDatabase",
    "ThermoProps",
    "ThermoPropsPhase",
    "WaterElectroProps",
    "WaterHelmholtzProps",
    "WaterThermoProps",
    "barToPascal",
    "calorieToJoule",
    "chain",
    "cubicCentimeterToCubicMeter",
    "cubicMeterToCubicCentimeter",
    "equilibrate",
    "exclude",
    "faradayConstant",
    "identifyAggregateState",
    "interpolate",
    "jouleToCalorie",
    "ln10",
    "parseAggregateState",
    "parseChemicalFormula",
    "parseElectricCharge",
    "parseNumberStringPairs",
    "parseReaction",
    "parseReactionEquation",
    "speciate",
    "universalGasConstant",
    "waterCriticalDensity",
    "waterCriticalPressure",
    "waterCriticalTemperature",
    "waterDensityHGK",
    "waterDensityWagnerPruss",
    "waterElectroPropsJohnsonNorton",
    "waterHelmholtzPropsHGK",
    "waterHelmholtzPropsWagnerPruss",
    "waterLiquidDensityHGK",
    "waterLiquidDensityWagnerPruss",
    "waterMolarMass",
    "waterPressureHGK",
    "waterPressureWagnerPruss",
    "waterSaturatedLiquidDensityWagnerPruss",
    "waterSaturatedPressureWagnerPruss",
    "waterSaturatedVapourDensityWagnerPruss",
    "waterThermoProps",
    "waterThermoPropsHGK",
    "waterThermoPropsHGKMemoized",
    "waterThermoPropsWagnerPruss",
    "waterThermoPropsWagnerPrussMemoized",
    "waterTriplePointDensityLiquid",
    "waterTriplePointDensityVapour",
    "waterTriplePointPressure",
    "waterTriplePointTemperature",
    "waterVaporDensityHGK",
    "waterVaporDensityWagnerPruss"
]


class ActivityArgs():
    @property
    def P(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def T(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def x(self) -> Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >:
        """
        :type: Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >
        """
    pass
class ActivityModelCubicEOSParams():
    def __init__(self) -> None: ...
    pass
class ActivityModelDebyeHuckelParams():
    def __init__(self) -> None: ...
    @staticmethod
    def aion(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def bion(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def bneutral(*args, **kwargs) -> typing.Any: ...
    def setKielland(self) -> None: ...
    def setLimitingLaw(self) -> None: ...
    def setPHREEQC(self) -> None: ...
    def setWATEQ4F(self) -> None: ...
    @property
    def aiondefault(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @aiondefault.setter
    def aiondefault(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def aions(self) -> typing.Dict[str, autodiff::detail::Real<1,double>]:
        """
        :type: typing.Dict[str, autodiff::detail::Real<1,double>]
        """
    @aions.setter
    def aions(self, arg0: typing.Dict[str, autodiff::detail::Real<1,double>]) -> None:
        pass
    @property
    def biondefault(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @biondefault.setter
    def biondefault(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def bions(self) -> typing.Dict[str, autodiff::detail::Real<1,double>]:
        """
        :type: typing.Dict[str, autodiff::detail::Real<1,double>]
        """
    @bions.setter
    def bions(self, arg0: typing.Dict[str, autodiff::detail::Real<1,double>]) -> None:
        pass
    @property
    def bneutraldefault(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @bneutraldefault.setter
    def bneutraldefault(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def bneutrals(self) -> typing.Dict[str, autodiff::detail::Real<1,double>]:
        """
        :type: typing.Dict[str, autodiff::detail::Real<1,double>]
        """
    @bneutrals.setter
    def bneutrals(self, arg0: typing.Dict[str, autodiff::detail::Real<1,double>]) -> None:
        pass
    pass
class ActivityModelDrummondParams():
    def __init__(self) -> None: ...
    @property
    def a1(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @a1.setter
    def a1(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def a2(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @a2.setter
    def a2(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def a3(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @a3.setter
    def a3(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def a4(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @a4.setter
    def a4(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def a5(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @a5.setter
    def a5(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class ActivityProps():
    def __init__(self) -> None: ...
    @property
    def Cpex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Cpex.setter
    def Cpex(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Cvex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Cvex.setter
    def Cvex(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Gex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Gex.setter
    def Gex(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Hex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Hex.setter
    def Hex(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Vex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Vex.setter
    def Vex(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def VexP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @VexP.setter
    def VexP(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def VexT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @VexT.setter
    def VexT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def extra(self) -> typing.List[std::any]:
        """
        :type: typing.List[std::any]
        """
    @extra.setter
    def extra(self, arg0: typing.List[std::any]) -> None:
        pass
    @property
    def ln_a(self) -> Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>:
        """
        :type: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>
        """
    @ln_a.setter
    def ln_a(self, arg0: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>) -> None:
        pass
    @property
    def ln_g(self) -> Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>:
        """
        :type: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>
        """
    @ln_g.setter
    def ln_g(self, arg0: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>) -> None:
        pass
    pass
class ActivityPropsConstRef():
    @property
    def Cpex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def Cvex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def Gex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def Hex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def Vex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def VexP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def VexT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def extra(self) -> typing.List[std::any]:
        """
        :type: typing.List[std::any]
        """
    @property
    def ln_a(self) -> Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >:
        """
        :type: Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >
        """
    @property
    def ln_g(self) -> Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >:
        """
        :type: Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >
        """
    pass
class ActivityPropsRef():
    @property
    def Cpex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Cpex.setter
    def Cpex(self, arg1: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Cvex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Cvex.setter
    def Cvex(self, arg1: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Gex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Gex.setter
    def Gex(self, arg1: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Hex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Hex.setter
    def Hex(self, arg1: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Vex(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Vex.setter
    def Vex(self, arg1: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def VexP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @VexP.setter
    def VexP(self, arg1: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def VexT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @VexT.setter
    def VexT(self, arg1: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def extra(self) -> typing.List[std::any]:
        """
        :type: typing.List[std::any]
        """
    @extra.setter
    def extra(self, arg1: typing.List[std::any]) -> None:
        pass
    @property
    def ln_a(self) -> Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>,0,Eigen::InnerStride<1> >:
        """
        :type: Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>,0,Eigen::InnerStride<1> >
        """
    @ln_a.setter
    def ln_a(self, arg0: Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>,0,Eigen::InnerStride<1> >) -> None:
        pass
    @property
    def ln_g(self) -> Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>,0,Eigen::InnerStride<1> >:
        """
        :type: Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>,0,Eigen::InnerStride<1> >
        """
    @ln_g.setter
    def ln_g(self, arg0: Eigen::Ref<Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>,0,Eigen::InnerStride<1> >) -> None:
        pass
    pass
class AggregateState():
    """
    Members:

      Gas

      Liquid

      Solid

      Plasma

      CondensedPhase

      Fluid

      LiquidCrystal

      CrystallineSolid

      AmorphousSolid

      Vitreous

      Adsorbed

      Monomeric

      Polymeric

      SolidSolution

      IonExchange

      Aqueous

      Undefined
    """
    def __eq__(self, other: object) -> bool: ...
    def __getstate__(self) -> int: ...
    def __hash__(self) -> int: ...
    def __index__(self) -> int: ...
    def __init__(self, value: int) -> None: ...
    def __int__(self) -> int: ...
    def __ne__(self, other: object) -> bool: ...
    def __repr__(self) -> str: ...
    def __setstate__(self, state: int) -> None: ...
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @property
    def value(self) -> int:
        """
        :type: int
        """
    Adsorbed: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Adsorbed: 10>
    AmorphousSolid: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.AmorphousSolid: 8>
    Aqueous: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Aqueous: 15>
    CondensedPhase: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.CondensedPhase: 4>
    CrystallineSolid: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.CrystallineSolid: 7>
    Fluid: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Fluid: 5>
    Gas: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Gas: 0>
    IonExchange: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.IonExchange: 14>
    Liquid: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Liquid: 1>
    LiquidCrystal: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.LiquidCrystal: 6>
    Monomeric: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Monomeric: 11>
    Plasma: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Plasma: 3>
    Polymeric: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Polymeric: 12>
    Solid: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Solid: 2>
    SolidSolution: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.SolidSolution: 13>
    Undefined: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Undefined: 16>
    Vitreous: reaktoro.reaktoro4py.AggregateState # value = <AggregateState.Vitreous: 9>
    __members__: dict # value = {'Gas': <AggregateState.Gas: 0>, 'Liquid': <AggregateState.Liquid: 1>, 'Solid': <AggregateState.Solid: 2>, 'Plasma': <AggregateState.Plasma: 3>, 'CondensedPhase': <AggregateState.CondensedPhase: 4>, 'Fluid': <AggregateState.Fluid: 5>, 'LiquidCrystal': <AggregateState.LiquidCrystal: 6>, 'CrystallineSolid': <AggregateState.CrystallineSolid: 7>, 'AmorphousSolid': <AggregateState.AmorphousSolid: 8>, 'Vitreous': <AggregateState.Vitreous: 9>, 'Adsorbed': <AggregateState.Adsorbed: 10>, 'Monomeric': <AggregateState.Monomeric: 11>, 'Polymeric': <AggregateState.Polymeric: 12>, 'SolidSolution': <AggregateState.SolidSolution: 13>, 'IonExchange': <AggregateState.IonExchange: 14>, 'Aqueous': <AggregateState.Aqueous: 15>, 'Undefined': <AggregateState.Undefined: 16>}
    pass
class AqueousMixture():
    def __init__(self, arg0: SpeciesList) -> None: ...
    def anions(self) -> SpeciesList: ...
    def cations(self) -> SpeciesList: ...
    def charged(self) -> SpeciesList: ...
    def charges(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def clone(self) -> AqueousMixture: ...
    def dissociationMatrix(self) -> numpy.ndarray[numpy.float64, _Shape[m, n]]: ...
    def indexWater(self) -> int: ...
    def indicesAnions(self) -> typing.List[int]: ...
    def indicesCations(self) -> typing.List[int]: ...
    def indicesCharged(self) -> typing.List[int]: ...
    def indicesNeutral(self) -> typing.List[int]: ...
    def neutral(self) -> SpeciesList: ...
    @typing.overload
    def species(self) -> SpeciesList: ...
    @typing.overload
    def species(self, arg0: int) -> Species: ...
    @staticmethod
    def state(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withWaterDensityFn(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withWaterDielectricConstantFn(*args, **kwargs) -> typing.Any: ...
    pass
class AqueousMixtureState():
    def __init__(self) -> None: ...
    @property
    def Ie(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Ie.setter
    def Ie(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Is(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Is.setter
    def Is(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def P(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @P.setter
    def P(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def T(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @T.setter
    def T(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def epsilon(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @epsilon.setter
    def epsilon(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def m(self) -> Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>:
        """
        :type: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>
        """
    @m.setter
    def m(self, arg0: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>) -> None:
        pass
    @property
    def ms(self) -> Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>:
        """
        :type: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>
        """
    @ms.setter
    def ms(self, arg0: Eigen::Array<autodiff::detail::Real<1,double>,-1,1,0,-1,1>) -> None:
        pass
    @property
    def rho(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @rho.setter
    def rho(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class GenericPhase():
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate, arg1: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: StringList) -> None: ...
    @staticmethod
    def activityModel(*args, **kwargs) -> typing.Any: ...
    def additionalAggregateStates(self) -> typing.List[AggregateState]: ...
    def aggregateState(self) -> AggregateState: ...
    def convert(self, arg0: Database, arg1: typing.List[str]) -> Phase: ...
    def elements(self) -> typing.List[str]: ...
    @staticmethod
    def idealActivityModel(*args, **kwargs) -> typing.Any: ...
    def name(self) -> str: ...
    def named(self, arg0: str) -> GenericPhase: ...
    @staticmethod
    @typing.overload
    def set(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def set(self, arg0: AggregateState) -> GenericPhase: ...
    @staticmethod
    def setActivityModel(*args, **kwargs) -> typing.Any: ...
    def setAggregateState(self, arg0: AggregateState) -> GenericPhase: ...
    @staticmethod
    def setIdealActivityModel(*args, **kwargs) -> typing.Any: ...
    def setName(self, arg0: str) -> GenericPhase: ...
    @staticmethod
    def setStateOfMatter(*args, **kwargs) -> typing.Any: ...
    def species(self) -> typing.List[str]: ...
    @staticmethod
    def stateOfMatter(*args, **kwargs) -> typing.Any: ...
    pass
class AqueousProps():
    @staticmethod
    def Eh(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self, arg0: ChemicalProps) -> None: ...
    @typing.overload
    def __init__(self, arg0: ChemicalState) -> None: ...
    @typing.overload
    def __init__(self, arg0: ChemicalSystem) -> None: ...
    def __repr__(self) -> str: ...
    @staticmethod
    def alkalinity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementMolalities(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementMolality(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def ionicStrength(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def ionicStrengthEffective(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def ionicStrengthStoichiometric(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def output(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def output(self, arg0: str) -> None: ...
    @staticmethod
    def pE(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def pH(*args, **kwargs) -> typing.Any: ...
    def phase(self) -> Phase: ...
    @staticmethod
    def pressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesMolalities(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesMolality(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def temperature(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def update(self, arg0: ChemicalProps) -> None: ...
    @typing.overload
    def update(self, arg0: ChemicalState) -> None: ...
    pass
class ChemicalFormula():
    def __eq__(self, arg0: ChemicalFormula) -> bool: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @typing.overload
    def __init__(self, formula: str, symbols: typing.List[typing.Tuple[str, float]], charge: float) -> None: ...
    def charge(self) -> float: ...
    def coefficient(self, arg0: str) -> float: ...
    def coefficients(self) -> typing.List[float]: ...
    def elements(self) -> typing.List[typing.Tuple[str, float]]: ...
    def equivalent(self, arg0: ChemicalFormula) -> bool: ...
    def str(self) -> str: ...
    def symbols(self) -> typing.List[str]: ...
    __hash__ = None
    pass
class ChemicalProps():
    @staticmethod
    def __init__(*args, **kwargs) -> typing.Any: ...
    def __repr__(self) -> str: ...
    @staticmethod
    def activity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def activityCoefficient(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def amount(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def chemicalPotential(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def chemicalPotentials(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementAmount(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementAmountAmongSpecies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementAmountInPhase(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementAmountsAmongSpecies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementAmountsInPhase(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def enthalpy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def entropy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def gibbsEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def helmholtzEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def internalEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lgActivity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lgActivityCoefficient(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lnActivities(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lnActivity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lnActivityCoefficient(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lnActivityCoefficients(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def mass(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def moleFraction(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def moleFractions(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def output(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def output(self, arg0: str) -> None: ...
    @staticmethod
    def phaseProps(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def pressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesAmount(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesMass(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesMasses(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEnthalpies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEnthalpy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEntropies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEntropy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardGibbsEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardGibbsEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstP(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstV(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacityConstP(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacityConstV(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHelmholtzEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHelmholtzEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardInternalEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardInternalEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardVolume(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardVolumes(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def system(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def temperature(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def update(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def update(self, arg0: numpy.ndarray[numpy.float64, _Shape[m, 1]]) -> None: ...
    @staticmethod
    def updateIdeal(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def volume(*args, **kwargs) -> typing.Any: ...
    pass
class ChemicalPropsPhase():
    @staticmethod
    def __init__(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def amount(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def chemicalPotentials(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def data(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def enthalpy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def entropy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def gibbsEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def helmholtzEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def internalEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lnActivities(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lnActivityCoefficients(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def mass(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarDensity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarEnthalpy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarEntropy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarGibbsEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarHeatCapacityConstP(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarHeatCapacityConstV(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarHelmholtzEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarInternalEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def molarVolume(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def moleFractions(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def phase(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def pressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEnthalpies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEntropies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardGibbsEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstP(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstV(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHelmholtzEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardInternalEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardVolumes(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def temperature(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def update(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def updateIdeal(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def volume(*args, **kwargs) -> typing.Any: ...
    pass
class ChemicalState():
    @staticmethod
    def __init__(*args, **kwargs) -> typing.Any: ...
    def __repr__(self) -> str: ...
    @staticmethod
    def add(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elementAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def equilibrium(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def output(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def output(self, arg0: str) -> None: ...
    @staticmethod
    def pressure(*args, **kwargs) -> typing.Any: ...
    def props(self) -> ChemicalProps: ...
    @staticmethod
    def set(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def setPressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def setSpeciesAmount(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def setSpeciesAmounts(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def setSpeciesAmounts(self, arg0: float) -> None: ...
    @typing.overload
    def setSpeciesAmounts(self, arg0: numpy.ndarray[numpy.float64]) -> None: ...
    @staticmethod
    def setSpeciesMass(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def setTemperature(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesAmount(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesMass(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def system(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def temperature(*args, **kwargs) -> typing.Any: ...
    pass
class ChemicalSystem():
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @staticmethod
    def database(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def element(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def elements(*args, **kwargs) -> typing.Any: ...
    def formulaMatrix(self) -> numpy.ndarray[numpy.float64, _Shape[m, n]]: ...
    def formulaMatrixCharge(self) -> numpy.ndarray[numpy.float64, _Shape[m, n]]: ...
    def formulaMatrixElements(self) -> numpy.ndarray[numpy.float64, _Shape[m, n]]: ...
    @staticmethod
    def phase(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def phases(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def species(*args, **kwargs) -> typing.Any: ...
    pass
class CubicEOSModel():
    """
    Members:

      VanDerWaals

      RedlichKwong

      SoaveRedlichKwong

      PengRobinson
    """
    def __eq__(self, other: object) -> bool: ...
    def __getstate__(self) -> int: ...
    def __hash__(self) -> int: ...
    def __index__(self) -> int: ...
    def __init__(self, value: int) -> None: ...
    def __int__(self) -> int: ...
    def __ne__(self, other: object) -> bool: ...
    def __repr__(self) -> str: ...
    def __setstate__(self, state: int) -> None: ...
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @property
    def value(self) -> int:
        """
        :type: int
        """
    PengRobinson: reaktoro.reaktoro4py.CubicEOSModel # value = <CubicEOSModel.PengRobinson: 3>
    RedlichKwong: reaktoro.reaktoro4py.CubicEOSModel # value = <CubicEOSModel.RedlichKwong: 1>
    SoaveRedlichKwong: reaktoro.reaktoro4py.CubicEOSModel # value = <CubicEOSModel.SoaveRedlichKwong: 2>
    VanDerWaals: reaktoro.reaktoro4py.CubicEOSModel # value = <CubicEOSModel.VanDerWaals: 0>
    __members__: dict # value = {'VanDerWaals': <CubicEOSModel.VanDerWaals: 0>, 'RedlichKwong': <CubicEOSModel.RedlichKwong: 1>, 'SoaveRedlichKwong': <CubicEOSModel.SoaveRedlichKwong: 2>, 'PengRobinson': <CubicEOSModel.PengRobinson: 3>}
    pass
class Database():
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[Reaktoro::Element], arg1: typing.List[Reaktoro::Species]) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[Reaktoro::Species]) -> None: ...
    @staticmethod
    def addElement(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def addSpecies(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def addSpecies(self, arg0: typing.List[Reaktoro::Species]) -> None: ...
    @staticmethod
    def attachData(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def attachedData(*args, **kwargs) -> typing.Any: ...
    def clear(self) -> None: ...
    @staticmethod
    def elements(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def fromFile(arg0: str) -> Database: ...
    @staticmethod
    def species(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def speciesWithAggregateState(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withName(arg0: str) -> Database: ...
    pass
class Element():
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @typing.overload
    def __init__(self, symbol: str, molar_mass: float, name: str = '', tags: typing.List[str] = []) -> None: ...
    def clone(self) -> Element: ...
    def molarMass(self) -> float: ...
    def name(self) -> str: ...
    def symbol(self) -> str: ...
    def tags(self) -> typing.List[str]: ...
    def withMolarMass(self, arg0: float) -> Element: ...
    def withName(self, arg0: str) -> Element: ...
    def withSymbol(self, arg0: str) -> Element: ...
    def withTags(self, arg0: StringList) -> Element: ...
    pass
class ElementList():
    def __getitem__(self, arg0: int) -> Element: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[Element]) -> None: ...
    def __iter__(self) -> typing.Iterator: ...
    def append(self, arg0: Element) -> None: ...
    def data(self) -> typing.List[Element]: ...
    def find(self, arg0: str) -> int: ...
    def findWithName(self, arg0: str) -> int: ...
    def findWithSymbol(self, arg0: str) -> int: ...
    def get(self, arg0: str) -> Element: ...
    def getWithName(self, arg0: str) -> Element: ...
    def getWithSymbol(self, arg0: str) -> Element: ...
    def index(self, arg0: str) -> int: ...
    def indexWithName(self, arg0: str) -> int: ...
    def indexWithSymbol(self, arg0: str) -> int: ...
    def size(self) -> int: ...
    def withNames(self, arg0: StringList) -> ElementList: ...
    def withSymbols(self, arg0: StringList) -> ElementList: ...
    def withTag(self, arg0: str) -> ElementList: ...
    def withTags(self, arg0: StringList) -> ElementList: ...
    def withoutTag(self, arg0: str) -> ElementList: ...
    def withoutTags(self, arg0: StringList) -> ElementList: ...
    pass
class ElementalComposition():
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[typing.Tuple[Element, float]]) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[typing.Tuple[str, float]]) -> None: ...
    def coefficient(self, arg0: str) -> float: ...
    def coefficients(self) -> typing.List[float]: ...
    def molarMass(self) -> float: ...
    def repr(self) -> str: ...
    def size(self) -> int: ...
    def symbols(self) -> typing.List[str]: ...
    pass
class EquilibriumConditions():
    @staticmethod
    def Eh(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def __init__(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def activity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def chemicalPotential(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def enthalpy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def entropy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def fugacity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def gibbsEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def helmholtzEnergy(*args, **kwargs) -> typing.Any: ...
    def inputNames(self) -> typing.List[str]: ...
    @staticmethod
    def inputValues(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def internalEnergy(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lgActivity(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def lnActivity(*args, **kwargs) -> typing.Any: ...
    def lowerBoundsControlVariablesP(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    @staticmethod
    def pE(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def pH(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def pMg(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def pressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def set(*args, **kwargs) -> typing.Any: ...
    def setLowerBoundPressure(self, arg0: float, arg1: str) -> None: ...
    def setLowerBoundTemperature(self, arg0: float, arg1: str) -> None: ...
    def setLowerBoundTitrant(self, arg0: str, arg1: float, arg2: str) -> None: ...
    def setUpperBoundPressure(self, arg0: float, arg1: str) -> None: ...
    def setUpperBoundTemperature(self, arg0: float, arg1: str) -> None: ...
    def setUpperBoundTitrant(self, arg0: str, arg1: float, arg2: str) -> None: ...
    def system(self) -> ChemicalSystem: ...
    @staticmethod
    def temperature(*args, **kwargs) -> typing.Any: ...
    def upperBoundsControlVariablesP(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    @staticmethod
    def volume(*args, **kwargs) -> typing.Any: ...
    pass
class EquilibriumConstraintChemicalPotential():
    def __init__(self) -> None: ...
    @property
    def fn(self) -> typing.Callable[[ChemicalProps, Eigen::Ref<Eigen::Matrix<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >], autodiff::detail::Real<1,double>]:
        """
        :type: typing.Callable[[ChemicalProps, Eigen::Ref<Eigen::Matrix<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >], autodiff::detail::Real<1,double>]
        """
    @fn.setter
    def fn(self, arg0: typing.Callable[[ChemicalProps, Eigen::Ref<Eigen::Matrix<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >], autodiff::detail::Real<1,double>]) -> None:
        pass
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @name.setter
    def name(self, arg0: str) -> None:
        pass
    @property
    def substance(self) -> ChemicalFormula:
        """
        :type: ChemicalFormula
        """
    @substance.setter
    def substance(self, arg0: ChemicalFormula) -> None:
        pass
    pass
class EquilibriumConstraintEquation():
    def __init__(self) -> None: ...
    @property
    def fn(self) -> typing.Callable[[ChemicalProps, Eigen::Ref<Eigen::Matrix<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >], autodiff::detail::Real<1,double>]:
        """
        :type: typing.Callable[[ChemicalProps, Eigen::Ref<Eigen::Matrix<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >], autodiff::detail::Real<1,double>]
        """
    @fn.setter
    def fn(self, arg0: typing.Callable[[ChemicalProps, Eigen::Ref<Eigen::Matrix<autodiff::detail::Real<1,double>,-1,1,0,-1,1> const ,0,Eigen::InnerStride<1> >], autodiff::detail::Real<1,double>]) -> None:
        pass
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @name.setter
    def name(self, arg0: str) -> None:
        pass
    pass
class EquilibriumDims():
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @property
    def Nb(self) -> int:
        """
        :type: int
        """
    @Nb.setter
    def Nb(self, arg0: int) -> None:
        pass
    @property
    def Ne(self) -> int:
        """
        :type: int
        """
    @Ne.setter
    def Ne(self, arg0: int) -> None:
        pass
    @property
    def Nn(self) -> int:
        """
        :type: int
        """
    @Nn.setter
    def Nn(self, arg0: int) -> None:
        pass
    @property
    def Np(self) -> int:
        """
        :type: int
        """
    @Np.setter
    def Np(self, arg0: int) -> None:
        pass
    @property
    def Nq(self) -> int:
        """
        :type: int
        """
    @Nq.setter
    def Nq(self, arg0: int) -> None:
        pass
    @property
    def Nt(self) -> int:
        """
        :type: int
        """
    @Nt.setter
    def Nt(self, arg0: int) -> None:
        pass
    @property
    def Nu(self) -> int:
        """
        :type: int
        """
    @Nu.setter
    def Nu(self, arg0: int) -> None:
        pass
    @property
    def Nw(self) -> int:
        """
        :type: int
        """
    @Nw.setter
    def Nw(self, arg0: int) -> None:
        pass
    @property
    def Nx(self) -> int:
        """
        :type: int
        """
    @Nx.setter
    def Nx(self, arg0: int) -> None:
        pass
    pass
class EquilibriumOptions():
    def __init__(self) -> None: ...
    @property
    def epsilon(self) -> float:
        """
        :type: float
        """
    @epsilon.setter
    def epsilon(self, arg0: float) -> None:
        pass
    @property
    def optima(self) -> Optima::Options:
        """
        :type: Optima::Options
        """
    @optima.setter
    def optima(self, arg0: Optima::Options) -> None:
        pass
    pass
class EquilibriumRestrictions():
    def __init__(self, arg0: ChemicalSystem) -> None: ...
    @typing.overload
    def canDecreaseFreely(self, arg0: int) -> None: ...
    @typing.overload
    def canDecreaseFreely(self, arg0: str) -> None: ...
    @typing.overload
    def canIncreaseFreely(self, arg0: int) -> None: ...
    @typing.overload
    def canIncreaseFreely(self, arg0: str) -> None: ...
    @typing.overload
    def canReactFreely(self, arg0: int) -> None: ...
    @typing.overload
    def canReactFreely(self, arg0: str) -> None: ...
    @typing.overload
    def cannotDecrease(self, arg0: int) -> None: ...
    @typing.overload
    def cannotDecrease(self, arg0: str) -> None: ...
    @typing.overload
    def cannotDecreaseBelow(self, arg0: int, arg1: float, arg2: str) -> None: ...
    @typing.overload
    def cannotDecreaseBelow(self, arg0: str, arg1: float, arg2: str) -> None: ...
    @typing.overload
    def cannotIncrease(self, arg0: int) -> None: ...
    @typing.overload
    def cannotIncrease(self, arg0: str) -> None: ...
    @typing.overload
    def cannotIncreaseAbove(self, arg0: int, arg1: float, arg2: str) -> None: ...
    @typing.overload
    def cannotIncreaseAbove(self, arg0: str, arg1: float, arg2: str) -> None: ...
    @typing.overload
    def cannotReact(self, arg0: int) -> None: ...
    @typing.overload
    def cannotReact(self, arg0: str) -> None: ...
    def speciesCannotDecrease(self) -> typing.Set[int]: ...
    def speciesCannotDecreaseBelow(self) -> typing.Dict[int, float]: ...
    def speciesCannotIncrease(self) -> typing.Set[int]: ...
    def speciesCannotIncreaseAbove(self) -> typing.Dict[int, float]: ...
    def system(self) -> ChemicalSystem: ...
    pass
class EquilibriumProblem(EquilibriumConditions, EquilibriumRestrictions):
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self, arg0: ChemicalSystem) -> None: ...
    @staticmethod
    def initialComponentAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def initialPressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def initialSpeciesAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def initialTemperature(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def startWith(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def startWithComponentAmounts(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def startWithPressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def startWithSpeciesAmounts(*args, **kwargs) -> typing.Any: ...
    def startWithState(self, arg0: ChemicalState) -> None: ...
    @staticmethod
    def startWithTemperature(*args, **kwargs) -> typing.Any: ...
    pass
class EquilibriumResult():
    def __init__(self) -> None: ...
    @property
    def optima(self) -> Optima::Result:
        """
        :type: Optima::Result
        """
    @optima.setter
    def optima(self, arg0: Optima::Result) -> None:
        pass
    pass
class EquilibriumSolver():
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self, arg0: ChemicalSystem) -> None: ...
    def setOptions(self, arg0: EquilibriumOptions) -> None: ...
    @typing.overload
    def solve(self, arg0: ChemicalState) -> EquilibriumResult: ...
    @typing.overload
    def solve(self, arg0: ChemicalState, arg1: EquilibriumConditions) -> EquilibriumResult: ...
    @typing.overload
    def solve(self, arg0: ChemicalState, arg1: EquilibriumConditions, arg2: EquilibriumRestrictions) -> EquilibriumResult: ...
    @typing.overload
    def solve(self, arg0: ChemicalState, arg1: EquilibriumRestrictions) -> EquilibriumResult: ...
    pass
class EquilibriumSpecs():
    def Eh(self) -> None: ...
    def __init__(self, arg0: ChemicalSystem) -> None: ...
    def activity(self, arg0: str) -> None: ...
    @typing.overload
    def addConstraint(self, arg0: EquilibriumConstraintChemicalPotential) -> None: ...
    @typing.overload
    def addConstraint(self, arg0: EquilibriumConstraintEquation) -> None: ...
    @typing.overload
    def addInput(self, arg0: Param) -> int: ...
    @typing.overload
    def addInput(self, arg0: str) -> int: ...
    def chemicalPotential(self, arg0: str) -> None: ...
    def constraintsChemicalPotentialType(self) -> typing.List[EquilibriumConstraintChemicalPotential]: ...
    def constraintsEquationType(self) -> typing.List[EquilibriumConstraintEquation]: ...
    def enthalpy(self) -> None: ...
    def entropy(self) -> None: ...
    def fugacity(self, arg0: str) -> None: ...
    def gibbsEnergy(self) -> None: ...
    def helmholtzEnergy(self) -> None: ...
    def indexControlVariablePressure(self) -> int: ...
    def indexControlVariableTemperature(self) -> int: ...
    def indicesParams(self) -> typing.List[int]: ...
    def inputs(self) -> typing.List[str]: ...
    def internalEnergy(self) -> None: ...
    def isPressureUnknown(self) -> bool: ...
    def isTemperatureUnknown(self) -> bool: ...
    def lgActivity(self, arg0: str) -> None: ...
    @typing.overload
    def lnActivity(self, arg0: Species) -> None: ...
    @typing.overload
    def lnActivity(self, arg0: str) -> None: ...
    def namesConstraints(self) -> typing.List[str]: ...
    def namesConstraintsChemicalPotentialType(self) -> typing.List[str]: ...
    def namesConstraintsEquationType(self) -> typing.List[str]: ...
    def namesControlVariables(self) -> typing.List[str]: ...
    def namesControlVariablesP(self) -> typing.List[str]: ...
    def namesControlVariablesQ(self) -> typing.List[str]: ...
    def namesInputs(self) -> typing.List[str]: ...
    def namesParams(self) -> typing.List[str]: ...
    def namesTitrants(self) -> typing.List[str]: ...
    def namesTitrantsExplicit(self) -> typing.List[str]: ...
    def namesTitrantsImplicit(self) -> typing.List[str]: ...
    def numConstraints(self) -> int: ...
    def numConstraintsChemicalPotentialType(self) -> int: ...
    def numConstraintsEquationType(self) -> int: ...
    def numControlVariables(self) -> int: ...
    def numControlVariablesP(self) -> int: ...
    def numControlVariablesQ(self) -> int: ...
    def numInputs(self) -> int: ...
    def numParams(self) -> int: ...
    def numTitrants(self) -> int: ...
    def numTitrantsExplicit(self) -> int: ...
    def numTitrantsImplicit(self) -> int: ...
    def openTo(self, arg0: ChemicalFormula) -> None: ...
    def pE(self) -> None: ...
    def pH(self) -> None: ...
    def pMg(self) -> None: ...
    def params(self) -> Params: ...
    def pressure(self) -> None: ...
    def system(self) -> ChemicalSystem: ...
    def temperature(self) -> None: ...
    def titrants(self) -> typing.List[ChemicalFormula]: ...
    def titrantsExplicit(self) -> typing.List[ChemicalFormula]: ...
    def titrantsImplicit(self) -> typing.List[ChemicalFormula]: ...
    def volume(self) -> None: ...
    pass
class Exclude():
    def __init__(self) -> None: ...
    @property
    def tags(self) -> typing.List[str]:
        """
        :type: typing.List[str]
        """
    @tags.setter
    def tags(self, arg0: typing.List[str]) -> None:
        pass
    pass
class FormationReaction():
    def __init__(self) -> None: ...
    def clone(self) -> FormationReaction: ...
    @staticmethod
    def createStandardThermoModel(*args, **kwargs) -> typing.Any: ...
    def initialized(self) -> bool: ...
    @staticmethod
    def productStandardVolumeModel(*args, **kwargs) -> typing.Any: ...
    def reactants(self) -> typing.List[typing.Tuple[Reaktoro::Species, float]]: ...
    @staticmethod
    def reactionThermoModel(*args, **kwargs) -> typing.Any: ...
    def stoichiometry(self, arg0: str) -> float: ...
    @staticmethod
    def withEquilibriumConstant(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withProductStandardVolume(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withProductStandardVolumeModel(*args, **kwargs) -> typing.Any: ...
    def withReactants(self, arg0: typing.List[typing.Tuple[Reaktoro::Species, float]]) -> FormationReaction: ...
    @staticmethod
    def withReactionThermoModel(*args, **kwargs) -> typing.Any: ...
    pass
class GaseousPhase(GenericPhase):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate, arg1: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: StringList) -> None: ...
    pass
class AqueousPhase(GenericPhase):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate, arg1: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: StringList) -> None: ...
    pass
class GenericPhasesGenerator():
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate, arg1: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: StringList) -> None: ...
    @staticmethod
    def activityModel(*args, **kwargs) -> typing.Any: ...
    def additionalAggregateStates(self) -> typing.List[AggregateState]: ...
    def aggregateState(self) -> AggregateState: ...
    def convert(self, arg0: Database, arg1: typing.List[str]) -> typing.List[GenericPhase]: ...
    def elements(self) -> typing.List[str]: ...
    @staticmethod
    def idealActivityModel(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def set(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def set(self, arg0: AggregateState) -> GenericPhasesGenerator: ...
    @staticmethod
    def setActivityModel(*args, **kwargs) -> typing.Any: ...
    def setAggregateState(self, arg0: AggregateState) -> GenericPhasesGenerator: ...
    @staticmethod
    def setIdealActivityModel(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def setStateOfMatter(*args, **kwargs) -> typing.Any: ...
    def species(self) -> typing.List[str]: ...
    @staticmethod
    def stateOfMatter(*args, **kwargs) -> typing.Any: ...
    pass
class LiquidPhase(GenericPhase):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate, arg1: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: StringList) -> None: ...
    pass
class Memoization():
    @staticmethod
    def disable() -> None: 
        """
        Disable memoization optimization.
        """
    @staticmethod
    def enable() -> None: 
        """
        Enable memoization optimization.
        """
    @staticmethod
    def isDisabled() -> bool: 
        """
        Return true if memoization is currently disabled.
        """
    @staticmethod
    def isEnabled() -> bool: 
        """
        Return true if memoization is currently enabled.
        """
    pass
class MineralPhase(GenericPhase):
    def __init__(self, arg0: str) -> None: ...
    pass
class MineralPhases(GenericPhasesGenerator):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate) -> None: ...
    @typing.overload
    def __init__(self, arg0: Speciate, arg1: Exclude) -> None: ...
    @typing.overload
    def __init__(self, arg0: StringList) -> None: ...
    pass
class Param():
    @staticmethod
    def Constant(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Param) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: str, arg1: float) -> None: ...
    def assign(self, arg0: Param) -> Param: ...
    def clone(self) -> Param: ...
    @typing.overload
    def id(self) -> str: ...
    @typing.overload
    def id(self, arg0: str) -> Param: ...
    @typing.overload
    def isconst(self) -> bool: ...
    @typing.overload
    def isconst(self, arg0: bool) -> Param: ...
    @typing.overload
    def lowerbound(self) -> float: ...
    @typing.overload
    def lowerbound(self, arg0: float) -> Param: ...
    @typing.overload
    def upperbound(self) -> float: ...
    @typing.overload
    def upperbound(self, arg0: float) -> Param: ...
    @staticmethod
    def value(*args, **kwargs) -> typing.Any: ...
    pass
class Params():
    @typing.overload
    def __getitem__(self, arg0: int) -> Param: ...
    @typing.overload
    def __getitem__(self, arg0: str) -> Param: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    def __iter__(self) -> typing.Iterator: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: Param) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: str, arg1: Param) -> None: ...
    @staticmethod
    @typing.overload
    def append(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def append(self, arg0: Param) -> Param: ...
    def clone(self) -> Params: ...
    def data(self) -> typing.List[Param]: ...
    def exists(self, arg0: str) -> bool: ...
    def find(self, arg0: str) -> int: ...
    def get(self, arg0: str) -> Param: ...
    def index(self, arg0: str) -> int: ...
    def resize(self, arg0: int) -> None: ...
    def size(self) -> int: ...
    pass
class Phase():
    def __init__(self) -> None: ...
    @staticmethod
    def activityModel(*args, **kwargs) -> typing.Any: ...
    def aggregateState(self) -> AggregateState: ...
    def clone(self) -> Phase: ...
    def element(self, arg0: int) -> Element: ...
    def elements(self) -> ElementList: ...
    @staticmethod
    def idealActivityModel(*args, **kwargs) -> typing.Any: ...
    def name(self) -> str: ...
    @staticmethod
    def species(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def stateOfMatter(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withActivityModel(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withIdealActivityModel(*args, **kwargs) -> typing.Any: ...
    def withName(self, arg0: str) -> Phase: ...
    @staticmethod
    def withSpecies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def withStateOfMatter(*args, **kwargs) -> typing.Any: ...
    pass
class PhaseIdentificationMethod():
    """
    Members:

      None

      VolumeMethod

      IsothermalCompressibilityMethods

      GibbsEnergyAndEquationOfStateMethod
    """
    def __eq__(self, other: object) -> bool: ...
    def __getstate__(self) -> int: ...
    def __hash__(self) -> int: ...
    def __index__(self) -> int: ...
    def __init__(self, value: int) -> None: ...
    def __int__(self) -> int: ...
    def __ne__(self, other: object) -> bool: ...
    def __repr__(self) -> str: ...
    def __setstate__(self, state: int) -> None: ...
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @property
    def value(self) -> int:
        """
        :type: int
        """
    GibbsEnergyAndEquationOfStateMethod: reaktoro.reaktoro4py.PhaseIdentificationMethod # value = <PhaseIdentificationMethod.GibbsEnergyAndEquationOfStateMethod: 3>
    IsothermalCompressibilityMethods: reaktoro.reaktoro4py.PhaseIdentificationMethod # value = <PhaseIdentificationMethod.IsothermalCompressibilityMethods: 2>
    None: reaktoro.reaktoro4py.PhaseIdentificationMethod # value = <PhaseIdentificationMethod.None: 0>
    VolumeMethod: reaktoro.reaktoro4py.PhaseIdentificationMethod # value = <PhaseIdentificationMethod.VolumeMethod: 1>
    __members__: dict # value = {'None': <PhaseIdentificationMethod.None: 0>, 'VolumeMethod': <PhaseIdentificationMethod.VolumeMethod: 1>, 'IsothermalCompressibilityMethods': <PhaseIdentificationMethod.IsothermalCompressibilityMethods: 2>, 'GibbsEnergyAndEquationOfStateMethod': <PhaseIdentificationMethod.GibbsEnergyAndEquationOfStateMethod: 3>}
    pass
class PhaseList():
    def __getitem__(self, arg0: int) -> Phase: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[Phase]) -> None: ...
    def __iter__(self) -> typing.Iterator: ...
    def append(self, arg0: Phase) -> None: ...
    def data(self) -> typing.List[Phase]: ...
    def find(self, arg0: str) -> int: ...
    def findWithAggregateState(self, arg0: AggregateState) -> int: ...
    def findWithName(self, arg0: str) -> int: ...
    @typing.overload
    def findWithSpecies(self, arg0: int) -> int: ...
    @typing.overload
    def findWithSpecies(self, arg0: str) -> int: ...
    @staticmethod
    def findWithStateOfMatter(*args, **kwargs) -> typing.Any: ...
    def index(self, arg0: str) -> int: ...
    def indexWithAggregateState(self, arg0: AggregateState) -> int: ...
    def indexWithName(self, arg0: str) -> int: ...
    @typing.overload
    def indexWithSpecies(self, arg0: int) -> int: ...
    @typing.overload
    def indexWithSpecies(self, arg0: str) -> int: ...
    @staticmethod
    def indexWithStateOfMatter(*args, **kwargs) -> typing.Any: ...
    def numSpeciesUntilPhase(self, arg0: int) -> int: ...
    def size(self) -> int: ...
    def species(self) -> typing.List[Reaktoro::Species]: ...
    def withAggregateState(self, arg0: AggregateState) -> PhaseList: ...
    def withNames(self, arg0: StringList) -> PhaseList: ...
    @staticmethod
    def withStateOfMatter(*args, **kwargs) -> typing.Any: ...
    pass
class Phases():
    def __init__(self, arg0: Database) -> None: ...
    @staticmethod
    def add(*args, **kwargs) -> typing.Any: ...
    def convert(self) -> typing.List[Phase]: ...
    def database(self) -> Database: ...
    pass
class PhreeqcDatabase(Database):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @staticmethod
    def fromFile(arg0: str) -> PhreeqcDatabase: ...
    @staticmethod
    def withName(arg0: str) -> PhreeqcDatabase: ...
    pass
class ReactionEquation():
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[typing.Tuple[Reaktoro::Species, float]]) -> None: ...
    def coefficient(self, arg0: str) -> float: ...
    def coefficients(self) -> typing.List[float]: ...
    def empty(self) -> bool: ...
    def size(self) -> int: ...
    def species(self) -> typing.List[Reaktoro::Species]: ...
    pass
class ReactionThermoArgs():
    @property
    def P(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def T(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @property
    def dV0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    pass
class ReactionThermoModel():
    @typing.overload
    def __call__(self, arg0: ReactionThermoArgs) -> ReactionThermoProps: ...
    @typing.overload
    def __call__(self, arg0: ReactionThermoProps, arg1: ReactionThermoArgs) -> None: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Callable[[ReactionThermoArgs], ReactionThermoProps]) -> None: ...
    def apply(self, arg0: ReactionThermoProps, arg1: ReactionThermoArgs) -> None: ...
    def params(self) -> Params: ...
    pass
class ReactionThermoModelParamsConstLgK():
    @property
    def Pr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Pr.setter
    def Pr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def lgKr(self) -> Param:
        """
        :type: Param
        """
    @lgKr.setter
    def lgKr(self, arg0: Param) -> None:
        pass
    pass
class ReactionThermoModelParamsGemsLgK():
    @property
    def A0(self) -> Param:
        """
        :type: Param
        """
    @A0.setter
    def A0(self, arg0: Param) -> None:
        pass
    @property
    def A1(self) -> Param:
        """
        :type: Param
        """
    @A1.setter
    def A1(self, arg0: Param) -> None:
        pass
    @property
    def A2(self) -> Param:
        """
        :type: Param
        """
    @A2.setter
    def A2(self, arg0: Param) -> None:
        pass
    @property
    def A3(self) -> Param:
        """
        :type: Param
        """
    @A3.setter
    def A3(self, arg0: Param) -> None:
        pass
    @property
    def A4(self) -> Param:
        """
        :type: Param
        """
    @A4.setter
    def A4(self, arg0: Param) -> None:
        pass
    @property
    def A5(self) -> Param:
        """
        :type: Param
        """
    @A5.setter
    def A5(self, arg0: Param) -> None:
        pass
    @property
    def A6(self) -> Param:
        """
        :type: Param
        """
    @A6.setter
    def A6(self, arg0: Param) -> None:
        pass
    @property
    def Pr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Pr.setter
    def Pr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class ReactionThermoModelParamsPhreeqcLgK():
    @property
    def A1(self) -> Param:
        """
        :type: Param
        """
    @A1.setter
    def A1(self, arg0: Param) -> None:
        pass
    @property
    def A2(self) -> Param:
        """
        :type: Param
        """
    @A2.setter
    def A2(self, arg0: Param) -> None:
        pass
    @property
    def A3(self) -> Param:
        """
        :type: Param
        """
    @A3.setter
    def A3(self, arg0: Param) -> None:
        pass
    @property
    def A4(self) -> Param:
        """
        :type: Param
        """
    @A4.setter
    def A4(self, arg0: Param) -> None:
        pass
    @property
    def A5(self) -> Param:
        """
        :type: Param
        """
    @A5.setter
    def A5(self, arg0: Param) -> None:
        pass
    @property
    def A6(self) -> Param:
        """
        :type: Param
        """
    @A6.setter
    def A6(self, arg0: Param) -> None:
        pass
    @property
    def Pr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Pr.setter
    def Pr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class ReactionThermoModelParamsVantHoff():
    @property
    def Pr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Pr.setter
    def Pr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Tr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Tr.setter
    def Tr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def dHr(self) -> Param:
        """
        :type: Param
        """
    @dHr.setter
    def dHr(self, arg0: Param) -> None:
        pass
    @property
    def lgKr(self) -> Param:
        """
        :type: Param
        """
    @lgKr.setter
    def lgKr(self, arg0: Param) -> None:
        pass
    pass
class ReactionThermoProps():
    def __init__(self) -> None: ...
    @property
    def dG0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @dG0.setter
    def dG0(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def dH0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @dH0.setter
    def dH0(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class SolidPhase(GenericPhase):
    def __init__(self, arg0: StringList) -> None: ...
    pass
class Speciate():
    def __init__(self) -> None: ...
    @property
    def symbols(self) -> typing.List[str]:
        """
        :type: typing.List[str]
        """
    @symbols.setter
    def symbols(self, arg0: typing.List[str]) -> None:
        pass
    pass
class Species():
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    def aggregateState(self) -> AggregateState: ...
    @staticmethod
    def attachedData(*args, **kwargs) -> typing.Any: ...
    def charge(self) -> float: ...
    def clone(self) -> Species: ...
    def elements(self) -> ElementalComposition: ...
    def formula(self) -> ChemicalFormula: ...
    def molarMass(self) -> float: ...
    def name(self) -> str: ...
    @staticmethod
    def props(*args, **kwargs) -> typing.Any: ...
    def reaction(self) -> FormationReaction: ...
    @staticmethod
    def standardThermoModel(*args, **kwargs) -> typing.Any: ...
    def substance(self) -> str: ...
    def tags(self) -> typing.List[str]: ...
    def withAggregateState(self, arg0: AggregateState) -> Species: ...
    @staticmethod
    def withAttachedData(*args, **kwargs) -> typing.Any: ...
    def withCharge(self, arg0: float) -> Species: ...
    def withElements(self, arg0: ElementalComposition) -> Species: ...
    def withFormationReaction(self, arg0: FormationReaction) -> Species: ...
    def withFormula(self, arg0: str) -> Species: ...
    def withName(self, arg0: str) -> Species: ...
    def withStandardGibbsEnergy(self, arg0: Param) -> Species: ...
    @staticmethod
    def withStandardThermoModel(*args, **kwargs) -> typing.Any: ...
    def withSubstance(self, arg0: str) -> Species: ...
    def withTags(self, arg0: StringList) -> Species: ...
    pass
class SpeciesList():
    def __getitem__(self, arg0: int) -> Species: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: StringList) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[Species]) -> None: ...
    def __iter__(self) -> typing.Iterator: ...
    def append(self, arg0: Species) -> None: ...
    def data(self) -> typing.List[Species]: ...
    def elements(self) -> ElementList: ...
    def find(self, arg0: str) -> int: ...
    def findWithFormula(self, arg0: ChemicalFormula) -> int: ...
    def findWithName(self, arg0: str) -> int: ...
    def findWithSubstance(self, arg0: str) -> int: ...
    def get(self, arg0: str) -> Species: ...
    def getWithFormula(self, arg0: ChemicalFormula) -> Species: ...
    def getWithName(self, arg0: str) -> Species: ...
    def getWithSubstance(self, arg0: str) -> Species: ...
    def index(self, arg0: str) -> int: ...
    def indexWithFormula(self, arg0: ChemicalFormula) -> int: ...
    def indexWithName(self, arg0: str) -> int: ...
    def indexWithSubstance(self, arg0: str) -> int: ...
    def size(self) -> int: ...
    def withAggregateState(self, arg0: AggregateState) -> SpeciesList: ...
    def withElements(self, arg0: StringList) -> SpeciesList: ...
    def withElementsOf(self, arg0: StringList) -> SpeciesList: ...
    def withFormulas(self, arg0: StringList) -> SpeciesList: ...
    def withNames(self, arg0: StringList) -> SpeciesList: ...
    def withSubstances(self, arg0: StringList) -> SpeciesList: ...
    def withTag(self, arg0: str) -> SpeciesList: ...
    def withTags(self, arg0: StringList) -> SpeciesList: ...
    def withoutTag(self, arg0: str) -> SpeciesList: ...
    def withoutTags(self, arg0: StringList) -> SpeciesList: ...
    pass
class StandardThermoModel():
    @staticmethod
    def __call__(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @staticmethod
    def apply(*args, **kwargs) -> typing.Any: ...
    def params(self) -> Params: ...
    pass
class StandardThermoModelParamsConstant():
    @property
    def Cp0(self) -> Param:
        """
        :type: Param
        """
    @Cp0.setter
    def Cp0(self, arg0: Param) -> None:
        pass
    @property
    def Cv0(self) -> Param:
        """
        :type: Param
        """
    @Cv0.setter
    def Cv0(self, arg0: Param) -> None:
        pass
    @property
    def G0(self) -> Param:
        """
        :type: Param
        """
    @G0.setter
    def G0(self, arg0: Param) -> None:
        pass
    @property
    def H0(self) -> Param:
        """
        :type: Param
        """
    @H0.setter
    def H0(self, arg0: Param) -> None:
        pass
    @property
    def V0(self) -> Param:
        """
        :type: Param
        """
    @V0.setter
    def V0(self, arg0: Param) -> None:
        pass
    pass
class StandardThermoModelParamsHKF():
    @property
    def Gf(self) -> Param:
        """
        :type: Param
        """
    @Gf.setter
    def Gf(self, arg0: Param) -> None:
        pass
    @property
    def Hf(self) -> Param:
        """
        :type: Param
        """
    @Hf.setter
    def Hf(self, arg0: Param) -> None:
        pass
    @property
    def Sr(self) -> Param:
        """
        :type: Param
        """
    @Sr.setter
    def Sr(self, arg0: Param) -> None:
        pass
    @property
    def Tmax(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Tmax.setter
    def Tmax(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def a1(self) -> Param:
        """
        :type: Param
        """
    @a1.setter
    def a1(self, arg0: Param) -> None:
        pass
    @property
    def a2(self) -> Param:
        """
        :type: Param
        """
    @a2.setter
    def a2(self, arg0: Param) -> None:
        pass
    @property
    def a3(self) -> Param:
        """
        :type: Param
        """
    @a3.setter
    def a3(self, arg0: Param) -> None:
        pass
    @property
    def a4(self) -> Param:
        """
        :type: Param
        """
    @a4.setter
    def a4(self, arg0: Param) -> None:
        pass
    @property
    def c1(self) -> Param:
        """
        :type: Param
        """
    @c1.setter
    def c1(self, arg0: Param) -> None:
        pass
    @property
    def c2(self) -> Param:
        """
        :type: Param
        """
    @c2.setter
    def c2(self, arg0: Param) -> None:
        pass
    @property
    def charge(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @charge.setter
    def charge(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def wref(self) -> Param:
        """
        :type: Param
        """
    @wref.setter
    def wref(self, arg0: Param) -> None:
        pass
    pass
class StandardThermoModelParamsHollandPowell():
    @property
    def Gf(self) -> Param:
        """
        :type: Param
        """
    @Gf.setter
    def Gf(self, arg0: Param) -> None:
        pass
    @property
    def Hf(self) -> Param:
        """
        :type: Param
        """
    @Hf.setter
    def Hf(self, arg0: Param) -> None:
        pass
    @property
    def Sr(self) -> Param:
        """
        :type: Param
        """
    @Sr.setter
    def Sr(self, arg0: Param) -> None:
        pass
    @property
    def Tmax(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Tmax.setter
    def Tmax(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Vr(self) -> Param:
        """
        :type: Param
        """
    @Vr.setter
    def Vr(self, arg0: Param) -> None:
        pass
    @property
    def a(self) -> Param:
        """
        :type: Param
        """
    @a.setter
    def a(self, arg0: Param) -> None:
        pass
    @property
    def alpha0(self) -> Param:
        """
        :type: Param
        """
    @alpha0.setter
    def alpha0(self, arg0: Param) -> None:
        pass
    @property
    def b(self) -> Param:
        """
        :type: Param
        """
    @b.setter
    def b(self, arg0: Param) -> None:
        pass
    @property
    def c(self) -> Param:
        """
        :type: Param
        """
    @c.setter
    def c(self, arg0: Param) -> None:
        pass
    @property
    def d(self) -> Param:
        """
        :type: Param
        """
    @d.setter
    def d(self, arg0: Param) -> None:
        pass
    @property
    def kappa0(self) -> Param:
        """
        :type: Param
        """
    @kappa0.setter
    def kappa0(self, arg0: Param) -> None:
        pass
    @property
    def kappa0p(self) -> Param:
        """
        :type: Param
        """
    @kappa0p.setter
    def kappa0p(self, arg0: Param) -> None:
        pass
    @property
    def kappa0pp(self) -> Param:
        """
        :type: Param
        """
    @kappa0pp.setter
    def kappa0pp(self, arg0: Param) -> None:
        pass
    @property
    def numatoms(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @numatoms.setter
    def numatoms(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class StandardThermoModelParamsMaierKelley():
    @property
    def Gf(self) -> Param:
        """
        :type: Param
        """
    @Gf.setter
    def Gf(self, arg0: Param) -> None:
        pass
    @property
    def Hf(self) -> Param:
        """
        :type: Param
        """
    @Hf.setter
    def Hf(self, arg0: Param) -> None:
        pass
    @property
    def Sr(self) -> Param:
        """
        :type: Param
        """
    @Sr.setter
    def Sr(self, arg0: Param) -> None:
        pass
    @property
    def Tmax(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Tmax.setter
    def Tmax(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Vr(self) -> Param:
        """
        :type: Param
        """
    @Vr.setter
    def Vr(self, arg0: Param) -> None:
        pass
    @property
    def a(self) -> Param:
        """
        :type: Param
        """
    @a.setter
    def a(self, arg0: Param) -> None:
        pass
    @property
    def b(self) -> Param:
        """
        :type: Param
        """
    @b.setter
    def b(self, arg0: Param) -> None:
        pass
    @property
    def c(self) -> Param:
        """
        :type: Param
        """
    @c.setter
    def c(self, arg0: Param) -> None:
        pass
    pass
class StandardThermoModelParamsMineralHKF():
    @property
    def Gf(self) -> Param:
        """
        :type: Param
        """
    @Gf.setter
    def Gf(self, arg0: Param) -> None:
        pass
    @property
    def Hf(self) -> Param:
        """
        :type: Param
        """
    @Hf.setter
    def Hf(self, arg0: Param) -> None:
        pass
    @property
    def Htr(self) -> typing.List[Param]:
        """
        :type: typing.List[Param]
        """
    @Htr.setter
    def Htr(self, arg0: typing.List[Param]) -> None:
        pass
    @property
    def Sr(self) -> Param:
        """
        :type: Param
        """
    @Sr.setter
    def Sr(self, arg0: Param) -> None:
        pass
    @property
    def Tmax(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Tmax.setter
    def Tmax(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Ttr(self) -> typing.List[Param]:
        """
        :type: typing.List[Param]
        """
    @Ttr.setter
    def Ttr(self, arg0: typing.List[Param]) -> None:
        pass
    @property
    def Vr(self) -> Param:
        """
        :type: Param
        """
    @Vr.setter
    def Vr(self, arg0: Param) -> None:
        pass
    @property
    def Vtr(self) -> typing.List[Param]:
        """
        :type: typing.List[Param]
        """
    @Vtr.setter
    def Vtr(self, arg0: typing.List[Param]) -> None:
        pass
    @property
    def a(self) -> typing.List[Param]:
        """
        :type: typing.List[Param]
        """
    @a.setter
    def a(self, arg0: typing.List[Param]) -> None:
        pass
    @property
    def b(self) -> typing.List[Param]:
        """
        :type: typing.List[Param]
        """
    @b.setter
    def b(self, arg0: typing.List[Param]) -> None:
        pass
    @property
    def c(self) -> typing.List[Param]:
        """
        :type: typing.List[Param]
        """
    @c.setter
    def c(self, arg0: typing.List[Param]) -> None:
        pass
    @property
    def dPdTtr(self) -> typing.List[Param]:
        """
        :type: typing.List[Param]
        """
    @dPdTtr.setter
    def dPdTtr(self, arg0: typing.List[Param]) -> None:
        pass
    @property
    def ntr(self) -> int:
        """
        :type: int
        """
    @ntr.setter
    def ntr(self, arg0: int) -> None:
        pass
    pass
class StandardThermoModelParamsWaterHKF():
    @property
    def Gtr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Gtr.setter
    def Gtr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Htr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Htr.setter
    def Htr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Str(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Str.setter
    def Str(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Ttr(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Ttr.setter
    def Ttr(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class StandardThermoProps():
    def __init__(self) -> None: ...
    @property
    def Cp0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Cp0.setter
    def Cp0(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def Cv0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @Cv0.setter
    def Cv0(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def G0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @G0.setter
    def G0(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def H0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @H0.setter
    def H0(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def V0(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @V0.setter
    def V0(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class StateOfMatter():
    """
    Members:

      Solid

      Liquid

      Gas

      Plasma
    """
    def __eq__(self, other: object) -> bool: ...
    def __getstate__(self) -> int: ...
    def __hash__(self) -> int: ...
    def __index__(self) -> int: ...
    def __init__(self, value: int) -> None: ...
    def __int__(self) -> int: ...
    def __ne__(self, other: object) -> bool: ...
    def __repr__(self) -> str: ...
    def __setstate__(self, state: int) -> None: ...
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @property
    def value(self) -> int:
        """
        :type: int
        """
    Gas: reaktoro.reaktoro4py.StateOfMatter # value = <StateOfMatter.Gas: 2>
    Liquid: reaktoro.reaktoro4py.StateOfMatter # value = <StateOfMatter.Liquid: 1>
    Plasma: reaktoro.reaktoro4py.StateOfMatter # value = <StateOfMatter.Plasma: 3>
    Solid: reaktoro.reaktoro4py.StateOfMatter # value = <StateOfMatter.Solid: 0>
    __members__: dict # value = {'Solid': <StateOfMatter.Solid: 0>, 'Liquid': <StateOfMatter.Liquid: 1>, 'Gas': <StateOfMatter.Gas: 2>, 'Plasma': <StateOfMatter.Plasma: 3>}
    pass
class StringList():
    def __getitem__(self, arg0: int) -> str: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @typing.overload
    def __init__(self, arg0: str, arg1: str) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.List[str]) -> None: ...
    def __setitem__(self, arg0: int, arg1: str) -> None: ...
    def data(self) -> typing.List[str]: ...
    def empty(self) -> bool: ...
    def size(self) -> int: ...
    pass
class SupcrtDatabase(Database):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Database) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @staticmethod
    def fromFile(arg0: str) -> SupcrtDatabase: ...
    @staticmethod
    def withName(arg0: str) -> SupcrtDatabase: ...
    pass
class ThermoFunDatabase(Database):
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: str) -> None: ...
    @staticmethod
    def fromFile(arg0: str) -> ThermoFunDatabase: ...
    @staticmethod
    def withName(arg0: str) -> ThermoFunDatabase: ...
    pass
class ThermoProps():
    def __init__(self, arg0: ChemicalSystem) -> None: ...
    @staticmethod
    def phaseProps(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def pressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEnthalpies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEntropies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardGibbsEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstP(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstV(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHelmholtzEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardInternalEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardVolumes(*args, **kwargs) -> typing.Any: ...
    def system(self) -> ChemicalSystem: ...
    @staticmethod
    def temperature(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def update(*args, **kwargs) -> typing.Any: ...
    pass
class ThermoPropsPhase():
    def __init__(self, arg0: Phase) -> None: ...
    @staticmethod
    def data(*args, **kwargs) -> typing.Any: ...
    def phase(self) -> Phase: ...
    @staticmethod
    def pressure(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEnthalpies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardEntropies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardGibbsEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstP(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHeatCapacitiesConstV(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardHelmholtzEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardInternalEnergies(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def standardVolumes(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def temperature(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def update(*args, **kwargs) -> typing.Any: ...
    pass
class WaterElectroProps():
    def __init__(self) -> None: ...
    @property
    def bornN(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @bornN.setter
    def bornN(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def bornQ(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @bornQ.setter
    def bornQ(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def bornU(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @bornU.setter
    def bornU(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def bornX(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @bornX.setter
    def bornX(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def bornY(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @bornY.setter
    def bornY(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def bornZ(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @bornZ.setter
    def bornZ(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def epsilon(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @epsilon.setter
    def epsilon(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def epsilonP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @epsilonP.setter
    def epsilonP(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def epsilonPP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @epsilonPP.setter
    def epsilonPP(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def epsilonT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @epsilonT.setter
    def epsilonT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def epsilonTP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @epsilonTP.setter
    def epsilonTP(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def epsilonTT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @epsilonTT.setter
    def epsilonTT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class WaterHelmholtzProps():
    def __init__(self) -> None: ...
    @property
    def helmholtz(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtz.setter
    def helmholtz(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzD.setter
    def helmholtzD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzDD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzDD.setter
    def helmholtzDD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzDDD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzDDD.setter
    def helmholtzDDD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzT.setter
    def helmholtzT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzTD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzTD.setter
    def helmholtzTD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzTDD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzTDD.setter
    def helmholtzTDD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzTT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzTT.setter
    def helmholtzTT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzTTD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzTTD.setter
    def helmholtzTTD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtzTTT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtzTTT.setter
    def helmholtzTTT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class WaterThermoProps():
    def __init__(self) -> None: ...
    @property
    def cp(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @cp.setter
    def cp(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def cv(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @cv.setter
    def cv(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def density(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @density.setter
    def density(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def densityP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @densityP.setter
    def densityP(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def densityPP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @densityPP.setter
    def densityPP(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def densityT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @densityT.setter
    def densityT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def densityTP(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @densityTP.setter
    def densityTP(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def densityTT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @densityTT.setter
    def densityTT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def enthalpy(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @enthalpy.setter
    def enthalpy(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def entropy(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @entropy.setter
    def entropy(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def gibbs(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @gibbs.setter
    def gibbs(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def helmholtz(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @helmholtz.setter
    def helmholtz(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def internal_energy(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @internal_energy.setter
    def internal_energy(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def pressure(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @pressure.setter
    def pressure(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def pressureD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @pressureD.setter
    def pressureD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def pressureDD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @pressureDD.setter
    def pressureDD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def pressureT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @pressureT.setter
    def pressureT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def pressureTD(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @pressureTD.setter
    def pressureTD(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def pressureTT(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @pressureTT.setter
    def pressureTT(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def temperature(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @temperature.setter
    def temperature(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    @property
    def volume(self) -> autodiff::detail::Real<1,double>:
        """
        :type: autodiff::detail::Real<1,double>
        """
    @volume.setter
    def volume(self, arg0: autodiff::detail::Real<1,double>) -> None:
        pass
    pass
class _ChemicalStateEquilibrium():
    def b(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def controlVariablesP(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def controlVariablesQ(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def elementChemicalPotentials(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def explicitTitrantAmounts(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def implicitTitrantAmounts(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def indicesPrimarySpecies(self) -> numpy.ndarray[numpy.int64, _Shape[m, 1]]: ...
    def indicesSecondarySpecies(self) -> numpy.ndarray[numpy.int64, _Shape[m, 1]]: ...
    def indicesStrictlyUnstableElements(self) -> numpy.ndarray[numpy.int64, _Shape[m, 1]]: ...
    def indicesStrictlyUnstableSpecies(self) -> numpy.ndarray[numpy.int64, _Shape[m, 1]]: ...
    def initialComponentAmounts(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def inputNames(self) -> typing.List[str]: ...
    def inputValues(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def numPrimarySpecies(self) -> int: ...
    def numSecondarySpecies(self) -> int: ...
    @staticmethod
    def optimaState(*args, **kwargs) -> typing.Any: ...
    def p(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def q(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def setControlVariablesP(self, arg0: numpy.ndarray[numpy.float64, _Shape[m, 1]]) -> None: ...
    def setControlVariablesQ(self, arg0: numpy.ndarray[numpy.float64, _Shape[m, 1]]) -> None: ...
    def setIndicesPrimarySecondarySpecies(self, arg0: numpy.ndarray[numpy.int64, _Shape[m, 1]], arg1: int) -> None: ...
    def setIndicesStrictlyUnstableElements(self, arg0: numpy.ndarray[numpy.int64, _Shape[m, 1]]) -> None: ...
    def setIndicesStrictlyUnstableSpecies(self, arg0: numpy.ndarray[numpy.int64, _Shape[m, 1]]) -> None: ...
    def setInitialComponentAmounts(self, arg0: numpy.ndarray[numpy.float64, _Shape[m, 1]]) -> None: ...
    def setInputNames(self, arg0: typing.List[str]) -> None: ...
    def setInputValues(self, arg0: numpy.ndarray[numpy.float64, _Shape[m, 1]]) -> None: ...
    @staticmethod
    def setOptimaState(*args, **kwargs) -> typing.Any: ...
    def speciesStabilities(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    def w(self) -> numpy.ndarray[numpy.float64, _Shape[m, 1]]: ...
    pass
def ActivityModelDebyeHuckel(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelDebyeHuckelKielland(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelDebyeHuckelLimitingLaw(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelDebyeHuckelPHREEQC(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelDebyeHuckelWATEQ4F(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelDrummond(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelDuanSun(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelHKF(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelIdealAqueous(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelIdealGas(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelIdealSolution(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelPengRobinson(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelPitzerHMW(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelRedlichKister(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelRedlichKwong(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelRumpf(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelSetschenow(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelSoaveRedlichKwong(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelSpycherPruessEnnis(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelSpycherReed(*args, **kwargs) -> typing.Any:
    pass
def ActivityModelVanDerWaals(*args, **kwargs) -> typing.Any:
    pass
def ReactionThermoModelConstLgK(arg0: ReactionThermoModelParamsConstLgK) -> ReactionThermoModel:
    pass
def ReactionThermoModelGemsLgK(arg0: ReactionThermoModelParamsGemsLgK) -> ReactionThermoModel:
    pass
def ReactionThermoModelPhreeqcLgK(arg0: ReactionThermoModelParamsPhreeqcLgK) -> ReactionThermoModel:
    pass
def ReactionThermoModelPressureCorrection(arg0: Param) -> ReactionThermoModel:
    pass
def ReactionThermoModelVantHoff(arg0: ReactionThermoModelParamsVantHoff) -> ReactionThermoModel:
    pass
def ReactionThermoModelYAML(*args, **kwargs) -> typing.Any:
    pass
def StandardThermoModelConstant(arg0: StandardThermoModelParamsConstant) -> StandardThermoModel:
    pass
def StandardThermoModelHKF(arg0: StandardThermoModelParamsHKF) -> StandardThermoModel:
    pass
def StandardThermoModelHollandPowell(arg0: StandardThermoModelParamsHollandPowell) -> StandardThermoModel:
    pass
def StandardThermoModelMaierKelley(arg0: StandardThermoModelParamsMaierKelley) -> StandardThermoModel:
    pass
def StandardThermoModelMineralHKF(arg0: StandardThermoModelParamsMineralHKF) -> StandardThermoModel:
    pass
def StandardThermoModelWaterHKF(arg0: StandardThermoModelParamsWaterHKF) -> StandardThermoModel:
    pass
def StandardThermoModelYAML(*args, **kwargs) -> typing.Any:
    pass
def chain(*args, **kwargs) -> typing.Any:
    pass
@typing.overload
def equilibrate(arg0: ChemicalState) -> EquilibriumResult:
    pass
@typing.overload
def equilibrate(arg0: ChemicalState, arg1: EquilibriumOptions) -> EquilibriumResult:
    pass
def exclude(arg0: StringList) -> Exclude:
    pass
def identifyAggregateState(arg0: str) -> AggregateState:
    pass
def interpolate(*args, **kwargs) -> typing.Any:
    pass
def parseAggregateState(arg0: str) -> AggregateState:
    pass
def parseChemicalFormula(arg0: str) -> typing.List[typing.Tuple[str, float]]:
    pass
def parseElectricCharge(arg0: str) -> float:
    pass
def parseNumberStringPairs(arg0: str) -> typing.List[typing.Tuple[str, float]]:
    pass
def parseReaction(arg0: str) -> typing.List[typing.Tuple[str, float]]:
    pass
def parseReactionEquation(arg0: str) -> typing.List[typing.Tuple[str, float]]:
    pass
def speciate(arg0: StringList) -> Speciate:
    pass
def waterDensityHGK(*args, **kwargs) -> typing.Any:
    pass
def waterDensityWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterElectroPropsJohnsonNorton(*args, **kwargs) -> typing.Any:
    pass
def waterHelmholtzPropsHGK(*args, **kwargs) -> typing.Any:
    pass
def waterHelmholtzPropsWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterLiquidDensityHGK(*args, **kwargs) -> typing.Any:
    pass
def waterLiquidDensityWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterPressureHGK(*args, **kwargs) -> typing.Any:
    pass
def waterPressureWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterSaturatedLiquidDensityWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterSaturatedPressureWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterSaturatedVapourDensityWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterThermoProps(*args, **kwargs) -> typing.Any:
    pass
def waterThermoPropsHGK(*args, **kwargs) -> typing.Any:
    pass
def waterThermoPropsHGKMemoized(*args, **kwargs) -> typing.Any:
    pass
def waterThermoPropsWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
def waterThermoPropsWagnerPrussMemoized(*args, **kwargs) -> typing.Any:
    pass
def waterVaporDensityHGK(*args, **kwargs) -> typing.Any:
    pass
def waterVaporDensityWagnerPruss(*args, **kwargs) -> typing.Any:
    pass
barToPascal = 100000.0
calorieToJoule = 4.184
cubicCentimeterToCubicMeter = 1e-06
cubicMeterToCubicCentimeter = 1000000.0
faradayConstant = 96485.3329
jouleToCalorie = 0.239005736
ln10 = 2.302585092994046
universalGasConstant = 8.3144621
waterCriticalDensity = 322.0
waterCriticalPressure = 22064000.0
waterCriticalTemperature = 647.096
waterMolarMass = 0.018015268
waterTriplePointDensityLiquid = 999.793
waterTriplePointDensityVapour = 0.00485458
waterTriplePointPressure = 611.655
waterTriplePointTemperature = 273.16
