"""This is an automatically generated stub for `monica_state.capnp`."""

from __future__ import annotations

from collections.abc import Iterator, Sequence
from contextlib import contextmanager
from io import BufferedWriter
from typing import Any, BinaryIO, Literal, overload

from capnp import _DynamicListBuilder

from ...date_capnp import Date, DateBuilder, DateReader
from .monica_management_capnp import Params
from .monica_params_capnp import (
    AutomaticHarvestParameters,
    AutomaticHarvestParametersBuilder,
    AutomaticHarvestParametersReader,
    CropModuleParameters,
    CropModuleParametersBuilder,
    CropModuleParametersReader,
    CropParameters,
    CropParametersBuilder,
    CropParametersReader,
    CropResidueParameters,
    CropResidueParametersBuilder,
    CropResidueParametersReader,
    CultivarParameters,
    CultivarParametersBuilder,
    CultivarParametersReader,
    EnvironmentParameters,
    EnvironmentParametersBuilder,
    EnvironmentParametersReader,
    MeasuredGroundwaterTableInformation,
    MeasuredGroundwaterTableInformationBuilder,
    MeasuredGroundwaterTableInformationReader,
    SimulationParameters,
    SimulationParametersBuilder,
    SimulationParametersReader,
    SiteParameters,
    SiteParametersBuilder,
    SiteParametersReader,
    SoilMoistureModuleParameters,
    SoilMoistureModuleParametersBuilder,
    SoilMoistureModuleParametersReader,
    SoilOrganicModuleParameters,
    SoilOrganicModuleParametersBuilder,
    SoilOrganicModuleParametersReader,
    SoilParameters,
    SoilParametersBuilder,
    SoilParametersReader,
    SoilTemperatureModuleParameters,
    SoilTemperatureModuleParametersBuilder,
    SoilTemperatureModuleParametersReader,
    SoilTransportModuleParameters,
    SoilTransportModuleParametersBuilder,
    SoilTransportModuleParametersReader,
    SpeciesParameters,
    SpeciesParametersBuilder,
    SpeciesParametersReader,
    Voc,
    YieldComponent,
    YieldComponentBuilder,
    YieldComponentReader,
)

class MaybeBool:
    @property
    def value(self) -> bool: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[MaybeBoolReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> MaybeBoolReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        value: bool | None = None,
    ) -> MaybeBoolBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> MaybeBoolReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> MaybeBoolReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class MaybeBoolReader(MaybeBool):
    def as_builder(self) -> MaybeBoolBuilder: ...

class MaybeBoolBuilder(MaybeBool):
    @property
    def value(self) -> bool: ...
    @value.setter
    def value(self, value: bool) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> MaybeBoolBuilder: ...
    def copy(self) -> MaybeBoolBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> MaybeBoolReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class CropModuleState:
    @property
    def frostKillOn(self) -> bool: ...
    @property
    def ktko(self) -> float: ...
    @property
    def ktkc(self) -> float: ...
    @property
    def assimilatePartCoeffsReduced(self) -> bool: ...
    @property
    def o3WStomatalClosure(self) -> float: ...
    @property
    def o3SumUptake(self) -> float: ...
    @property
    def vsLatitude(self) -> float: ...
    @property
    def abovegroundBiomass(self) -> float: ...
    @property
    def abovegroundBiomassOld(self) -> float: ...
    @property
    def pcAbovegroundOrgan(self) -> Sequence[bool]: ...
    @property
    def actualTranspiration(self) -> float: ...
    @property
    def pcAssimilatePartitioningCoeff(self) -> Sequence[Sequence[float]]: ...
    @property
    def pcAssimilateReallocation(self) -> float: ...
    @property
    def assimilates(self) -> float: ...
    @property
    def assimilationRate(self) -> float: ...
    @property
    def astronomicDayLenght(self) -> float: ...
    @property
    def pcBaseDaylength(self) -> Sequence[float]: ...
    @property
    def pcBaseTemperature(self) -> Sequence[float]: ...
    @property
    def pcBeginSensitivePhaseHeatStress(self) -> float: ...
    @property
    def belowgroundBiomass(self) -> float: ...
    @property
    def belowgroundBiomassOld(self) -> float: ...
    @property
    def pcCarboxylationPathway(self) -> int: ...
    @property
    def clearDayRadiation(self) -> float: ...
    @property
    def pcCo2Method(self) -> int: ...
    @property
    def criticalNConcentration(self) -> float: ...
    @property
    def pcCriticalOxygenContent(self) -> Sequence[float]: ...
    @property
    def pcCriticalTemperatureHeatStress(self) -> float: ...
    @property
    def cropDiameter(self) -> float: ...
    @property
    def cropFrostRedux(self) -> float: ...
    @property
    def cropHeatRedux(self) -> float: ...
    @property
    def cropHeight(self) -> float: ...
    @property
    def pcCropHeightP1(self) -> float: ...
    @property
    def pcCropHeightP2(self) -> float: ...
    @property
    def pcCropName(self) -> str: ...
    @property
    def cropNDemand(self) -> float: ...
    @property
    def cropNRedux(self) -> float: ...
    @property
    def pcCropSpecificMaxRootingDepth(self) -> float: ...
    @property
    def cropWaterUptake(self) -> Sequence[float]: ...
    @property
    def currentTemperatureSum(self) -> Sequence[float]: ...
    @property
    def currentTotalTemperatureSum(self) -> float: ...
    @property
    def currentTotalTemperatureSumRoot(self) -> float: ...
    @property
    def pcCuttingDelayDays(self) -> int: ...
    @property
    def daylengthFactor(self) -> float: ...
    @property
    def pcDaylengthRequirement(self) -> Sequence[float]: ...
    @property
    def daysAfterBeginFlowering(self) -> int: ...
    @property
    def declination(self) -> float: ...
    @property
    def pcDefaultRadiationUseEfficiency(self) -> float: ...
    @property
    def vmDepthGroundwaterTable(self) -> int: ...
    @property
    def pcDevelopmentAccelerationByNitrogenStress(self) -> int: ...
    @property
    def developmentalStage(self) -> int: ...
    @property
    def noOfCropSteps(self) -> int: ...
    @property
    def droughtImpactOnFertility(self) -> float: ...
    @property
    def pcDroughtImpactOnFertilityFactor(self) -> float: ...
    @property
    def pcDroughtStressThreshold(self) -> Sequence[float]: ...
    @property
    def pcEmergenceFloodingControlOn(self) -> bool: ...
    @property
    def pcEmergenceMoistureControlOn(self) -> bool: ...
    @property
    def pcEndSensitivePhaseHeatStress(self) -> float: ...
    @property
    def effectiveDayLength(self) -> float: ...
    @property
    def errorStatus(self) -> bool: ...
    @property
    def errorMessage(self) -> str: ...
    @property
    def evaporatedFromIntercept(self) -> float: ...
    @property
    def extraterrestrialRadiation(self) -> float: ...
    @property
    def pcFieldConditionModifier(self) -> float: ...
    @property
    def finalDevelopmentalStage(self) -> int: ...
    @property
    def fixedN(self) -> float: ...
    @property
    def pcFrostDehardening(self) -> float: ...
    @property
    def pcFrostHardening(self) -> float: ...
    @property
    def globalRadiation(self) -> float: ...
    @property
    def greenAreaIndex(self) -> float: ...
    @property
    def grossAssimilates(self) -> float: ...
    @property
    def grossPhotosynthesis(self) -> float: ...
    @property
    def grossPhotosynthesisMol(self) -> float: ...
    @property
    def grossPhotosynthesisReferenceMol(self) -> float: ...
    @property
    def grossPrimaryProduction(self) -> float: ...
    @property
    def growthCycleEnded(self) -> bool: ...
    @property
    def growthRespirationAS(self) -> float: ...
    @property
    def pcHeatSumIrrigationStart(self) -> float: ...
    @property
    def pcHeatSumIrrigationEnd(self) -> float: ...
    @property
    def vsHeightNN(self) -> float: ...
    @property
    def pcInitialKcFactor(self) -> float: ...
    @property
    def pcInitialOrganBiomass(self) -> Sequence[float]: ...
    @property
    def pcInitialRootingDepth(self) -> float: ...
    @property
    def interceptionStorage(self) -> float: ...
    @property
    def kcFactor(self) -> float: ...
    @property
    def leafAreaIndex(self) -> float: ...
    @property
    def sunlitLeafAreaIndex(self) -> Sequence[float]: ...
    @property
    def shadedLeafAreaIndex(self) -> Sequence[float]: ...
    @property
    def pcLowTemperatureExposure(self) -> float: ...
    @property
    def pcLimitingTemperatureHeatStress(self) -> float: ...
    @property
    def lt50(self) -> float: ...
    @property
    def pcLt50cultivar(self) -> float: ...
    @property
    def pcLuxuryNCoeff(self) -> float: ...
    @property
    def maintenanceRespirationAS(self) -> float: ...
    @property
    def pcMaxAssimilationRate(self) -> float: ...
    @property
    def pcMaxCropDiameter(self) -> float: ...
    @property
    def pcMaxCropHeight(self) -> float: ...
    @property
    def maxNUptake(self) -> float: ...
    @property
    def pcMaxNUptakeParam(self) -> float: ...
    @property
    def pcMaxRootingDepth(self) -> float: ...
    @property
    def pcMinimumNConcentration(self) -> float: ...
    @property
    def pcMinimumTemperatureForAssimilation(self) -> float: ...
    @property
    def pcOptimumTemperatureForAssimilation(self) -> float: ...
    @property
    def pcMaximumTemperatureForAssimilation(self) -> float: ...
    @property
    def pcMinimumTemperatureRootGrowth(self) -> float: ...
    @property
    def netMaintenanceRespiration(self) -> float: ...
    @property
    def netPhotosynthesis(self) -> float: ...
    @property
    def netPrecipitation(self) -> float: ...
    @property
    def netPrimaryProduction(self) -> float: ...
    @property
    def pcNConcentrationAbovegroundBiomass(self) -> float: ...
    @property
    def nConcentrationAbovegroundBiomass(self) -> float: ...
    @property
    def nConcentrationAbovegroundBiomassOld(self) -> float: ...
    @property
    def pcNConcentrationB0(self) -> float: ...
    @property
    def nContentDeficit(self) -> float: ...
    @property
    def pcNConcentrationPN(self) -> float: ...
    @property
    def pcNConcentrationRoot(self) -> float: ...
    @property
    def nConcentrationRoot(self) -> float: ...
    @property
    def nConcentrationRootOld(self) -> float: ...
    @property
    def pcNitrogenResponseOn(self) -> bool: ...
    @property
    def pcNumberOfDevelopmentalStages(self) -> float: ...
    @property
    def pcNumberOfOrgans(self) -> float: ...
    @property
    def nUptakeFromLayer(self) -> Sequence[float]: ...
    @property
    def pcOptimumTemperature(self) -> Sequence[float]: ...
    @property
    def organBiomass(self) -> Sequence[float]: ...
    @property
    def organDeadBiomass(self) -> Sequence[float]: ...
    @property
    def organGreenBiomass(self) -> Sequence[float]: ...
    @property
    def organGrowthIncrement(self) -> Sequence[float]: ...
    @property
    def pcOrganGrowthRespiration(self) -> Sequence[float]: ...
    @property
    def pcOrganIdsForPrimaryYield(self) -> Sequence[YieldComponent]: ...
    @property
    def pcOrganIdsForSecondaryYield(self) -> Sequence[YieldComponent]: ...
    @property
    def pcOrganIdsForCutting(self) -> Sequence[YieldComponent]: ...
    @property
    def pcOrganMaintenanceRespiration(self) -> Sequence[float]: ...
    @property
    def organSenescenceIncrement(self) -> Sequence[float]: ...
    @property
    def pcOrganSenescenceRate(self) -> Sequence[Sequence[float]]: ...
    @property
    def overcastDayRadiation(self) -> float: ...
    @property
    def oxygenDeficit(self) -> float: ...
    @property
    def pcPartBiologicalNFixation(self) -> float: ...
    @property
    def pcPerennial(self) -> bool: ...
    @property
    def photoperiodicDaylength(self) -> float: ...
    @property
    def photActRadiationMean(self) -> float: ...
    @property
    def pcPlantDensity(self) -> float: ...
    @property
    def potentialTranspiration(self) -> float: ...
    @property
    def referenceEvapotranspiration(self) -> float: ...
    @property
    def relativeTotalDevelopment(self) -> float: ...
    @property
    def remainingEvapotranspiration(self) -> float: ...
    @property
    def reserveAssimilatePool(self) -> float: ...
    @property
    def pcResidueNRatio(self) -> float: ...
    @property
    def pcRespiratoryStress(self) -> float: ...
    @property
    def rootBiomass(self) -> float: ...
    @property
    def rootBiomassOld(self) -> float: ...
    @property
    def rootDensity(self) -> Sequence[float]: ...
    @property
    def rootDiameter(self) -> Sequence[float]: ...
    @property
    def pcRootDistributionParam(self) -> float: ...
    @property
    def rootEffectivity(self) -> Sequence[float]: ...
    @property
    def pcRootFormFactor(self) -> float: ...
    @property
    def pcRootGrowthLag(self) -> float: ...
    @property
    def rootingDepth(self) -> int: ...
    @property
    def rootingDepthM(self) -> float: ...
    @property
    def rootingZone(self) -> int: ...
    @property
    def pcRootPenetrationRate(self) -> float: ...
    @property
    def vmSaturationDeficit(self) -> float: ...
    @property
    def soilCoverage(self) -> float: ...
    @property
    def vsSoilMineralNContent(self) -> Sequence[float]: ...
    @property
    def soilSpecificMaxRootingDepth(self) -> float: ...
    @property
    def vsSoilSpecificMaxRootingDepth(self) -> float: ...
    @property
    def pcSpecificLeafArea(self) -> Sequence[float]: ...
    @property
    def pcSpecificRootLength(self) -> float: ...
    @property
    def pcStageAfterCut(self) -> int: ...
    @property
    def pcStageAtMaxDiameter(self) -> float: ...
    @property
    def pcStageAtMaxHeight(self) -> float: ...
    @property
    def pcStageMaxRootNConcentration(self) -> Sequence[float]: ...
    @property
    def pcStageKcFactor(self) -> Sequence[float]: ...
    @property
    def pcStageTemperatureSum(self) -> Sequence[float]: ...
    @property
    def stomataResistance(self) -> float: ...
    @property
    def pcStorageOrgan(self) -> Sequence[bool]: ...
    @property
    def storageOrgan(self) -> int: ...
    @property
    def targetNConcentration(self) -> float: ...
    @property
    def timeStep(self) -> float: ...
    @property
    def timeUnderAnoxia(self) -> int: ...
    @property
    def vsTortuosity(self) -> float: ...
    @property
    def totalBiomass(self) -> float: ...
    @property
    def totalBiomassNContent(self) -> float: ...
    @property
    def totalCropHeatImpact(self) -> float: ...
    @property
    def totalNInput(self) -> float: ...
    @property
    def totalNUptake(self) -> float: ...
    @property
    def totalRespired(self) -> float: ...
    @property
    def respiration(self) -> float: ...
    @property
    def sumTotalNUptake(self) -> float: ...
    @property
    def totalRootLength(self) -> float: ...
    @property
    def totalTemperatureSum(self) -> float: ...
    @property
    def temperatureSumToFlowering(self) -> float: ...
    @property
    def transpiration(self) -> Sequence[float]: ...
    @property
    def transpirationRedux(self) -> Sequence[float]: ...
    @property
    def transpirationDeficit(self) -> float: ...
    @property
    def vernalisationDays(self) -> float: ...
    @property
    def vernalisationFactor(self) -> float: ...
    @property
    def pcVernalisationRequirement(self) -> Sequence[float]: ...
    @property
    def pcWaterDeficitResponseOn(self) -> bool: ...
    @property
    def o3Senescence(self) -> float: ...
    @property
    def o3LongTermDamage(self) -> float: ...
    @property
    def o3ShortTermDamage(self) -> float: ...
    @property
    def dyingOut(self) -> bool: ...
    @property
    def accumulatedETa(self) -> float: ...
    @property
    def accumulatedTranspiration(self) -> float: ...
    @property
    def accumulatedPrimaryCropYield(self) -> float: ...
    @property
    def sumExportedCutBiomass(self) -> float: ...
    @property
    def exportedCutBiomass(self) -> float: ...
    @property
    def sumResidueCutBiomass(self) -> float: ...
    @property
    def residueCutBiomass(self) -> float: ...
    @property
    def cuttingDelayDays(self) -> int: ...
    @property
    def vsMaxEffectiveRootingDepth(self) -> float: ...
    @property
    def vsImpenetrableLayerDept(self) -> float: ...
    @property
    def anthesisDay(self) -> int: ...
    @property
    def maturityDay(self) -> int: ...
    @property
    def maturityReached(self) -> bool: ...
    @property
    def stepSize24(self) -> int: ...
    @property
    def stepSize240(self) -> int: ...
    @property
    def rad24(self) -> Sequence[float]: ...
    @property
    def rad240(self) -> Sequence[float]: ...
    @property
    def tfol24(self) -> Sequence[float]: ...
    @property
    def tfol240(self) -> Sequence[float]: ...
    @property
    def index24(self) -> int: ...
    @property
    def index240(self) -> int: ...
    @property
    def full24(self) -> bool: ...
    @property
    def full240(self) -> bool: ...
    @property
    def guentherEmissions(self) -> Voc.Emissions: ...
    @property
    def jjvEmissions(self) -> Voc.Emissions: ...
    @property
    def vocSpecies(self) -> Voc.SpeciesData: ...
    @property
    def cropPhotosynthesisResults(self) -> Voc.CPData: ...
    @property
    def speciesParams(self) -> SpeciesParameters: ...
    @property
    def cultivarParams(self) -> CultivarParameters: ...
    @property
    def residueParams(self) -> CropResidueParameters: ...
    @property
    def isWinterCrop(self) -> bool: ...
    @property
    def stemElongationEventFired(self) -> bool: ...
    @property
    def lt50m(self) -> float: ...
    @overload
    def init(self, name: Literal["guentherEmissions"]) -> Voc.Emissions: ...
    @overload
    def init(self, name: Literal["jjvEmissions"]) -> Voc.Emissions: ...
    @overload
    def init(self, name: Literal["vocSpecies"]) -> Voc.SpeciesData: ...
    @overload
    def init(self, name: Literal["cropPhotosynthesisResults"]) -> Voc.CPData: ...
    @overload
    def init(self, name: Literal["speciesParams"]) -> SpeciesParameters: ...
    @overload
    def init(self, name: Literal["cultivarParams"]) -> CultivarParameters: ...
    @overload
    def init(self, name: Literal["residueParams"]) -> CropResidueParameters: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[CropModuleStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> CropModuleStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        frostKillOn: bool | None = None,
        ktko: float | None = None,
        ktkc: float | None = None,
        assimilatePartCoeffsReduced: bool | None = None,
        o3WStomatalClosure: float | None = None,
        o3SumUptake: float | None = None,
        vsLatitude: float | None = None,
        abovegroundBiomass: float | None = None,
        abovegroundBiomassOld: float | None = None,
        pcAbovegroundOrgan: Sequence[bool] | None = None,
        actualTranspiration: float | None = None,
        pcAssimilatePartitioningCoeff: Sequence[Sequence[float]] | None = None,
        pcAssimilateReallocation: float | None = None,
        assimilates: float | None = None,
        assimilationRate: float | None = None,
        astronomicDayLenght: float | None = None,
        pcBaseDaylength: Sequence[float] | None = None,
        pcBaseTemperature: Sequence[float] | None = None,
        pcBeginSensitivePhaseHeatStress: float | None = None,
        belowgroundBiomass: float | None = None,
        belowgroundBiomassOld: float | None = None,
        pcCarboxylationPathway: int | None = None,
        clearDayRadiation: float | None = None,
        pcCo2Method: int | None = None,
        criticalNConcentration: float | None = None,
        pcCriticalOxygenContent: Sequence[float] | None = None,
        pcCriticalTemperatureHeatStress: float | None = None,
        cropDiameter: float | None = None,
        cropFrostRedux: float | None = None,
        cropHeatRedux: float | None = None,
        cropHeight: float | None = None,
        pcCropHeightP1: float | None = None,
        pcCropHeightP2: float | None = None,
        pcCropName: str | None = None,
        cropNDemand: float | None = None,
        cropNRedux: float | None = None,
        pcCropSpecificMaxRootingDepth: float | None = None,
        cropWaterUptake: Sequence[float] | None = None,
        currentTemperatureSum: Sequence[float] | None = None,
        currentTotalTemperatureSum: float | None = None,
        currentTotalTemperatureSumRoot: float | None = None,
        pcCuttingDelayDays: int | None = None,
        daylengthFactor: float | None = None,
        pcDaylengthRequirement: Sequence[float] | None = None,
        daysAfterBeginFlowering: int | None = None,
        declination: float | None = None,
        pcDefaultRadiationUseEfficiency: float | None = None,
        vmDepthGroundwaterTable: int | None = None,
        pcDevelopmentAccelerationByNitrogenStress: int | None = None,
        developmentalStage: int | None = None,
        noOfCropSteps: int | None = None,
        droughtImpactOnFertility: float | None = None,
        pcDroughtImpactOnFertilityFactor: float | None = None,
        pcDroughtStressThreshold: Sequence[float] | None = None,
        pcEmergenceFloodingControlOn: bool | None = None,
        pcEmergenceMoistureControlOn: bool | None = None,
        pcEndSensitivePhaseHeatStress: float | None = None,
        effectiveDayLength: float | None = None,
        errorStatus: bool | None = None,
        errorMessage: str | None = None,
        evaporatedFromIntercept: float | None = None,
        extraterrestrialRadiation: float | None = None,
        pcFieldConditionModifier: float | None = None,
        finalDevelopmentalStage: int | None = None,
        fixedN: float | None = None,
        pcFrostDehardening: float | None = None,
        pcFrostHardening: float | None = None,
        globalRadiation: float | None = None,
        greenAreaIndex: float | None = None,
        grossAssimilates: float | None = None,
        grossPhotosynthesis: float | None = None,
        grossPhotosynthesisMol: float | None = None,
        grossPhotosynthesisReferenceMol: float | None = None,
        grossPrimaryProduction: float | None = None,
        growthCycleEnded: bool | None = None,
        growthRespirationAS: float | None = None,
        pcHeatSumIrrigationStart: float | None = None,
        pcHeatSumIrrigationEnd: float | None = None,
        vsHeightNN: float | None = None,
        pcInitialKcFactor: float | None = None,
        pcInitialOrganBiomass: Sequence[float] | None = None,
        pcInitialRootingDepth: float | None = None,
        interceptionStorage: float | None = None,
        kcFactor: float | None = None,
        leafAreaIndex: float | None = None,
        sunlitLeafAreaIndex: Sequence[float] | None = None,
        shadedLeafAreaIndex: Sequence[float] | None = None,
        pcLowTemperatureExposure: float | None = None,
        pcLimitingTemperatureHeatStress: float | None = None,
        lt50: float | None = None,
        pcLt50cultivar: float | None = None,
        pcLuxuryNCoeff: float | None = None,
        maintenanceRespirationAS: float | None = None,
        pcMaxAssimilationRate: float | None = None,
        pcMaxCropDiameter: float | None = None,
        pcMaxCropHeight: float | None = None,
        maxNUptake: float | None = None,
        pcMaxNUptakeParam: float | None = None,
        pcMaxRootingDepth: float | None = None,
        pcMinimumNConcentration: float | None = None,
        pcMinimumTemperatureForAssimilation: float | None = None,
        pcOptimumTemperatureForAssimilation: float | None = None,
        pcMaximumTemperatureForAssimilation: float | None = None,
        pcMinimumTemperatureRootGrowth: float | None = None,
        netMaintenanceRespiration: float | None = None,
        netPhotosynthesis: float | None = None,
        netPrecipitation: float | None = None,
        netPrimaryProduction: float | None = None,
        pcNConcentrationAbovegroundBiomass: float | None = None,
        nConcentrationAbovegroundBiomass: float | None = None,
        nConcentrationAbovegroundBiomassOld: float | None = None,
        pcNConcentrationB0: float | None = None,
        nContentDeficit: float | None = None,
        pcNConcentrationPN: float | None = None,
        pcNConcentrationRoot: float | None = None,
        nConcentrationRoot: float | None = None,
        nConcentrationRootOld: float | None = None,
        pcNitrogenResponseOn: bool | None = None,
        pcNumberOfDevelopmentalStages: float | None = None,
        pcNumberOfOrgans: float | None = None,
        nUptakeFromLayer: Sequence[float] | None = None,
        pcOptimumTemperature: Sequence[float] | None = None,
        organBiomass: Sequence[float] | None = None,
        organDeadBiomass: Sequence[float] | None = None,
        organGreenBiomass: Sequence[float] | None = None,
        organGrowthIncrement: Sequence[float] | None = None,
        pcOrganGrowthRespiration: Sequence[float] | None = None,
        pcOrganIdsForPrimaryYield: Sequence[YieldComponentBuilder]
        | Sequence[dict[str, Any]]
        | None = None,
        pcOrganIdsForSecondaryYield: Sequence[YieldComponentBuilder]
        | Sequence[dict[str, Any]]
        | None = None,
        pcOrganIdsForCutting: Sequence[YieldComponentBuilder]
        | Sequence[dict[str, Any]]
        | None = None,
        pcOrganMaintenanceRespiration: Sequence[float] | None = None,
        organSenescenceIncrement: Sequence[float] | None = None,
        pcOrganSenescenceRate: Sequence[Sequence[float]] | None = None,
        overcastDayRadiation: float | None = None,
        oxygenDeficit: float | None = None,
        pcPartBiologicalNFixation: float | None = None,
        pcPerennial: bool | None = None,
        photoperiodicDaylength: float | None = None,
        photActRadiationMean: float | None = None,
        pcPlantDensity: float | None = None,
        potentialTranspiration: float | None = None,
        referenceEvapotranspiration: float | None = None,
        relativeTotalDevelopment: float | None = None,
        remainingEvapotranspiration: float | None = None,
        reserveAssimilatePool: float | None = None,
        pcResidueNRatio: float | None = None,
        pcRespiratoryStress: float | None = None,
        rootBiomass: float | None = None,
        rootBiomassOld: float | None = None,
        rootDensity: Sequence[float] | None = None,
        rootDiameter: Sequence[float] | None = None,
        pcRootDistributionParam: float | None = None,
        rootEffectivity: Sequence[float] | None = None,
        pcRootFormFactor: float | None = None,
        pcRootGrowthLag: float | None = None,
        rootingDepth: int | None = None,
        rootingDepthM: float | None = None,
        rootingZone: int | None = None,
        pcRootPenetrationRate: float | None = None,
        vmSaturationDeficit: float | None = None,
        soilCoverage: float | None = None,
        vsSoilMineralNContent: Sequence[float] | None = None,
        soilSpecificMaxRootingDepth: float | None = None,
        vsSoilSpecificMaxRootingDepth: float | None = None,
        pcSpecificLeafArea: Sequence[float] | None = None,
        pcSpecificRootLength: float | None = None,
        pcStageAfterCut: int | None = None,
        pcStageAtMaxDiameter: float | None = None,
        pcStageAtMaxHeight: float | None = None,
        pcStageMaxRootNConcentration: Sequence[float] | None = None,
        pcStageKcFactor: Sequence[float] | None = None,
        pcStageTemperatureSum: Sequence[float] | None = None,
        stomataResistance: float | None = None,
        pcStorageOrgan: Sequence[bool] | None = None,
        storageOrgan: int | None = None,
        targetNConcentration: float | None = None,
        timeStep: float | None = None,
        timeUnderAnoxia: int | None = None,
        vsTortuosity: float | None = None,
        totalBiomass: float | None = None,
        totalBiomassNContent: float | None = None,
        totalCropHeatImpact: float | None = None,
        totalNInput: float | None = None,
        totalNUptake: float | None = None,
        totalRespired: float | None = None,
        respiration: float | None = None,
        sumTotalNUptake: float | None = None,
        totalRootLength: float | None = None,
        totalTemperatureSum: float | None = None,
        temperatureSumToFlowering: float | None = None,
        transpiration: Sequence[float] | None = None,
        transpirationRedux: Sequence[float] | None = None,
        transpirationDeficit: float | None = None,
        vernalisationDays: float | None = None,
        vernalisationFactor: float | None = None,
        pcVernalisationRequirement: Sequence[float] | None = None,
        pcWaterDeficitResponseOn: bool | None = None,
        o3Senescence: float | None = None,
        o3LongTermDamage: float | None = None,
        o3ShortTermDamage: float | None = None,
        dyingOut: bool | None = None,
        accumulatedETa: float | None = None,
        accumulatedTranspiration: float | None = None,
        accumulatedPrimaryCropYield: float | None = None,
        sumExportedCutBiomass: float | None = None,
        exportedCutBiomass: float | None = None,
        sumResidueCutBiomass: float | None = None,
        residueCutBiomass: float | None = None,
        cuttingDelayDays: int | None = None,
        vsMaxEffectiveRootingDepth: float | None = None,
        vsImpenetrableLayerDept: float | None = None,
        anthesisDay: int | None = None,
        maturityDay: int | None = None,
        maturityReached: bool | None = None,
        stepSize24: int | None = None,
        stepSize240: int | None = None,
        rad24: Sequence[float] | None = None,
        rad240: Sequence[float] | None = None,
        tfol24: Sequence[float] | None = None,
        tfol240: Sequence[float] | None = None,
        index24: int | None = None,
        index240: int | None = None,
        full24: bool | None = None,
        full240: bool | None = None,
        guentherEmissions: Voc.EmissionsBuilder | dict[str, Any] | None = None,
        jjvEmissions: Voc.EmissionsBuilder | dict[str, Any] | None = None,
        vocSpecies: Voc.SpeciesDataBuilder | dict[str, Any] | None = None,
        cropPhotosynthesisResults: Voc.CPDataBuilder | dict[str, Any] | None = None,
        speciesParams: SpeciesParametersBuilder | dict[str, Any] | None = None,
        cultivarParams: CultivarParametersBuilder | dict[str, Any] | None = None,
        residueParams: CropResidueParametersBuilder | dict[str, Any] | None = None,
        isWinterCrop: bool | None = None,
        stemElongationEventFired: bool | None = None,
        lt50m: float | None = None,
    ) -> CropModuleStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> CropModuleStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> CropModuleStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class CropModuleStateReader(CropModuleState):
    @property
    def pcOrganIdsForPrimaryYield(self) -> Sequence[YieldComponentReader]: ...
    @property
    def pcOrganIdsForSecondaryYield(self) -> Sequence[YieldComponentReader]: ...
    @property
    def pcOrganIdsForCutting(self) -> Sequence[YieldComponentReader]: ...
    @property
    def guentherEmissions(self) -> Voc.EmissionsReader: ...
    @property
    def jjvEmissions(self) -> Voc.EmissionsReader: ...
    @property
    def vocSpecies(self) -> Voc.SpeciesDataReader: ...
    @property
    def cropPhotosynthesisResults(self) -> Voc.CPDataReader: ...
    @property
    def speciesParams(self) -> SpeciesParametersReader: ...
    @property
    def cultivarParams(self) -> CultivarParametersReader: ...
    @property
    def residueParams(self) -> CropResidueParametersReader: ...
    def as_builder(self) -> CropModuleStateBuilder: ...

class CropModuleStateBuilder(CropModuleState):
    @property
    def frostKillOn(self) -> bool: ...
    @frostKillOn.setter
    def frostKillOn(self, value: bool) -> None: ...
    @property
    def ktko(self) -> float: ...
    @ktko.setter
    def ktko(self, value: float) -> None: ...
    @property
    def ktkc(self) -> float: ...
    @ktkc.setter
    def ktkc(self, value: float) -> None: ...
    @property
    def assimilatePartCoeffsReduced(self) -> bool: ...
    @assimilatePartCoeffsReduced.setter
    def assimilatePartCoeffsReduced(self, value: bool) -> None: ...
    @property
    def o3WStomatalClosure(self) -> float: ...
    @o3WStomatalClosure.setter
    def o3WStomatalClosure(self, value: float) -> None: ...
    @property
    def o3SumUptake(self) -> float: ...
    @o3SumUptake.setter
    def o3SumUptake(self, value: float) -> None: ...
    @property
    def vsLatitude(self) -> float: ...
    @vsLatitude.setter
    def vsLatitude(self, value: float) -> None: ...
    @property
    def abovegroundBiomass(self) -> float: ...
    @abovegroundBiomass.setter
    def abovegroundBiomass(self, value: float) -> None: ...
    @property
    def abovegroundBiomassOld(self) -> float: ...
    @abovegroundBiomassOld.setter
    def abovegroundBiomassOld(self, value: float) -> None: ...
    @property
    def pcAbovegroundOrgan(self) -> Sequence[bool]: ...
    @pcAbovegroundOrgan.setter
    def pcAbovegroundOrgan(self, value: Sequence[bool]) -> None: ...
    @property
    def actualTranspiration(self) -> float: ...
    @actualTranspiration.setter
    def actualTranspiration(self, value: float) -> None: ...
    @property
    def pcAssimilatePartitioningCoeff(self) -> Sequence[Sequence[float]]: ...
    @pcAssimilatePartitioningCoeff.setter
    def pcAssimilatePartitioningCoeff(
        self, value: Sequence[Sequence[float]]
    ) -> None: ...
    @property
    def pcAssimilateReallocation(self) -> float: ...
    @pcAssimilateReallocation.setter
    def pcAssimilateReallocation(self, value: float) -> None: ...
    @property
    def assimilates(self) -> float: ...
    @assimilates.setter
    def assimilates(self, value: float) -> None: ...
    @property
    def assimilationRate(self) -> float: ...
    @assimilationRate.setter
    def assimilationRate(self, value: float) -> None: ...
    @property
    def astronomicDayLenght(self) -> float: ...
    @astronomicDayLenght.setter
    def astronomicDayLenght(self, value: float) -> None: ...
    @property
    def pcBaseDaylength(self) -> Sequence[float]: ...
    @pcBaseDaylength.setter
    def pcBaseDaylength(self, value: Sequence[float]) -> None: ...
    @property
    def pcBaseTemperature(self) -> Sequence[float]: ...
    @pcBaseTemperature.setter
    def pcBaseTemperature(self, value: Sequence[float]) -> None: ...
    @property
    def pcBeginSensitivePhaseHeatStress(self) -> float: ...
    @pcBeginSensitivePhaseHeatStress.setter
    def pcBeginSensitivePhaseHeatStress(self, value: float) -> None: ...
    @property
    def belowgroundBiomass(self) -> float: ...
    @belowgroundBiomass.setter
    def belowgroundBiomass(self, value: float) -> None: ...
    @property
    def belowgroundBiomassOld(self) -> float: ...
    @belowgroundBiomassOld.setter
    def belowgroundBiomassOld(self, value: float) -> None: ...
    @property
    def pcCarboxylationPathway(self) -> int: ...
    @pcCarboxylationPathway.setter
    def pcCarboxylationPathway(self, value: int) -> None: ...
    @property
    def clearDayRadiation(self) -> float: ...
    @clearDayRadiation.setter
    def clearDayRadiation(self, value: float) -> None: ...
    @property
    def pcCo2Method(self) -> int: ...
    @pcCo2Method.setter
    def pcCo2Method(self, value: int) -> None: ...
    @property
    def criticalNConcentration(self) -> float: ...
    @criticalNConcentration.setter
    def criticalNConcentration(self, value: float) -> None: ...
    @property
    def pcCriticalOxygenContent(self) -> Sequence[float]: ...
    @pcCriticalOxygenContent.setter
    def pcCriticalOxygenContent(self, value: Sequence[float]) -> None: ...
    @property
    def pcCriticalTemperatureHeatStress(self) -> float: ...
    @pcCriticalTemperatureHeatStress.setter
    def pcCriticalTemperatureHeatStress(self, value: float) -> None: ...
    @property
    def cropDiameter(self) -> float: ...
    @cropDiameter.setter
    def cropDiameter(self, value: float) -> None: ...
    @property
    def cropFrostRedux(self) -> float: ...
    @cropFrostRedux.setter
    def cropFrostRedux(self, value: float) -> None: ...
    @property
    def cropHeatRedux(self) -> float: ...
    @cropHeatRedux.setter
    def cropHeatRedux(self, value: float) -> None: ...
    @property
    def cropHeight(self) -> float: ...
    @cropHeight.setter
    def cropHeight(self, value: float) -> None: ...
    @property
    def pcCropHeightP1(self) -> float: ...
    @pcCropHeightP1.setter
    def pcCropHeightP1(self, value: float) -> None: ...
    @property
    def pcCropHeightP2(self) -> float: ...
    @pcCropHeightP2.setter
    def pcCropHeightP2(self, value: float) -> None: ...
    @property
    def pcCropName(self) -> str: ...
    @pcCropName.setter
    def pcCropName(self, value: str) -> None: ...
    @property
    def cropNDemand(self) -> float: ...
    @cropNDemand.setter
    def cropNDemand(self, value: float) -> None: ...
    @property
    def cropNRedux(self) -> float: ...
    @cropNRedux.setter
    def cropNRedux(self, value: float) -> None: ...
    @property
    def pcCropSpecificMaxRootingDepth(self) -> float: ...
    @pcCropSpecificMaxRootingDepth.setter
    def pcCropSpecificMaxRootingDepth(self, value: float) -> None: ...
    @property
    def cropWaterUptake(self) -> Sequence[float]: ...
    @cropWaterUptake.setter
    def cropWaterUptake(self, value: Sequence[float]) -> None: ...
    @property
    def currentTemperatureSum(self) -> Sequence[float]: ...
    @currentTemperatureSum.setter
    def currentTemperatureSum(self, value: Sequence[float]) -> None: ...
    @property
    def currentTotalTemperatureSum(self) -> float: ...
    @currentTotalTemperatureSum.setter
    def currentTotalTemperatureSum(self, value: float) -> None: ...
    @property
    def currentTotalTemperatureSumRoot(self) -> float: ...
    @currentTotalTemperatureSumRoot.setter
    def currentTotalTemperatureSumRoot(self, value: float) -> None: ...
    @property
    def pcCuttingDelayDays(self) -> int: ...
    @pcCuttingDelayDays.setter
    def pcCuttingDelayDays(self, value: int) -> None: ...
    @property
    def daylengthFactor(self) -> float: ...
    @daylengthFactor.setter
    def daylengthFactor(self, value: float) -> None: ...
    @property
    def pcDaylengthRequirement(self) -> Sequence[float]: ...
    @pcDaylengthRequirement.setter
    def pcDaylengthRequirement(self, value: Sequence[float]) -> None: ...
    @property
    def daysAfterBeginFlowering(self) -> int: ...
    @daysAfterBeginFlowering.setter
    def daysAfterBeginFlowering(self, value: int) -> None: ...
    @property
    def declination(self) -> float: ...
    @declination.setter
    def declination(self, value: float) -> None: ...
    @property
    def pcDefaultRadiationUseEfficiency(self) -> float: ...
    @pcDefaultRadiationUseEfficiency.setter
    def pcDefaultRadiationUseEfficiency(self, value: float) -> None: ...
    @property
    def vmDepthGroundwaterTable(self) -> int: ...
    @vmDepthGroundwaterTable.setter
    def vmDepthGroundwaterTable(self, value: int) -> None: ...
    @property
    def pcDevelopmentAccelerationByNitrogenStress(self) -> int: ...
    @pcDevelopmentAccelerationByNitrogenStress.setter
    def pcDevelopmentAccelerationByNitrogenStress(self, value: int) -> None: ...
    @property
    def developmentalStage(self) -> int: ...
    @developmentalStage.setter
    def developmentalStage(self, value: int) -> None: ...
    @property
    def noOfCropSteps(self) -> int: ...
    @noOfCropSteps.setter
    def noOfCropSteps(self, value: int) -> None: ...
    @property
    def droughtImpactOnFertility(self) -> float: ...
    @droughtImpactOnFertility.setter
    def droughtImpactOnFertility(self, value: float) -> None: ...
    @property
    def pcDroughtImpactOnFertilityFactor(self) -> float: ...
    @pcDroughtImpactOnFertilityFactor.setter
    def pcDroughtImpactOnFertilityFactor(self, value: float) -> None: ...
    @property
    def pcDroughtStressThreshold(self) -> Sequence[float]: ...
    @pcDroughtStressThreshold.setter
    def pcDroughtStressThreshold(self, value: Sequence[float]) -> None: ...
    @property
    def pcEmergenceFloodingControlOn(self) -> bool: ...
    @pcEmergenceFloodingControlOn.setter
    def pcEmergenceFloodingControlOn(self, value: bool) -> None: ...
    @property
    def pcEmergenceMoistureControlOn(self) -> bool: ...
    @pcEmergenceMoistureControlOn.setter
    def pcEmergenceMoistureControlOn(self, value: bool) -> None: ...
    @property
    def pcEndSensitivePhaseHeatStress(self) -> float: ...
    @pcEndSensitivePhaseHeatStress.setter
    def pcEndSensitivePhaseHeatStress(self, value: float) -> None: ...
    @property
    def effectiveDayLength(self) -> float: ...
    @effectiveDayLength.setter
    def effectiveDayLength(self, value: float) -> None: ...
    @property
    def errorStatus(self) -> bool: ...
    @errorStatus.setter
    def errorStatus(self, value: bool) -> None: ...
    @property
    def errorMessage(self) -> str: ...
    @errorMessage.setter
    def errorMessage(self, value: str) -> None: ...
    @property
    def evaporatedFromIntercept(self) -> float: ...
    @evaporatedFromIntercept.setter
    def evaporatedFromIntercept(self, value: float) -> None: ...
    @property
    def extraterrestrialRadiation(self) -> float: ...
    @extraterrestrialRadiation.setter
    def extraterrestrialRadiation(self, value: float) -> None: ...
    @property
    def pcFieldConditionModifier(self) -> float: ...
    @pcFieldConditionModifier.setter
    def pcFieldConditionModifier(self, value: float) -> None: ...
    @property
    def finalDevelopmentalStage(self) -> int: ...
    @finalDevelopmentalStage.setter
    def finalDevelopmentalStage(self, value: int) -> None: ...
    @property
    def fixedN(self) -> float: ...
    @fixedN.setter
    def fixedN(self, value: float) -> None: ...
    @property
    def pcFrostDehardening(self) -> float: ...
    @pcFrostDehardening.setter
    def pcFrostDehardening(self, value: float) -> None: ...
    @property
    def pcFrostHardening(self) -> float: ...
    @pcFrostHardening.setter
    def pcFrostHardening(self, value: float) -> None: ...
    @property
    def globalRadiation(self) -> float: ...
    @globalRadiation.setter
    def globalRadiation(self, value: float) -> None: ...
    @property
    def greenAreaIndex(self) -> float: ...
    @greenAreaIndex.setter
    def greenAreaIndex(self, value: float) -> None: ...
    @property
    def grossAssimilates(self) -> float: ...
    @grossAssimilates.setter
    def grossAssimilates(self, value: float) -> None: ...
    @property
    def grossPhotosynthesis(self) -> float: ...
    @grossPhotosynthesis.setter
    def grossPhotosynthesis(self, value: float) -> None: ...
    @property
    def grossPhotosynthesisMol(self) -> float: ...
    @grossPhotosynthesisMol.setter
    def grossPhotosynthesisMol(self, value: float) -> None: ...
    @property
    def grossPhotosynthesisReferenceMol(self) -> float: ...
    @grossPhotosynthesisReferenceMol.setter
    def grossPhotosynthesisReferenceMol(self, value: float) -> None: ...
    @property
    def grossPrimaryProduction(self) -> float: ...
    @grossPrimaryProduction.setter
    def grossPrimaryProduction(self, value: float) -> None: ...
    @property
    def growthCycleEnded(self) -> bool: ...
    @growthCycleEnded.setter
    def growthCycleEnded(self, value: bool) -> None: ...
    @property
    def growthRespirationAS(self) -> float: ...
    @growthRespirationAS.setter
    def growthRespirationAS(self, value: float) -> None: ...
    @property
    def pcHeatSumIrrigationStart(self) -> float: ...
    @pcHeatSumIrrigationStart.setter
    def pcHeatSumIrrigationStart(self, value: float) -> None: ...
    @property
    def pcHeatSumIrrigationEnd(self) -> float: ...
    @pcHeatSumIrrigationEnd.setter
    def pcHeatSumIrrigationEnd(self, value: float) -> None: ...
    @property
    def vsHeightNN(self) -> float: ...
    @vsHeightNN.setter
    def vsHeightNN(self, value: float) -> None: ...
    @property
    def pcInitialKcFactor(self) -> float: ...
    @pcInitialKcFactor.setter
    def pcInitialKcFactor(self, value: float) -> None: ...
    @property
    def pcInitialOrganBiomass(self) -> Sequence[float]: ...
    @pcInitialOrganBiomass.setter
    def pcInitialOrganBiomass(self, value: Sequence[float]) -> None: ...
    @property
    def pcInitialRootingDepth(self) -> float: ...
    @pcInitialRootingDepth.setter
    def pcInitialRootingDepth(self, value: float) -> None: ...
    @property
    def interceptionStorage(self) -> float: ...
    @interceptionStorage.setter
    def interceptionStorage(self, value: float) -> None: ...
    @property
    def kcFactor(self) -> float: ...
    @kcFactor.setter
    def kcFactor(self, value: float) -> None: ...
    @property
    def leafAreaIndex(self) -> float: ...
    @leafAreaIndex.setter
    def leafAreaIndex(self, value: float) -> None: ...
    @property
    def sunlitLeafAreaIndex(self) -> Sequence[float]: ...
    @sunlitLeafAreaIndex.setter
    def sunlitLeafAreaIndex(self, value: Sequence[float]) -> None: ...
    @property
    def shadedLeafAreaIndex(self) -> Sequence[float]: ...
    @shadedLeafAreaIndex.setter
    def shadedLeafAreaIndex(self, value: Sequence[float]) -> None: ...
    @property
    def pcLowTemperatureExposure(self) -> float: ...
    @pcLowTemperatureExposure.setter
    def pcLowTemperatureExposure(self, value: float) -> None: ...
    @property
    def pcLimitingTemperatureHeatStress(self) -> float: ...
    @pcLimitingTemperatureHeatStress.setter
    def pcLimitingTemperatureHeatStress(self, value: float) -> None: ...
    @property
    def lt50(self) -> float: ...
    @lt50.setter
    def lt50(self, value: float) -> None: ...
    @property
    def pcLt50cultivar(self) -> float: ...
    @pcLt50cultivar.setter
    def pcLt50cultivar(self, value: float) -> None: ...
    @property
    def pcLuxuryNCoeff(self) -> float: ...
    @pcLuxuryNCoeff.setter
    def pcLuxuryNCoeff(self, value: float) -> None: ...
    @property
    def maintenanceRespirationAS(self) -> float: ...
    @maintenanceRespirationAS.setter
    def maintenanceRespirationAS(self, value: float) -> None: ...
    @property
    def pcMaxAssimilationRate(self) -> float: ...
    @pcMaxAssimilationRate.setter
    def pcMaxAssimilationRate(self, value: float) -> None: ...
    @property
    def pcMaxCropDiameter(self) -> float: ...
    @pcMaxCropDiameter.setter
    def pcMaxCropDiameter(self, value: float) -> None: ...
    @property
    def pcMaxCropHeight(self) -> float: ...
    @pcMaxCropHeight.setter
    def pcMaxCropHeight(self, value: float) -> None: ...
    @property
    def maxNUptake(self) -> float: ...
    @maxNUptake.setter
    def maxNUptake(self, value: float) -> None: ...
    @property
    def pcMaxNUptakeParam(self) -> float: ...
    @pcMaxNUptakeParam.setter
    def pcMaxNUptakeParam(self, value: float) -> None: ...
    @property
    def pcMaxRootingDepth(self) -> float: ...
    @pcMaxRootingDepth.setter
    def pcMaxRootingDepth(self, value: float) -> None: ...
    @property
    def pcMinimumNConcentration(self) -> float: ...
    @pcMinimumNConcentration.setter
    def pcMinimumNConcentration(self, value: float) -> None: ...
    @property
    def pcMinimumTemperatureForAssimilation(self) -> float: ...
    @pcMinimumTemperatureForAssimilation.setter
    def pcMinimumTemperatureForAssimilation(self, value: float) -> None: ...
    @property
    def pcOptimumTemperatureForAssimilation(self) -> float: ...
    @pcOptimumTemperatureForAssimilation.setter
    def pcOptimumTemperatureForAssimilation(self, value: float) -> None: ...
    @property
    def pcMaximumTemperatureForAssimilation(self) -> float: ...
    @pcMaximumTemperatureForAssimilation.setter
    def pcMaximumTemperatureForAssimilation(self, value: float) -> None: ...
    @property
    def pcMinimumTemperatureRootGrowth(self) -> float: ...
    @pcMinimumTemperatureRootGrowth.setter
    def pcMinimumTemperatureRootGrowth(self, value: float) -> None: ...
    @property
    def netMaintenanceRespiration(self) -> float: ...
    @netMaintenanceRespiration.setter
    def netMaintenanceRespiration(self, value: float) -> None: ...
    @property
    def netPhotosynthesis(self) -> float: ...
    @netPhotosynthesis.setter
    def netPhotosynthesis(self, value: float) -> None: ...
    @property
    def netPrecipitation(self) -> float: ...
    @netPrecipitation.setter
    def netPrecipitation(self, value: float) -> None: ...
    @property
    def netPrimaryProduction(self) -> float: ...
    @netPrimaryProduction.setter
    def netPrimaryProduction(self, value: float) -> None: ...
    @property
    def pcNConcentrationAbovegroundBiomass(self) -> float: ...
    @pcNConcentrationAbovegroundBiomass.setter
    def pcNConcentrationAbovegroundBiomass(self, value: float) -> None: ...
    @property
    def nConcentrationAbovegroundBiomass(self) -> float: ...
    @nConcentrationAbovegroundBiomass.setter
    def nConcentrationAbovegroundBiomass(self, value: float) -> None: ...
    @property
    def nConcentrationAbovegroundBiomassOld(self) -> float: ...
    @nConcentrationAbovegroundBiomassOld.setter
    def nConcentrationAbovegroundBiomassOld(self, value: float) -> None: ...
    @property
    def pcNConcentrationB0(self) -> float: ...
    @pcNConcentrationB0.setter
    def pcNConcentrationB0(self, value: float) -> None: ...
    @property
    def nContentDeficit(self) -> float: ...
    @nContentDeficit.setter
    def nContentDeficit(self, value: float) -> None: ...
    @property
    def pcNConcentrationPN(self) -> float: ...
    @pcNConcentrationPN.setter
    def pcNConcentrationPN(self, value: float) -> None: ...
    @property
    def pcNConcentrationRoot(self) -> float: ...
    @pcNConcentrationRoot.setter
    def pcNConcentrationRoot(self, value: float) -> None: ...
    @property
    def nConcentrationRoot(self) -> float: ...
    @nConcentrationRoot.setter
    def nConcentrationRoot(self, value: float) -> None: ...
    @property
    def nConcentrationRootOld(self) -> float: ...
    @nConcentrationRootOld.setter
    def nConcentrationRootOld(self, value: float) -> None: ...
    @property
    def pcNitrogenResponseOn(self) -> bool: ...
    @pcNitrogenResponseOn.setter
    def pcNitrogenResponseOn(self, value: bool) -> None: ...
    @property
    def pcNumberOfDevelopmentalStages(self) -> float: ...
    @pcNumberOfDevelopmentalStages.setter
    def pcNumberOfDevelopmentalStages(self, value: float) -> None: ...
    @property
    def pcNumberOfOrgans(self) -> float: ...
    @pcNumberOfOrgans.setter
    def pcNumberOfOrgans(self, value: float) -> None: ...
    @property
    def nUptakeFromLayer(self) -> Sequence[float]: ...
    @nUptakeFromLayer.setter
    def nUptakeFromLayer(self, value: Sequence[float]) -> None: ...
    @property
    def pcOptimumTemperature(self) -> Sequence[float]: ...
    @pcOptimumTemperature.setter
    def pcOptimumTemperature(self, value: Sequence[float]) -> None: ...
    @property
    def organBiomass(self) -> Sequence[float]: ...
    @organBiomass.setter
    def organBiomass(self, value: Sequence[float]) -> None: ...
    @property
    def organDeadBiomass(self) -> Sequence[float]: ...
    @organDeadBiomass.setter
    def organDeadBiomass(self, value: Sequence[float]) -> None: ...
    @property
    def organGreenBiomass(self) -> Sequence[float]: ...
    @organGreenBiomass.setter
    def organGreenBiomass(self, value: Sequence[float]) -> None: ...
    @property
    def organGrowthIncrement(self) -> Sequence[float]: ...
    @organGrowthIncrement.setter
    def organGrowthIncrement(self, value: Sequence[float]) -> None: ...
    @property
    def pcOrganGrowthRespiration(self) -> Sequence[float]: ...
    @pcOrganGrowthRespiration.setter
    def pcOrganGrowthRespiration(self, value: Sequence[float]) -> None: ...
    @property
    def pcOrganIdsForPrimaryYield(self) -> Sequence[YieldComponentBuilder]: ...
    @pcOrganIdsForPrimaryYield.setter
    def pcOrganIdsForPrimaryYield(
        self,
        value: Sequence[YieldComponent | YieldComponentBuilder | YieldComponentReader]
        | Sequence[dict[str, Any]],
    ) -> None: ...
    @property
    def pcOrganIdsForSecondaryYield(self) -> Sequence[YieldComponentBuilder]: ...
    @pcOrganIdsForSecondaryYield.setter
    def pcOrganIdsForSecondaryYield(
        self,
        value: Sequence[YieldComponent | YieldComponentBuilder | YieldComponentReader]
        | Sequence[dict[str, Any]],
    ) -> None: ...
    @property
    def pcOrganIdsForCutting(self) -> Sequence[YieldComponentBuilder]: ...
    @pcOrganIdsForCutting.setter
    def pcOrganIdsForCutting(
        self,
        value: Sequence[YieldComponent | YieldComponentBuilder | YieldComponentReader]
        | Sequence[dict[str, Any]],
    ) -> None: ...
    @property
    def pcOrganMaintenanceRespiration(self) -> Sequence[float]: ...
    @pcOrganMaintenanceRespiration.setter
    def pcOrganMaintenanceRespiration(self, value: Sequence[float]) -> None: ...
    @property
    def organSenescenceIncrement(self) -> Sequence[float]: ...
    @organSenescenceIncrement.setter
    def organSenescenceIncrement(self, value: Sequence[float]) -> None: ...
    @property
    def pcOrganSenescenceRate(self) -> Sequence[Sequence[float]]: ...
    @pcOrganSenescenceRate.setter
    def pcOrganSenescenceRate(self, value: Sequence[Sequence[float]]) -> None: ...
    @property
    def overcastDayRadiation(self) -> float: ...
    @overcastDayRadiation.setter
    def overcastDayRadiation(self, value: float) -> None: ...
    @property
    def oxygenDeficit(self) -> float: ...
    @oxygenDeficit.setter
    def oxygenDeficit(self, value: float) -> None: ...
    @property
    def pcPartBiologicalNFixation(self) -> float: ...
    @pcPartBiologicalNFixation.setter
    def pcPartBiologicalNFixation(self, value: float) -> None: ...
    @property
    def pcPerennial(self) -> bool: ...
    @pcPerennial.setter
    def pcPerennial(self, value: bool) -> None: ...
    @property
    def photoperiodicDaylength(self) -> float: ...
    @photoperiodicDaylength.setter
    def photoperiodicDaylength(self, value: float) -> None: ...
    @property
    def photActRadiationMean(self) -> float: ...
    @photActRadiationMean.setter
    def photActRadiationMean(self, value: float) -> None: ...
    @property
    def pcPlantDensity(self) -> float: ...
    @pcPlantDensity.setter
    def pcPlantDensity(self, value: float) -> None: ...
    @property
    def potentialTranspiration(self) -> float: ...
    @potentialTranspiration.setter
    def potentialTranspiration(self, value: float) -> None: ...
    @property
    def referenceEvapotranspiration(self) -> float: ...
    @referenceEvapotranspiration.setter
    def referenceEvapotranspiration(self, value: float) -> None: ...
    @property
    def relativeTotalDevelopment(self) -> float: ...
    @relativeTotalDevelopment.setter
    def relativeTotalDevelopment(self, value: float) -> None: ...
    @property
    def remainingEvapotranspiration(self) -> float: ...
    @remainingEvapotranspiration.setter
    def remainingEvapotranspiration(self, value: float) -> None: ...
    @property
    def reserveAssimilatePool(self) -> float: ...
    @reserveAssimilatePool.setter
    def reserveAssimilatePool(self, value: float) -> None: ...
    @property
    def pcResidueNRatio(self) -> float: ...
    @pcResidueNRatio.setter
    def pcResidueNRatio(self, value: float) -> None: ...
    @property
    def pcRespiratoryStress(self) -> float: ...
    @pcRespiratoryStress.setter
    def pcRespiratoryStress(self, value: float) -> None: ...
    @property
    def rootBiomass(self) -> float: ...
    @rootBiomass.setter
    def rootBiomass(self, value: float) -> None: ...
    @property
    def rootBiomassOld(self) -> float: ...
    @rootBiomassOld.setter
    def rootBiomassOld(self, value: float) -> None: ...
    @property
    def rootDensity(self) -> Sequence[float]: ...
    @rootDensity.setter
    def rootDensity(self, value: Sequence[float]) -> None: ...
    @property
    def rootDiameter(self) -> Sequence[float]: ...
    @rootDiameter.setter
    def rootDiameter(self, value: Sequence[float]) -> None: ...
    @property
    def pcRootDistributionParam(self) -> float: ...
    @pcRootDistributionParam.setter
    def pcRootDistributionParam(self, value: float) -> None: ...
    @property
    def rootEffectivity(self) -> Sequence[float]: ...
    @rootEffectivity.setter
    def rootEffectivity(self, value: Sequence[float]) -> None: ...
    @property
    def pcRootFormFactor(self) -> float: ...
    @pcRootFormFactor.setter
    def pcRootFormFactor(self, value: float) -> None: ...
    @property
    def pcRootGrowthLag(self) -> float: ...
    @pcRootGrowthLag.setter
    def pcRootGrowthLag(self, value: float) -> None: ...
    @property
    def rootingDepth(self) -> int: ...
    @rootingDepth.setter
    def rootingDepth(self, value: int) -> None: ...
    @property
    def rootingDepthM(self) -> float: ...
    @rootingDepthM.setter
    def rootingDepthM(self, value: float) -> None: ...
    @property
    def rootingZone(self) -> int: ...
    @rootingZone.setter
    def rootingZone(self, value: int) -> None: ...
    @property
    def pcRootPenetrationRate(self) -> float: ...
    @pcRootPenetrationRate.setter
    def pcRootPenetrationRate(self, value: float) -> None: ...
    @property
    def vmSaturationDeficit(self) -> float: ...
    @vmSaturationDeficit.setter
    def vmSaturationDeficit(self, value: float) -> None: ...
    @property
    def soilCoverage(self) -> float: ...
    @soilCoverage.setter
    def soilCoverage(self, value: float) -> None: ...
    @property
    def vsSoilMineralNContent(self) -> Sequence[float]: ...
    @vsSoilMineralNContent.setter
    def vsSoilMineralNContent(self, value: Sequence[float]) -> None: ...
    @property
    def soilSpecificMaxRootingDepth(self) -> float: ...
    @soilSpecificMaxRootingDepth.setter
    def soilSpecificMaxRootingDepth(self, value: float) -> None: ...
    @property
    def vsSoilSpecificMaxRootingDepth(self) -> float: ...
    @vsSoilSpecificMaxRootingDepth.setter
    def vsSoilSpecificMaxRootingDepth(self, value: float) -> None: ...
    @property
    def pcSpecificLeafArea(self) -> Sequence[float]: ...
    @pcSpecificLeafArea.setter
    def pcSpecificLeafArea(self, value: Sequence[float]) -> None: ...
    @property
    def pcSpecificRootLength(self) -> float: ...
    @pcSpecificRootLength.setter
    def pcSpecificRootLength(self, value: float) -> None: ...
    @property
    def pcStageAfterCut(self) -> int: ...
    @pcStageAfterCut.setter
    def pcStageAfterCut(self, value: int) -> None: ...
    @property
    def pcStageAtMaxDiameter(self) -> float: ...
    @pcStageAtMaxDiameter.setter
    def pcStageAtMaxDiameter(self, value: float) -> None: ...
    @property
    def pcStageAtMaxHeight(self) -> float: ...
    @pcStageAtMaxHeight.setter
    def pcStageAtMaxHeight(self, value: float) -> None: ...
    @property
    def pcStageMaxRootNConcentration(self) -> Sequence[float]: ...
    @pcStageMaxRootNConcentration.setter
    def pcStageMaxRootNConcentration(self, value: Sequence[float]) -> None: ...
    @property
    def pcStageKcFactor(self) -> Sequence[float]: ...
    @pcStageKcFactor.setter
    def pcStageKcFactor(self, value: Sequence[float]) -> None: ...
    @property
    def pcStageTemperatureSum(self) -> Sequence[float]: ...
    @pcStageTemperatureSum.setter
    def pcStageTemperatureSum(self, value: Sequence[float]) -> None: ...
    @property
    def stomataResistance(self) -> float: ...
    @stomataResistance.setter
    def stomataResistance(self, value: float) -> None: ...
    @property
    def pcStorageOrgan(self) -> Sequence[bool]: ...
    @pcStorageOrgan.setter
    def pcStorageOrgan(self, value: Sequence[bool]) -> None: ...
    @property
    def storageOrgan(self) -> int: ...
    @storageOrgan.setter
    def storageOrgan(self, value: int) -> None: ...
    @property
    def targetNConcentration(self) -> float: ...
    @targetNConcentration.setter
    def targetNConcentration(self, value: float) -> None: ...
    @property
    def timeStep(self) -> float: ...
    @timeStep.setter
    def timeStep(self, value: float) -> None: ...
    @property
    def timeUnderAnoxia(self) -> int: ...
    @timeUnderAnoxia.setter
    def timeUnderAnoxia(self, value: int) -> None: ...
    @property
    def vsTortuosity(self) -> float: ...
    @vsTortuosity.setter
    def vsTortuosity(self, value: float) -> None: ...
    @property
    def totalBiomass(self) -> float: ...
    @totalBiomass.setter
    def totalBiomass(self, value: float) -> None: ...
    @property
    def totalBiomassNContent(self) -> float: ...
    @totalBiomassNContent.setter
    def totalBiomassNContent(self, value: float) -> None: ...
    @property
    def totalCropHeatImpact(self) -> float: ...
    @totalCropHeatImpact.setter
    def totalCropHeatImpact(self, value: float) -> None: ...
    @property
    def totalNInput(self) -> float: ...
    @totalNInput.setter
    def totalNInput(self, value: float) -> None: ...
    @property
    def totalNUptake(self) -> float: ...
    @totalNUptake.setter
    def totalNUptake(self, value: float) -> None: ...
    @property
    def totalRespired(self) -> float: ...
    @totalRespired.setter
    def totalRespired(self, value: float) -> None: ...
    @property
    def respiration(self) -> float: ...
    @respiration.setter
    def respiration(self, value: float) -> None: ...
    @property
    def sumTotalNUptake(self) -> float: ...
    @sumTotalNUptake.setter
    def sumTotalNUptake(self, value: float) -> None: ...
    @property
    def totalRootLength(self) -> float: ...
    @totalRootLength.setter
    def totalRootLength(self, value: float) -> None: ...
    @property
    def totalTemperatureSum(self) -> float: ...
    @totalTemperatureSum.setter
    def totalTemperatureSum(self, value: float) -> None: ...
    @property
    def temperatureSumToFlowering(self) -> float: ...
    @temperatureSumToFlowering.setter
    def temperatureSumToFlowering(self, value: float) -> None: ...
    @property
    def transpiration(self) -> Sequence[float]: ...
    @transpiration.setter
    def transpiration(self, value: Sequence[float]) -> None: ...
    @property
    def transpirationRedux(self) -> Sequence[float]: ...
    @transpirationRedux.setter
    def transpirationRedux(self, value: Sequence[float]) -> None: ...
    @property
    def transpirationDeficit(self) -> float: ...
    @transpirationDeficit.setter
    def transpirationDeficit(self, value: float) -> None: ...
    @property
    def vernalisationDays(self) -> float: ...
    @vernalisationDays.setter
    def vernalisationDays(self, value: float) -> None: ...
    @property
    def vernalisationFactor(self) -> float: ...
    @vernalisationFactor.setter
    def vernalisationFactor(self, value: float) -> None: ...
    @property
    def pcVernalisationRequirement(self) -> Sequence[float]: ...
    @pcVernalisationRequirement.setter
    def pcVernalisationRequirement(self, value: Sequence[float]) -> None: ...
    @property
    def pcWaterDeficitResponseOn(self) -> bool: ...
    @pcWaterDeficitResponseOn.setter
    def pcWaterDeficitResponseOn(self, value: bool) -> None: ...
    @property
    def o3Senescence(self) -> float: ...
    @o3Senescence.setter
    def o3Senescence(self, value: float) -> None: ...
    @property
    def o3LongTermDamage(self) -> float: ...
    @o3LongTermDamage.setter
    def o3LongTermDamage(self, value: float) -> None: ...
    @property
    def o3ShortTermDamage(self) -> float: ...
    @o3ShortTermDamage.setter
    def o3ShortTermDamage(self, value: float) -> None: ...
    @property
    def dyingOut(self) -> bool: ...
    @dyingOut.setter
    def dyingOut(self, value: bool) -> None: ...
    @property
    def accumulatedETa(self) -> float: ...
    @accumulatedETa.setter
    def accumulatedETa(self, value: float) -> None: ...
    @property
    def accumulatedTranspiration(self) -> float: ...
    @accumulatedTranspiration.setter
    def accumulatedTranspiration(self, value: float) -> None: ...
    @property
    def accumulatedPrimaryCropYield(self) -> float: ...
    @accumulatedPrimaryCropYield.setter
    def accumulatedPrimaryCropYield(self, value: float) -> None: ...
    @property
    def sumExportedCutBiomass(self) -> float: ...
    @sumExportedCutBiomass.setter
    def sumExportedCutBiomass(self, value: float) -> None: ...
    @property
    def exportedCutBiomass(self) -> float: ...
    @exportedCutBiomass.setter
    def exportedCutBiomass(self, value: float) -> None: ...
    @property
    def sumResidueCutBiomass(self) -> float: ...
    @sumResidueCutBiomass.setter
    def sumResidueCutBiomass(self, value: float) -> None: ...
    @property
    def residueCutBiomass(self) -> float: ...
    @residueCutBiomass.setter
    def residueCutBiomass(self, value: float) -> None: ...
    @property
    def cuttingDelayDays(self) -> int: ...
    @cuttingDelayDays.setter
    def cuttingDelayDays(self, value: int) -> None: ...
    @property
    def vsMaxEffectiveRootingDepth(self) -> float: ...
    @vsMaxEffectiveRootingDepth.setter
    def vsMaxEffectiveRootingDepth(self, value: float) -> None: ...
    @property
    def vsImpenetrableLayerDept(self) -> float: ...
    @vsImpenetrableLayerDept.setter
    def vsImpenetrableLayerDept(self, value: float) -> None: ...
    @property
    def anthesisDay(self) -> int: ...
    @anthesisDay.setter
    def anthesisDay(self, value: int) -> None: ...
    @property
    def maturityDay(self) -> int: ...
    @maturityDay.setter
    def maturityDay(self, value: int) -> None: ...
    @property
    def maturityReached(self) -> bool: ...
    @maturityReached.setter
    def maturityReached(self, value: bool) -> None: ...
    @property
    def stepSize24(self) -> int: ...
    @stepSize24.setter
    def stepSize24(self, value: int) -> None: ...
    @property
    def stepSize240(self) -> int: ...
    @stepSize240.setter
    def stepSize240(self, value: int) -> None: ...
    @property
    def rad24(self) -> Sequence[float]: ...
    @rad24.setter
    def rad24(self, value: Sequence[float]) -> None: ...
    @property
    def rad240(self) -> Sequence[float]: ...
    @rad240.setter
    def rad240(self, value: Sequence[float]) -> None: ...
    @property
    def tfol24(self) -> Sequence[float]: ...
    @tfol24.setter
    def tfol24(self, value: Sequence[float]) -> None: ...
    @property
    def tfol240(self) -> Sequence[float]: ...
    @tfol240.setter
    def tfol240(self, value: Sequence[float]) -> None: ...
    @property
    def index24(self) -> int: ...
    @index24.setter
    def index24(self, value: int) -> None: ...
    @property
    def index240(self) -> int: ...
    @index240.setter
    def index240(self, value: int) -> None: ...
    @property
    def full24(self) -> bool: ...
    @full24.setter
    def full24(self, value: bool) -> None: ...
    @property
    def full240(self) -> bool: ...
    @full240.setter
    def full240(self, value: bool) -> None: ...
    @property
    def guentherEmissions(self) -> Voc.EmissionsBuilder: ...
    @guentherEmissions.setter
    def guentherEmissions(
        self,
        value: Voc.Emissions
        | Voc.EmissionsBuilder
        | Voc.EmissionsReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def jjvEmissions(self) -> Voc.EmissionsBuilder: ...
    @jjvEmissions.setter
    def jjvEmissions(
        self,
        value: Voc.Emissions
        | Voc.EmissionsBuilder
        | Voc.EmissionsReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def vocSpecies(self) -> Voc.SpeciesDataBuilder: ...
    @vocSpecies.setter
    def vocSpecies(
        self,
        value: Voc.SpeciesData
        | Voc.SpeciesDataBuilder
        | Voc.SpeciesDataReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def cropPhotosynthesisResults(self) -> Voc.CPDataBuilder: ...
    @cropPhotosynthesisResults.setter
    def cropPhotosynthesisResults(
        self, value: Voc.CPData | Voc.CPDataBuilder | Voc.CPDataReader | dict[str, Any]
    ) -> None: ...
    @property
    def speciesParams(self) -> SpeciesParametersBuilder: ...
    @speciesParams.setter
    def speciesParams(
        self,
        value: SpeciesParameters
        | SpeciesParametersBuilder
        | SpeciesParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def cultivarParams(self) -> CultivarParametersBuilder: ...
    @cultivarParams.setter
    def cultivarParams(
        self,
        value: CultivarParameters
        | CultivarParametersBuilder
        | CultivarParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def residueParams(self) -> CropResidueParametersBuilder: ...
    @residueParams.setter
    def residueParams(
        self,
        value: CropResidueParameters
        | CropResidueParametersBuilder
        | CropResidueParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def isWinterCrop(self) -> bool: ...
    @isWinterCrop.setter
    def isWinterCrop(self, value: bool) -> None: ...
    @property
    def stemElongationEventFired(self) -> bool: ...
    @stemElongationEventFired.setter
    def stemElongationEventFired(self, value: bool) -> None: ...
    @property
    def lt50m(self) -> float: ...
    @lt50m.setter
    def lt50m(self, value: float) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> CropModuleStateBuilder: ...
    @overload
    def init(self: Any, name: Literal["guentherEmissions"]) -> Voc.EmissionsBuilder: ...
    @overload
    def init(self: Any, name: Literal["jjvEmissions"]) -> Voc.EmissionsBuilder: ...
    @overload
    def init(self: Any, name: Literal["vocSpecies"]) -> Voc.SpeciesDataBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["cropPhotosynthesisResults"]
    ) -> Voc.CPDataBuilder: ...
    @overload
    def init(self: Any, name: Literal["speciesParams"]) -> SpeciesParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["cultivarParams"]
    ) -> CultivarParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["residueParams"]
    ) -> CropResidueParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["pcAbovegroundOrgan"], size: int = ...
    ) -> _DynamicListBuilder[bool]: ...
    @overload
    def init(
        self: Any, name: Literal["pcAssimilatePartitioningCoeff"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcBaseDaylength"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcBaseTemperature"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcCriticalOxygenContent"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["cropWaterUptake"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["currentTemperatureSum"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcDaylengthRequirement"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcDroughtStressThreshold"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcInitialOrganBiomass"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["sunlitLeafAreaIndex"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["shadedLeafAreaIndex"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["nUptakeFromLayer"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcOptimumTemperature"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["organBiomass"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["organDeadBiomass"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["organGreenBiomass"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["organGrowthIncrement"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcOrganGrowthRespiration"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcOrganIdsForPrimaryYield"], size: int = ...
    ) -> _DynamicListBuilder[YieldComponentBuilder]: ...
    @overload
    def init(
        self: Any, name: Literal["pcOrganIdsForSecondaryYield"], size: int = ...
    ) -> _DynamicListBuilder[YieldComponentBuilder]: ...
    @overload
    def init(
        self: Any, name: Literal["pcOrganIdsForCutting"], size: int = ...
    ) -> _DynamicListBuilder[YieldComponentBuilder]: ...
    @overload
    def init(
        self: Any, name: Literal["pcOrganMaintenanceRespiration"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["organSenescenceIncrement"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcOrganSenescenceRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["rootDensity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["rootDiameter"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["rootEffectivity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["vsSoilMineralNContent"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcSpecificLeafArea"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcStageMaxRootNConcentration"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcStageKcFactor"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcStageTemperatureSum"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcStorageOrgan"], size: int = ...
    ) -> _DynamicListBuilder[bool]: ...
    @overload
    def init(
        self: Any, name: Literal["transpiration"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["transpirationRedux"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["pcVernalisationRequirement"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["rad24"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["rad240"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["tfol24"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["tfol240"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> CropModuleStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> CropModuleStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class AOMProperties:
    @property
    def aomSlow(self) -> float: ...
    @property
    def aomFast(self) -> float: ...
    @property
    def aomSlowDecRatetoSMBSlow(self) -> float: ...
    @property
    def aomSlowDecRatetoSMBFast(self) -> float: ...
    @property
    def aomFastDecRatetoSMBSlow(self) -> float: ...
    @property
    def aomFastDecRatetoSMBFast(self) -> float: ...
    @property
    def aomSlowDecCoeff(self) -> float: ...
    @property
    def aomFastDecCoeff(self) -> float: ...
    @property
    def aomSlowDecCoeffStandard(self) -> float: ...
    @property
    def aomFastDecCoeffStandard(self) -> float: ...
    @property
    def partAOMSlowtoSMBSlow(self) -> float: ...
    @property
    def partAOMSlowtoSMBFast(self) -> float: ...
    @property
    def cnRatioAOMSlow(self) -> float: ...
    @property
    def cnRatioAOMFast(self) -> float: ...
    @property
    def daysAfterApplication(self) -> int: ...
    @property
    def aomDryMatterContent(self) -> float: ...
    @property
    def aomNH4Content(self) -> float: ...
    @property
    def aomSlowDelta(self) -> float: ...
    @property
    def aomFastDelta(self) -> float: ...
    @property
    def incorporation(self) -> bool: ...
    @property
    def noVolatilization(self) -> bool: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[AOMPropertiesReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> AOMPropertiesReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        aomSlow: float | None = None,
        aomFast: float | None = None,
        aomSlowDecRatetoSMBSlow: float | None = None,
        aomSlowDecRatetoSMBFast: float | None = None,
        aomFastDecRatetoSMBSlow: float | None = None,
        aomFastDecRatetoSMBFast: float | None = None,
        aomSlowDecCoeff: float | None = None,
        aomFastDecCoeff: float | None = None,
        aomSlowDecCoeffStandard: float | None = None,
        aomFastDecCoeffStandard: float | None = None,
        partAOMSlowtoSMBSlow: float | None = None,
        partAOMSlowtoSMBFast: float | None = None,
        cnRatioAOMSlow: float | None = None,
        cnRatioAOMFast: float | None = None,
        daysAfterApplication: int | None = None,
        aomDryMatterContent: float | None = None,
        aomNH4Content: float | None = None,
        aomSlowDelta: float | None = None,
        aomFastDelta: float | None = None,
        incorporation: bool | None = None,
        noVolatilization: bool | None = None,
    ) -> AOMPropertiesBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> AOMPropertiesReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> AOMPropertiesReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class AOMPropertiesReader(AOMProperties):
    def as_builder(self) -> AOMPropertiesBuilder: ...

class AOMPropertiesBuilder(AOMProperties):
    @property
    def aomSlow(self) -> float: ...
    @aomSlow.setter
    def aomSlow(self, value: float) -> None: ...
    @property
    def aomFast(self) -> float: ...
    @aomFast.setter
    def aomFast(self, value: float) -> None: ...
    @property
    def aomSlowDecRatetoSMBSlow(self) -> float: ...
    @aomSlowDecRatetoSMBSlow.setter
    def aomSlowDecRatetoSMBSlow(self, value: float) -> None: ...
    @property
    def aomSlowDecRatetoSMBFast(self) -> float: ...
    @aomSlowDecRatetoSMBFast.setter
    def aomSlowDecRatetoSMBFast(self, value: float) -> None: ...
    @property
    def aomFastDecRatetoSMBSlow(self) -> float: ...
    @aomFastDecRatetoSMBSlow.setter
    def aomFastDecRatetoSMBSlow(self, value: float) -> None: ...
    @property
    def aomFastDecRatetoSMBFast(self) -> float: ...
    @aomFastDecRatetoSMBFast.setter
    def aomFastDecRatetoSMBFast(self, value: float) -> None: ...
    @property
    def aomSlowDecCoeff(self) -> float: ...
    @aomSlowDecCoeff.setter
    def aomSlowDecCoeff(self, value: float) -> None: ...
    @property
    def aomFastDecCoeff(self) -> float: ...
    @aomFastDecCoeff.setter
    def aomFastDecCoeff(self, value: float) -> None: ...
    @property
    def aomSlowDecCoeffStandard(self) -> float: ...
    @aomSlowDecCoeffStandard.setter
    def aomSlowDecCoeffStandard(self, value: float) -> None: ...
    @property
    def aomFastDecCoeffStandard(self) -> float: ...
    @aomFastDecCoeffStandard.setter
    def aomFastDecCoeffStandard(self, value: float) -> None: ...
    @property
    def partAOMSlowtoSMBSlow(self) -> float: ...
    @partAOMSlowtoSMBSlow.setter
    def partAOMSlowtoSMBSlow(self, value: float) -> None: ...
    @property
    def partAOMSlowtoSMBFast(self) -> float: ...
    @partAOMSlowtoSMBFast.setter
    def partAOMSlowtoSMBFast(self, value: float) -> None: ...
    @property
    def cnRatioAOMSlow(self) -> float: ...
    @cnRatioAOMSlow.setter
    def cnRatioAOMSlow(self, value: float) -> None: ...
    @property
    def cnRatioAOMFast(self) -> float: ...
    @cnRatioAOMFast.setter
    def cnRatioAOMFast(self, value: float) -> None: ...
    @property
    def daysAfterApplication(self) -> int: ...
    @daysAfterApplication.setter
    def daysAfterApplication(self, value: int) -> None: ...
    @property
    def aomDryMatterContent(self) -> float: ...
    @aomDryMatterContent.setter
    def aomDryMatterContent(self, value: float) -> None: ...
    @property
    def aomNH4Content(self) -> float: ...
    @aomNH4Content.setter
    def aomNH4Content(self, value: float) -> None: ...
    @property
    def aomSlowDelta(self) -> float: ...
    @aomSlowDelta.setter
    def aomSlowDelta(self, value: float) -> None: ...
    @property
    def aomFastDelta(self) -> float: ...
    @aomFastDelta.setter
    def aomFastDelta(self, value: float) -> None: ...
    @property
    def incorporation(self) -> bool: ...
    @incorporation.setter
    def incorporation(self, value: bool) -> None: ...
    @property
    def noVolatilization(self) -> bool: ...
    @noVolatilization.setter
    def noVolatilization(self, value: bool) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> AOMPropertiesBuilder: ...
    def copy(self) -> AOMPropertiesBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> AOMPropertiesReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class SoilLayerState:
    @property
    def layerThickness(self) -> float: ...
    @property
    def soilWaterFlux(self) -> float: ...
    @property
    def voAOMPool(self) -> Sequence[AOMProperties]: ...
    @property
    def somSlow(self) -> float: ...
    @property
    def somFast(self) -> float: ...
    @property
    def smbSlow(self) -> float: ...
    @property
    def smbFast(self) -> float: ...
    @property
    def soilCarbamid(self) -> float: ...
    @property
    def soilNH4(self) -> float: ...
    @property
    def soilNO2(self) -> float: ...
    @property
    def soilNO3(self) -> float: ...
    @property
    def soilFrozen(self) -> bool: ...
    @property
    def sps(self) -> SoilParameters: ...
    @property
    def soilMoistureM3(self) -> float: ...
    @property
    def soilTemperature(self) -> float: ...
    def init(self, name: Literal["sps"]) -> SoilParameters: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[SoilLayerStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilLayerStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        layerThickness: float | None = None,
        soilWaterFlux: float | None = None,
        voAOMPool: Sequence[AOMPropertiesBuilder]
        | Sequence[dict[str, Any]]
        | None = None,
        somSlow: float | None = None,
        somFast: float | None = None,
        smbSlow: float | None = None,
        smbFast: float | None = None,
        soilCarbamid: float | None = None,
        soilNH4: float | None = None,
        soilNO2: float | None = None,
        soilNO3: float | None = None,
        soilFrozen: bool | None = None,
        sps: SoilParametersBuilder | dict[str, Any] | None = None,
        soilMoistureM3: float | None = None,
        soilTemperature: float | None = None,
    ) -> SoilLayerStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilLayerStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilLayerStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class SoilLayerStateReader(SoilLayerState):
    @property
    def voAOMPool(self) -> Sequence[AOMPropertiesReader]: ...
    @property
    def sps(self) -> SoilParametersReader: ...
    def as_builder(self) -> SoilLayerStateBuilder: ...

class SoilLayerStateBuilder(SoilLayerState):
    @property
    def layerThickness(self) -> float: ...
    @layerThickness.setter
    def layerThickness(self, value: float) -> None: ...
    @property
    def soilWaterFlux(self) -> float: ...
    @soilWaterFlux.setter
    def soilWaterFlux(self, value: float) -> None: ...
    @property
    def voAOMPool(self) -> Sequence[AOMPropertiesBuilder]: ...
    @voAOMPool.setter
    def voAOMPool(
        self,
        value: Sequence[AOMProperties | AOMPropertiesBuilder | AOMPropertiesReader]
        | Sequence[dict[str, Any]],
    ) -> None: ...
    @property
    def somSlow(self) -> float: ...
    @somSlow.setter
    def somSlow(self, value: float) -> None: ...
    @property
    def somFast(self) -> float: ...
    @somFast.setter
    def somFast(self, value: float) -> None: ...
    @property
    def smbSlow(self) -> float: ...
    @smbSlow.setter
    def smbSlow(self, value: float) -> None: ...
    @property
    def smbFast(self) -> float: ...
    @smbFast.setter
    def smbFast(self, value: float) -> None: ...
    @property
    def soilCarbamid(self) -> float: ...
    @soilCarbamid.setter
    def soilCarbamid(self, value: float) -> None: ...
    @property
    def soilNH4(self) -> float: ...
    @soilNH4.setter
    def soilNH4(self, value: float) -> None: ...
    @property
    def soilNO2(self) -> float: ...
    @soilNO2.setter
    def soilNO2(self, value: float) -> None: ...
    @property
    def soilNO3(self) -> float: ...
    @soilNO3.setter
    def soilNO3(self, value: float) -> None: ...
    @property
    def soilFrozen(self) -> bool: ...
    @soilFrozen.setter
    def soilFrozen(self, value: bool) -> None: ...
    @property
    def sps(self) -> SoilParametersBuilder: ...
    @sps.setter
    def sps(
        self,
        value: SoilParameters
        | SoilParametersBuilder
        | SoilParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def soilMoistureM3(self) -> float: ...
    @soilMoistureM3.setter
    def soilMoistureM3(self, value: float) -> None: ...
    @property
    def soilTemperature(self) -> float: ...
    @soilTemperature.setter
    def soilTemperature(self, value: float) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> SoilLayerStateBuilder: ...
    @overload
    def init(self: Any, name: Literal["sps"]) -> SoilParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["voAOMPool"], size: int = ...
    ) -> _DynamicListBuilder[AOMPropertiesBuilder]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> SoilLayerStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> SoilLayerStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class SoilColumnState:
    class DelayedNMinApplicationParams:
        @property
        def fp(self) -> Params.MineralFertilization.Parameters: ...
        @property
        def samplingDepth(self) -> float: ...
        @property
        def cropNTarget(self) -> float: ...
        @property
        def cropNTarget30(self) -> float: ...
        @property
        def fertiliserMinApplication(self) -> float: ...
        @property
        def fertiliserMaxApplication(self) -> float: ...
        @property
        def topDressingDelay(self) -> float: ...
        def init(
            self, name: Literal["fp"]
        ) -> Params.MineralFertilization.Parameters: ...
        @staticmethod
        @contextmanager
        def from_bytes(
            data: bytes,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> Iterator[SoilColumnState.DelayedNMinApplicationParamsReader]: ...
        @staticmethod
        def from_bytes_packed(
            data: bytes,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> SoilColumnState.DelayedNMinApplicationParamsReader: ...
        @staticmethod
        def new_message(
            num_first_segment_words: int | None = None,
            allocate_seg_callable: Any = None,
            fp: Params.MineralFertilization.ParametersBuilder
            | dict[str, Any]
            | None = None,
            samplingDepth: float | None = None,
            cropNTarget: float | None = None,
            cropNTarget30: float | None = None,
            fertiliserMinApplication: float | None = None,
            fertiliserMaxApplication: float | None = None,
            topDressingDelay: float | None = None,
        ) -> SoilColumnState.DelayedNMinApplicationParamsBuilder: ...
        @staticmethod
        def read(
            file: BinaryIO,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> SoilColumnState.DelayedNMinApplicationParamsReader: ...
        @staticmethod
        def read_packed(
            file: BinaryIO,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> SoilColumnState.DelayedNMinApplicationParamsReader: ...
        def to_dict(self) -> dict[str, Any]: ...

    class DelayedNMinApplicationParamsReader(
        SoilColumnState.DelayedNMinApplicationParams
    ):
        @property
        def fp(self) -> Params.MineralFertilization.ParametersReader: ...
        def as_builder(self) -> SoilColumnState.DelayedNMinApplicationParamsBuilder: ...

    class DelayedNMinApplicationParamsBuilder(
        SoilColumnState.DelayedNMinApplicationParams
    ):
        @property
        def fp(self) -> Params.MineralFertilization.ParametersBuilder: ...
        @fp.setter
        def fp(
            self,
            value: Params.MineralFertilization.Parameters
            | Params.MineralFertilization.ParametersBuilder
            | Params.MineralFertilization.ParametersReader
            | dict[str, Any],
        ) -> None: ...
        @property
        def samplingDepth(self) -> float: ...
        @samplingDepth.setter
        def samplingDepth(self, value: float) -> None: ...
        @property
        def cropNTarget(self) -> float: ...
        @cropNTarget.setter
        def cropNTarget(self, value: float) -> None: ...
        @property
        def cropNTarget30(self) -> float: ...
        @cropNTarget30.setter
        def cropNTarget30(self, value: float) -> None: ...
        @property
        def fertiliserMinApplication(self) -> float: ...
        @fertiliserMinApplication.setter
        def fertiliserMinApplication(self, value: float) -> None: ...
        @property
        def fertiliserMaxApplication(self) -> float: ...
        @fertiliserMaxApplication.setter
        def fertiliserMaxApplication(self, value: float) -> None: ...
        @property
        def topDressingDelay(self) -> float: ...
        @topDressingDelay.setter
        def topDressingDelay(self, value: float) -> None: ...
        @staticmethod
        def from_dict(
            dictionary: dict[str, Any],
        ) -> SoilColumnState.DelayedNMinApplicationParamsBuilder: ...
        def init(
            self, name: Literal["fp"]
        ) -> Params.MineralFertilization.ParametersBuilder: ...
        def copy(self) -> SoilColumnState.DelayedNMinApplicationParamsBuilder: ...
        def to_bytes(self) -> bytes: ...
        def to_bytes_packed(self) -> bytes: ...
        def to_segments(self) -> list[bytes]: ...
        def as_reader(self) -> SoilColumnState.DelayedNMinApplicationParamsReader: ...
        @staticmethod
        def write(file: BufferedWriter) -> None: ...
        @staticmethod
        def write_packed(file: BufferedWriter) -> None: ...

    @property
    def vsSurfaceWaterStorage(self) -> float: ...
    @property
    def vsInterceptionStorage(self) -> float: ...
    @property
    def vmGroundwaterTable(self) -> int: ...
    @property
    def vsFluxAtLowerBoundary(self) -> float: ...
    @property
    def vqCropNUptake(self) -> float: ...
    @property
    def vtSoilSurfaceTemperature(self) -> float: ...
    @property
    def vmSnowDepth(self) -> float: ...
    @property
    def psMaxMineralisationDepth(self) -> float: ...
    @property
    def vsNumberOfOrganicLayers(self) -> float: ...
    @property
    def vfTopDressing(self) -> float: ...
    @property
    def vfTopDressingPartition(self) -> Params.MineralFertilization.Parameters: ...
    @property
    def vfTopDressingDelay(self) -> int: ...
    @property
    def cropModule(self) -> CropModuleState: ...
    @property
    def delayedNMinApplications(
        self,
    ) -> Sequence[SoilColumnState.DelayedNMinApplicationParams]: ...
    @property
    def pmCriticalMoistureDepth(self) -> float: ...
    @property
    def layers(self) -> Sequence[SoilLayerState]: ...
    @overload
    def init(
        self, name: Literal["vfTopDressingPartition"]
    ) -> Params.MineralFertilization.Parameters: ...
    @overload
    def init(self, name: Literal["cropModule"]) -> CropModuleState: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[SoilColumnStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilColumnStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        vsSurfaceWaterStorage: float | None = None,
        vsInterceptionStorage: float | None = None,
        vmGroundwaterTable: int | None = None,
        vsFluxAtLowerBoundary: float | None = None,
        vqCropNUptake: float | None = None,
        vtSoilSurfaceTemperature: float | None = None,
        vmSnowDepth: float | None = None,
        psMaxMineralisationDepth: float | None = None,
        vsNumberOfOrganicLayers: float | None = None,
        vfTopDressing: float | None = None,
        vfTopDressingPartition: Params.MineralFertilization.ParametersBuilder
        | dict[str, Any]
        | None = None,
        vfTopDressingDelay: int | None = None,
        cropModule: CropModuleStateBuilder | dict[str, Any] | None = None,
        delayedNMinApplications: Sequence[
            SoilColumnState.DelayedNMinApplicationParamsBuilder
        ]
        | Sequence[dict[str, Any]]
        | None = None,
        pmCriticalMoistureDepth: float | None = None,
        layers: Sequence[SoilLayerStateBuilder]
        | Sequence[dict[str, Any]]
        | None = None,
    ) -> SoilColumnStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilColumnStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilColumnStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class SoilColumnStateReader(SoilColumnState):
    @property
    def vfTopDressingPartition(
        self,
    ) -> Params.MineralFertilization.ParametersReader: ...
    @property
    def cropModule(self) -> CropModuleStateReader: ...
    @property
    def delayedNMinApplications(
        self,
    ) -> Sequence[SoilColumnState.DelayedNMinApplicationParamsReader]: ...
    @property
    def layers(self) -> Sequence[SoilLayerStateReader]: ...
    def as_builder(self) -> SoilColumnStateBuilder: ...

class SoilColumnStateBuilder(SoilColumnState):
    @property
    def vsSurfaceWaterStorage(self) -> float: ...
    @vsSurfaceWaterStorage.setter
    def vsSurfaceWaterStorage(self, value: float) -> None: ...
    @property
    def vsInterceptionStorage(self) -> float: ...
    @vsInterceptionStorage.setter
    def vsInterceptionStorage(self, value: float) -> None: ...
    @property
    def vmGroundwaterTable(self) -> int: ...
    @vmGroundwaterTable.setter
    def vmGroundwaterTable(self, value: int) -> None: ...
    @property
    def vsFluxAtLowerBoundary(self) -> float: ...
    @vsFluxAtLowerBoundary.setter
    def vsFluxAtLowerBoundary(self, value: float) -> None: ...
    @property
    def vqCropNUptake(self) -> float: ...
    @vqCropNUptake.setter
    def vqCropNUptake(self, value: float) -> None: ...
    @property
    def vtSoilSurfaceTemperature(self) -> float: ...
    @vtSoilSurfaceTemperature.setter
    def vtSoilSurfaceTemperature(self, value: float) -> None: ...
    @property
    def vmSnowDepth(self) -> float: ...
    @vmSnowDepth.setter
    def vmSnowDepth(self, value: float) -> None: ...
    @property
    def psMaxMineralisationDepth(self) -> float: ...
    @psMaxMineralisationDepth.setter
    def psMaxMineralisationDepth(self, value: float) -> None: ...
    @property
    def vsNumberOfOrganicLayers(self) -> float: ...
    @vsNumberOfOrganicLayers.setter
    def vsNumberOfOrganicLayers(self, value: float) -> None: ...
    @property
    def vfTopDressing(self) -> float: ...
    @vfTopDressing.setter
    def vfTopDressing(self, value: float) -> None: ...
    @property
    def vfTopDressingPartition(
        self,
    ) -> Params.MineralFertilization.ParametersBuilder: ...
    @vfTopDressingPartition.setter
    def vfTopDressingPartition(
        self,
        value: Params.MineralFertilization.Parameters
        | Params.MineralFertilization.ParametersBuilder
        | Params.MineralFertilization.ParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def vfTopDressingDelay(self) -> int: ...
    @vfTopDressingDelay.setter
    def vfTopDressingDelay(self, value: int) -> None: ...
    @property
    def cropModule(self) -> CropModuleStateBuilder: ...
    @cropModule.setter
    def cropModule(
        self,
        value: CropModuleState
        | CropModuleStateBuilder
        | CropModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def delayedNMinApplications(
        self,
    ) -> Sequence[SoilColumnState.DelayedNMinApplicationParamsBuilder]: ...
    @delayedNMinApplications.setter
    def delayedNMinApplications(
        self,
        value: Sequence[
            SoilColumnState.DelayedNMinApplicationParams
            | SoilColumnState.DelayedNMinApplicationParamsBuilder
            | SoilColumnState.DelayedNMinApplicationParamsReader
        ]
        | Sequence[dict[str, Any]],
    ) -> None: ...
    @property
    def pmCriticalMoistureDepth(self) -> float: ...
    @pmCriticalMoistureDepth.setter
    def pmCriticalMoistureDepth(self, value: float) -> None: ...
    @property
    def layers(self) -> Sequence[SoilLayerStateBuilder]: ...
    @layers.setter
    def layers(
        self,
        value: Sequence[SoilLayerState | SoilLayerStateBuilder | SoilLayerStateReader]
        | Sequence[dict[str, Any]],
    ) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> SoilColumnStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["vfTopDressingPartition"]
    ) -> Params.MineralFertilization.ParametersBuilder: ...
    @overload
    def init(self: Any, name: Literal["cropModule"]) -> CropModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["delayedNMinApplications"], size: int = ...
    ) -> _DynamicListBuilder[SoilColumnState.DelayedNMinApplicationParamsBuilder]: ...
    @overload
    def init(
        self: Any, name: Literal["layers"], size: int = ...
    ) -> _DynamicListBuilder[SoilLayerStateBuilder]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> SoilColumnStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> SoilColumnStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class SoilTemperatureModuleState:
    @property
    def soilSurfaceTemperature(self) -> float: ...
    @property
    def moduleParams(self) -> SoilTemperatureModuleParameters: ...
    @property
    def dampingFactor(self) -> float: ...
    @property
    def soilColumnVtGroundLayer(self) -> SoilLayerState: ...
    @property
    def soilColumnVtBottomLayer(self) -> SoilLayerState: ...
    @property
    def numberOfLayers(self) -> int: ...
    @property
    def vsNumberOfLayers(self) -> int: ...
    @property
    def vsSoilMoistureConst(self) -> Sequence[float]: ...
    @property
    def soilTemperature(self) -> Sequence[float]: ...
    @property
    def v(self) -> Sequence[float]: ...
    @property
    def volumeMatrix(self) -> Sequence[float]: ...
    @property
    def volumeMatrixOld(self) -> Sequence[float]: ...
    @property
    def b(self) -> Sequence[float]: ...
    @property
    def matrixPrimaryDiagonal(self) -> Sequence[float]: ...
    @property
    def matrixSecundaryDiagonal(self) -> Sequence[float]: ...
    @property
    def heatFlow(self) -> float: ...
    @property
    def heatConductivity(self) -> Sequence[float]: ...
    @property
    def heatConductivityMean(self) -> Sequence[float]: ...
    @property
    def heatCapacity(self) -> Sequence[float]: ...
    @overload
    def init(
        self, name: Literal["moduleParams"]
    ) -> SoilTemperatureModuleParameters: ...
    @overload
    def init(self, name: Literal["soilColumnVtGroundLayer"]) -> SoilLayerState: ...
    @overload
    def init(self, name: Literal["soilColumnVtBottomLayer"]) -> SoilLayerState: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[SoilTemperatureModuleStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilTemperatureModuleStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        soilSurfaceTemperature: float | None = None,
        moduleParams: SoilTemperatureModuleParametersBuilder
        | dict[str, Any]
        | None = None,
        dampingFactor: float | None = None,
        soilColumnVtGroundLayer: SoilLayerStateBuilder | dict[str, Any] | None = None,
        soilColumnVtBottomLayer: SoilLayerStateBuilder | dict[str, Any] | None = None,
        numberOfLayers: int | None = None,
        vsNumberOfLayers: int | None = None,
        vsSoilMoistureConst: Sequence[float] | None = None,
        soilTemperature: Sequence[float] | None = None,
        v: Sequence[float] | None = None,
        volumeMatrix: Sequence[float] | None = None,
        volumeMatrixOld: Sequence[float] | None = None,
        b: Sequence[float] | None = None,
        matrixPrimaryDiagonal: Sequence[float] | None = None,
        matrixSecundaryDiagonal: Sequence[float] | None = None,
        heatFlow: float | None = None,
        heatConductivity: Sequence[float] | None = None,
        heatConductivityMean: Sequence[float] | None = None,
        heatCapacity: Sequence[float] | None = None,
    ) -> SoilTemperatureModuleStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilTemperatureModuleStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilTemperatureModuleStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class SoilTemperatureModuleStateReader(SoilTemperatureModuleState):
    @property
    def moduleParams(self) -> SoilTemperatureModuleParametersReader: ...
    @property
    def soilColumnVtGroundLayer(self) -> SoilLayerStateReader: ...
    @property
    def soilColumnVtBottomLayer(self) -> SoilLayerStateReader: ...
    def as_builder(self) -> SoilTemperatureModuleStateBuilder: ...

class SoilTemperatureModuleStateBuilder(SoilTemperatureModuleState):
    @property
    def soilSurfaceTemperature(self) -> float: ...
    @soilSurfaceTemperature.setter
    def soilSurfaceTemperature(self, value: float) -> None: ...
    @property
    def moduleParams(self) -> SoilTemperatureModuleParametersBuilder: ...
    @moduleParams.setter
    def moduleParams(
        self,
        value: SoilTemperatureModuleParameters
        | SoilTemperatureModuleParametersBuilder
        | SoilTemperatureModuleParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def dampingFactor(self) -> float: ...
    @dampingFactor.setter
    def dampingFactor(self, value: float) -> None: ...
    @property
    def soilColumnVtGroundLayer(self) -> SoilLayerStateBuilder: ...
    @soilColumnVtGroundLayer.setter
    def soilColumnVtGroundLayer(
        self,
        value: SoilLayerState
        | SoilLayerStateBuilder
        | SoilLayerStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def soilColumnVtBottomLayer(self) -> SoilLayerStateBuilder: ...
    @soilColumnVtBottomLayer.setter
    def soilColumnVtBottomLayer(
        self,
        value: SoilLayerState
        | SoilLayerStateBuilder
        | SoilLayerStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def numberOfLayers(self) -> int: ...
    @numberOfLayers.setter
    def numberOfLayers(self, value: int) -> None: ...
    @property
    def vsNumberOfLayers(self) -> int: ...
    @vsNumberOfLayers.setter
    def vsNumberOfLayers(self, value: int) -> None: ...
    @property
    def vsSoilMoistureConst(self) -> Sequence[float]: ...
    @vsSoilMoistureConst.setter
    def vsSoilMoistureConst(self, value: Sequence[float]) -> None: ...
    @property
    def soilTemperature(self) -> Sequence[float]: ...
    @soilTemperature.setter
    def soilTemperature(self, value: Sequence[float]) -> None: ...
    @property
    def v(self) -> Sequence[float]: ...
    @v.setter
    def v(self, value: Sequence[float]) -> None: ...
    @property
    def volumeMatrix(self) -> Sequence[float]: ...
    @volumeMatrix.setter
    def volumeMatrix(self, value: Sequence[float]) -> None: ...
    @property
    def volumeMatrixOld(self) -> Sequence[float]: ...
    @volumeMatrixOld.setter
    def volumeMatrixOld(self, value: Sequence[float]) -> None: ...
    @property
    def b(self) -> Sequence[float]: ...
    @b.setter
    def b(self, value: Sequence[float]) -> None: ...
    @property
    def matrixPrimaryDiagonal(self) -> Sequence[float]: ...
    @matrixPrimaryDiagonal.setter
    def matrixPrimaryDiagonal(self, value: Sequence[float]) -> None: ...
    @property
    def matrixSecundaryDiagonal(self) -> Sequence[float]: ...
    @matrixSecundaryDiagonal.setter
    def matrixSecundaryDiagonal(self, value: Sequence[float]) -> None: ...
    @property
    def heatFlow(self) -> float: ...
    @heatFlow.setter
    def heatFlow(self, value: float) -> None: ...
    @property
    def heatConductivity(self) -> Sequence[float]: ...
    @heatConductivity.setter
    def heatConductivity(self, value: Sequence[float]) -> None: ...
    @property
    def heatConductivityMean(self) -> Sequence[float]: ...
    @heatConductivityMean.setter
    def heatConductivityMean(self, value: Sequence[float]) -> None: ...
    @property
    def heatCapacity(self) -> Sequence[float]: ...
    @heatCapacity.setter
    def heatCapacity(self, value: Sequence[float]) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> SoilTemperatureModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["moduleParams"]
    ) -> SoilTemperatureModuleParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["soilColumnVtGroundLayer"]
    ) -> SoilLayerStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["soilColumnVtBottomLayer"]
    ) -> SoilLayerStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["vsSoilMoistureConst"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["soilTemperature"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["v"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["volumeMatrix"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["volumeMatrixOld"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["b"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["matrixPrimaryDiagonal"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["matrixSecundaryDiagonal"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["heatConductivity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["heatConductivityMean"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["heatCapacity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> SoilTemperatureModuleStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> SoilTemperatureModuleStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class FrostModuleState:
    @property
    def pmHydraulicConductivityRedux(self) -> float: ...
    @property
    def frostDepth(self) -> float: ...
    @property
    def accumulatedFrostDepth(self) -> float: ...
    @property
    def negativeDegreeDays(self) -> float: ...
    @property
    def thawDepth(self) -> float: ...
    @property
    def frostDays(self) -> int: ...
    @property
    def lambdaRedux(self) -> Sequence[float]: ...
    @property
    def temperatureUnderSnow(self) -> float: ...
    @property
    def hydraulicConductivityRedux(self) -> float: ...
    @property
    def ptTimeStep(self) -> float: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[FrostModuleStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> FrostModuleStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        pmHydraulicConductivityRedux: float | None = None,
        frostDepth: float | None = None,
        accumulatedFrostDepth: float | None = None,
        negativeDegreeDays: float | None = None,
        thawDepth: float | None = None,
        frostDays: int | None = None,
        lambdaRedux: Sequence[float] | None = None,
        temperatureUnderSnow: float | None = None,
        hydraulicConductivityRedux: float | None = None,
        ptTimeStep: float | None = None,
    ) -> FrostModuleStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> FrostModuleStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> FrostModuleStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class FrostModuleStateReader(FrostModuleState):
    def as_builder(self) -> FrostModuleStateBuilder: ...

class FrostModuleStateBuilder(FrostModuleState):
    @property
    def pmHydraulicConductivityRedux(self) -> float: ...
    @pmHydraulicConductivityRedux.setter
    def pmHydraulicConductivityRedux(self, value: float) -> None: ...
    @property
    def frostDepth(self) -> float: ...
    @frostDepth.setter
    def frostDepth(self, value: float) -> None: ...
    @property
    def accumulatedFrostDepth(self) -> float: ...
    @accumulatedFrostDepth.setter
    def accumulatedFrostDepth(self, value: float) -> None: ...
    @property
    def negativeDegreeDays(self) -> float: ...
    @negativeDegreeDays.setter
    def negativeDegreeDays(self, value: float) -> None: ...
    @property
    def thawDepth(self) -> float: ...
    @thawDepth.setter
    def thawDepth(self, value: float) -> None: ...
    @property
    def frostDays(self) -> int: ...
    @frostDays.setter
    def frostDays(self, value: int) -> None: ...
    @property
    def lambdaRedux(self) -> Sequence[float]: ...
    @lambdaRedux.setter
    def lambdaRedux(self, value: Sequence[float]) -> None: ...
    @property
    def temperatureUnderSnow(self) -> float: ...
    @temperatureUnderSnow.setter
    def temperatureUnderSnow(self, value: float) -> None: ...
    @property
    def hydraulicConductivityRedux(self) -> float: ...
    @hydraulicConductivityRedux.setter
    def hydraulicConductivityRedux(self, value: float) -> None: ...
    @property
    def ptTimeStep(self) -> float: ...
    @ptTimeStep.setter
    def ptTimeStep(self, value: float) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> FrostModuleStateBuilder: ...
    def init(
        self, name: Literal["lambdaRedux"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    def copy(self) -> FrostModuleStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> FrostModuleStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class SnowModuleState:
    @property
    def snowRetentionCapacityMax(self) -> float: ...
    @property
    def snowDensity(self) -> float: ...
    @property
    def snowDepth(self) -> float: ...
    @property
    def frozenWaterInSnow(self) -> float: ...
    @property
    def liquidWaterInSnow(self) -> float: ...
    @property
    def waterToInfiltrate(self) -> float: ...
    @property
    def maxSnowDepth(self) -> float: ...
    @property
    def accumulatedSnowDepth(self) -> float: ...
    @property
    def snowmeltTemperature(self) -> float: ...
    @property
    def snowAccumulationThresholdTemperature(self) -> float: ...
    @property
    def temperatureLimitForLiquidWater(self) -> float: ...
    @property
    def correctionRain(self) -> float: ...
    @property
    def correctionSnow(self) -> float: ...
    @property
    def refreezeTemperature(self) -> float: ...
    @property
    def refreezeP1(self) -> float: ...
    @property
    def refreezeP2(self) -> float: ...
    @property
    def newSnowDensityMin(self) -> float: ...
    @property
    def snowMaxAdditionalDensity(self) -> float: ...
    @property
    def snowPacking(self) -> float: ...
    @property
    def snowRetentionCapacityMin(self) -> float: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[SnowModuleStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SnowModuleStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        snowRetentionCapacityMax: float | None = None,
        snowDensity: float | None = None,
        snowDepth: float | None = None,
        frozenWaterInSnow: float | None = None,
        liquidWaterInSnow: float | None = None,
        waterToInfiltrate: float | None = None,
        maxSnowDepth: float | None = None,
        accumulatedSnowDepth: float | None = None,
        snowmeltTemperature: float | None = None,
        snowAccumulationThresholdTemperature: float | None = None,
        temperatureLimitForLiquidWater: float | None = None,
        correctionRain: float | None = None,
        correctionSnow: float | None = None,
        refreezeTemperature: float | None = None,
        refreezeP1: float | None = None,
        refreezeP2: float | None = None,
        newSnowDensityMin: float | None = None,
        snowMaxAdditionalDensity: float | None = None,
        snowPacking: float | None = None,
        snowRetentionCapacityMin: float | None = None,
    ) -> SnowModuleStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SnowModuleStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SnowModuleStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class SnowModuleStateReader(SnowModuleState):
    def as_builder(self) -> SnowModuleStateBuilder: ...

class SnowModuleStateBuilder(SnowModuleState):
    @property
    def snowRetentionCapacityMax(self) -> float: ...
    @snowRetentionCapacityMax.setter
    def snowRetentionCapacityMax(self, value: float) -> None: ...
    @property
    def snowDensity(self) -> float: ...
    @snowDensity.setter
    def snowDensity(self, value: float) -> None: ...
    @property
    def snowDepth(self) -> float: ...
    @snowDepth.setter
    def snowDepth(self, value: float) -> None: ...
    @property
    def frozenWaterInSnow(self) -> float: ...
    @frozenWaterInSnow.setter
    def frozenWaterInSnow(self, value: float) -> None: ...
    @property
    def liquidWaterInSnow(self) -> float: ...
    @liquidWaterInSnow.setter
    def liquidWaterInSnow(self, value: float) -> None: ...
    @property
    def waterToInfiltrate(self) -> float: ...
    @waterToInfiltrate.setter
    def waterToInfiltrate(self, value: float) -> None: ...
    @property
    def maxSnowDepth(self) -> float: ...
    @maxSnowDepth.setter
    def maxSnowDepth(self, value: float) -> None: ...
    @property
    def accumulatedSnowDepth(self) -> float: ...
    @accumulatedSnowDepth.setter
    def accumulatedSnowDepth(self, value: float) -> None: ...
    @property
    def snowmeltTemperature(self) -> float: ...
    @snowmeltTemperature.setter
    def snowmeltTemperature(self, value: float) -> None: ...
    @property
    def snowAccumulationThresholdTemperature(self) -> float: ...
    @snowAccumulationThresholdTemperature.setter
    def snowAccumulationThresholdTemperature(self, value: float) -> None: ...
    @property
    def temperatureLimitForLiquidWater(self) -> float: ...
    @temperatureLimitForLiquidWater.setter
    def temperatureLimitForLiquidWater(self, value: float) -> None: ...
    @property
    def correctionRain(self) -> float: ...
    @correctionRain.setter
    def correctionRain(self, value: float) -> None: ...
    @property
    def correctionSnow(self) -> float: ...
    @correctionSnow.setter
    def correctionSnow(self, value: float) -> None: ...
    @property
    def refreezeTemperature(self) -> float: ...
    @refreezeTemperature.setter
    def refreezeTemperature(self, value: float) -> None: ...
    @property
    def refreezeP1(self) -> float: ...
    @refreezeP1.setter
    def refreezeP1(self, value: float) -> None: ...
    @property
    def refreezeP2(self) -> float: ...
    @refreezeP2.setter
    def refreezeP2(self, value: float) -> None: ...
    @property
    def newSnowDensityMin(self) -> float: ...
    @newSnowDensityMin.setter
    def newSnowDensityMin(self, value: float) -> None: ...
    @property
    def snowMaxAdditionalDensity(self) -> float: ...
    @snowMaxAdditionalDensity.setter
    def snowMaxAdditionalDensity(self, value: float) -> None: ...
    @property
    def snowPacking(self) -> float: ...
    @snowPacking.setter
    def snowPacking(self, value: float) -> None: ...
    @property
    def snowRetentionCapacityMin(self) -> float: ...
    @snowRetentionCapacityMin.setter
    def snowRetentionCapacityMin(self, value: float) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> SnowModuleStateBuilder: ...
    def copy(self) -> SnowModuleStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> SnowModuleStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class SoilMoistureModuleState:
    @property
    def frostComponent(self) -> FrostModuleState: ...
    @property
    def snowComponent(self) -> SnowModuleState: ...
    @property
    def xSACriticalSoilMoisture(self) -> float: ...
    @property
    def moduleParams(self) -> SoilMoistureModuleParameters: ...
    @property
    def vwWindSpeedHeight(self) -> float: ...
    @property
    def vwWindSpeed(self) -> float: ...
    @property
    def numberOfLayers(self) -> int: ...
    @property
    def vsNumberOfLayers(self) -> int: ...
    @property
    def actualEvaporation(self) -> float: ...
    @property
    def actualEvapotranspiration(self) -> float: ...
    @property
    def actualTranspiration(self) -> float: ...
    @property
    def availableWater(self) -> Sequence[float]: ...
    @property
    def capillaryRise(self) -> float: ...
    @property
    def capillaryRiseRate(self) -> Sequence[float]: ...
    @property
    def capillaryWater(self) -> Sequence[float]: ...
    @property
    def capillaryWater70(self) -> Sequence[float]: ...
    @property
    def evaporation(self) -> Sequence[float]: ...
    @property
    def evapotranspiration(self) -> Sequence[float]: ...
    @property
    def fieldCapacity(self) -> Sequence[float]: ...
    @property
    def fluxAtLowerBoundary(self) -> float: ...
    @property
    def gravitationalWater(self) -> Sequence[float]: ...
    @property
    def grossPrecipitation(self) -> float: ...
    @property
    def groundwaterAdded(self) -> float: ...
    @property
    def groundwaterDischarge(self) -> float: ...
    @property
    def groundwaterTable(self) -> int: ...
    @property
    def heatConductivity(self) -> Sequence[float]: ...
    @property
    def hydraulicConductivityRedux(self) -> float: ...
    @property
    def infiltration(self) -> float: ...
    @property
    def interception(self) -> float: ...
    @property
    def vcKcFactor(self) -> float: ...
    @property
    def lambda_(self) -> Sequence[float]: ...
    @property
    def lambdaReduced(self) -> float: ...
    @property
    def vsLatitude(self) -> float: ...
    @property
    def layerThickness(self) -> Sequence[float]: ...
    @property
    def pmLayerThickness(self) -> float: ...
    @property
    def pmLeachingDepth(self) -> float: ...
    @property
    def pmLeachingDepthLayer(self) -> int: ...
    @property
    def vwMaxAirTemperature(self) -> float: ...
    @property
    def pmMaxPercolationRate(self) -> float: ...
    @property
    def vwMeanAirTemperature(self) -> float: ...
    @property
    def vwMinAirTemperature(self) -> float: ...
    @property
    def vcNetPrecipitation(self) -> float: ...
    @property
    def vwNetRadiation(self) -> float: ...
    @property
    def permanentWiltingPoint(self) -> Sequence[float]: ...
    @property
    def vcPercentageSoilCoverage(self) -> float: ...
    @property
    def percolationRate(self) -> Sequence[float]: ...
    @property
    def vwPrecipitation(self) -> float: ...
    @property
    def referenceEvapotranspiration(self) -> float: ...
    @property
    def relativeHumidity(self) -> float: ...
    @property
    def residualEvapotranspiration(self) -> Sequence[float]: ...
    @property
    def saturatedHydraulicConductivity(self) -> Sequence[float]: ...
    @property
    def soilMoisture(self) -> Sequence[float]: ...
    @property
    def soilMoisturecrit(self) -> float: ...
    @property
    def soilMoistureDeficit(self) -> float: ...
    @property
    def soilPoreVolume(self) -> Sequence[float]: ...
    @property
    def vcStomataResistance(self) -> float: ...
    @property
    def surfaceRoughness(self) -> float: ...
    @property
    def surfaceRunOff(self) -> float: ...
    @property
    def sumSurfaceRunOff(self) -> float: ...
    @property
    def surfaceWaterStorage(self) -> float: ...
    @property
    def ptTimeStep(self) -> float: ...
    @property
    def totalWaterRemoval(self) -> float: ...
    @property
    def transpiration(self) -> Sequence[float]: ...
    @property
    def transpirationDeficit(self) -> float: ...
    @property
    def waterFlux(self) -> Sequence[float]: ...
    @overload
    def init(self, name: Literal["frostComponent"]) -> FrostModuleState: ...
    @overload
    def init(self, name: Literal["snowComponent"]) -> SnowModuleState: ...
    @overload
    def init(self, name: Literal["moduleParams"]) -> SoilMoistureModuleParameters: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[SoilMoistureModuleStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilMoistureModuleStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        frostComponent: FrostModuleStateBuilder | dict[str, Any] | None = None,
        snowComponent: SnowModuleStateBuilder | dict[str, Any] | None = None,
        xSACriticalSoilMoisture: float | None = None,
        moduleParams: SoilMoistureModuleParametersBuilder
        | dict[str, Any]
        | None = None,
        vwWindSpeedHeight: float | None = None,
        vwWindSpeed: float | None = None,
        numberOfLayers: int | None = None,
        vsNumberOfLayers: int | None = None,
        actualEvaporation: float | None = None,
        actualEvapotranspiration: float | None = None,
        actualTranspiration: float | None = None,
        availableWater: Sequence[float] | None = None,
        capillaryRise: float | None = None,
        capillaryRiseRate: Sequence[float] | None = None,
        capillaryWater: Sequence[float] | None = None,
        capillaryWater70: Sequence[float] | None = None,
        evaporation: Sequence[float] | None = None,
        evapotranspiration: Sequence[float] | None = None,
        fieldCapacity: Sequence[float] | None = None,
        fluxAtLowerBoundary: float | None = None,
        gravitationalWater: Sequence[float] | None = None,
        grossPrecipitation: float | None = None,
        groundwaterAdded: float | None = None,
        groundwaterDischarge: float | None = None,
        groundwaterTable: int | None = None,
        heatConductivity: Sequence[float] | None = None,
        hydraulicConductivityRedux: float | None = None,
        infiltration: float | None = None,
        interception: float | None = None,
        vcKcFactor: float | None = None,
        lambda_: Sequence[float] | None = None,
        lambdaReduced: float | None = None,
        vsLatitude: float | None = None,
        layerThickness: Sequence[float] | None = None,
        pmLayerThickness: float | None = None,
        pmLeachingDepth: float | None = None,
        pmLeachingDepthLayer: int | None = None,
        vwMaxAirTemperature: float | None = None,
        pmMaxPercolationRate: float | None = None,
        vwMeanAirTemperature: float | None = None,
        vwMinAirTemperature: float | None = None,
        vcNetPrecipitation: float | None = None,
        vwNetRadiation: float | None = None,
        permanentWiltingPoint: Sequence[float] | None = None,
        vcPercentageSoilCoverage: float | None = None,
        percolationRate: Sequence[float] | None = None,
        vwPrecipitation: float | None = None,
        referenceEvapotranspiration: float | None = None,
        relativeHumidity: float | None = None,
        residualEvapotranspiration: Sequence[float] | None = None,
        saturatedHydraulicConductivity: Sequence[float] | None = None,
        soilMoisture: Sequence[float] | None = None,
        soilMoisturecrit: float | None = None,
        soilMoistureDeficit: float | None = None,
        soilPoreVolume: Sequence[float] | None = None,
        vcStomataResistance: float | None = None,
        surfaceRoughness: float | None = None,
        surfaceRunOff: float | None = None,
        sumSurfaceRunOff: float | None = None,
        surfaceWaterStorage: float | None = None,
        ptTimeStep: float | None = None,
        totalWaterRemoval: float | None = None,
        transpiration: Sequence[float] | None = None,
        transpirationDeficit: float | None = None,
        waterFlux: Sequence[float] | None = None,
    ) -> SoilMoistureModuleStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilMoistureModuleStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilMoistureModuleStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class SoilMoistureModuleStateReader(SoilMoistureModuleState):
    @property
    def frostComponent(self) -> FrostModuleStateReader: ...
    @property
    def snowComponent(self) -> SnowModuleStateReader: ...
    @property
    def moduleParams(self) -> SoilMoistureModuleParametersReader: ...
    def as_builder(self) -> SoilMoistureModuleStateBuilder: ...

class SoilMoistureModuleStateBuilder(SoilMoistureModuleState):
    @property
    def frostComponent(self) -> FrostModuleStateBuilder: ...
    @frostComponent.setter
    def frostComponent(
        self,
        value: FrostModuleState
        | FrostModuleStateBuilder
        | FrostModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def snowComponent(self) -> SnowModuleStateBuilder: ...
    @snowComponent.setter
    def snowComponent(
        self,
        value: SnowModuleState
        | SnowModuleStateBuilder
        | SnowModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def xSACriticalSoilMoisture(self) -> float: ...
    @xSACriticalSoilMoisture.setter
    def xSACriticalSoilMoisture(self, value: float) -> None: ...
    @property
    def moduleParams(self) -> SoilMoistureModuleParametersBuilder: ...
    @moduleParams.setter
    def moduleParams(
        self,
        value: SoilMoistureModuleParameters
        | SoilMoistureModuleParametersBuilder
        | SoilMoistureModuleParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def vwWindSpeedHeight(self) -> float: ...
    @vwWindSpeedHeight.setter
    def vwWindSpeedHeight(self, value: float) -> None: ...
    @property
    def vwWindSpeed(self) -> float: ...
    @vwWindSpeed.setter
    def vwWindSpeed(self, value: float) -> None: ...
    @property
    def numberOfLayers(self) -> int: ...
    @numberOfLayers.setter
    def numberOfLayers(self, value: int) -> None: ...
    @property
    def vsNumberOfLayers(self) -> int: ...
    @vsNumberOfLayers.setter
    def vsNumberOfLayers(self, value: int) -> None: ...
    @property
    def actualEvaporation(self) -> float: ...
    @actualEvaporation.setter
    def actualEvaporation(self, value: float) -> None: ...
    @property
    def actualEvapotranspiration(self) -> float: ...
    @actualEvapotranspiration.setter
    def actualEvapotranspiration(self, value: float) -> None: ...
    @property
    def actualTranspiration(self) -> float: ...
    @actualTranspiration.setter
    def actualTranspiration(self, value: float) -> None: ...
    @property
    def availableWater(self) -> Sequence[float]: ...
    @availableWater.setter
    def availableWater(self, value: Sequence[float]) -> None: ...
    @property
    def capillaryRise(self) -> float: ...
    @capillaryRise.setter
    def capillaryRise(self, value: float) -> None: ...
    @property
    def capillaryRiseRate(self) -> Sequence[float]: ...
    @capillaryRiseRate.setter
    def capillaryRiseRate(self, value: Sequence[float]) -> None: ...
    @property
    def capillaryWater(self) -> Sequence[float]: ...
    @capillaryWater.setter
    def capillaryWater(self, value: Sequence[float]) -> None: ...
    @property
    def capillaryWater70(self) -> Sequence[float]: ...
    @capillaryWater70.setter
    def capillaryWater70(self, value: Sequence[float]) -> None: ...
    @property
    def evaporation(self) -> Sequence[float]: ...
    @evaporation.setter
    def evaporation(self, value: Sequence[float]) -> None: ...
    @property
    def evapotranspiration(self) -> Sequence[float]: ...
    @evapotranspiration.setter
    def evapotranspiration(self, value: Sequence[float]) -> None: ...
    @property
    def fieldCapacity(self) -> Sequence[float]: ...
    @fieldCapacity.setter
    def fieldCapacity(self, value: Sequence[float]) -> None: ...
    @property
    def fluxAtLowerBoundary(self) -> float: ...
    @fluxAtLowerBoundary.setter
    def fluxAtLowerBoundary(self, value: float) -> None: ...
    @property
    def gravitationalWater(self) -> Sequence[float]: ...
    @gravitationalWater.setter
    def gravitationalWater(self, value: Sequence[float]) -> None: ...
    @property
    def grossPrecipitation(self) -> float: ...
    @grossPrecipitation.setter
    def grossPrecipitation(self, value: float) -> None: ...
    @property
    def groundwaterAdded(self) -> float: ...
    @groundwaterAdded.setter
    def groundwaterAdded(self, value: float) -> None: ...
    @property
    def groundwaterDischarge(self) -> float: ...
    @groundwaterDischarge.setter
    def groundwaterDischarge(self, value: float) -> None: ...
    @property
    def groundwaterTable(self) -> int: ...
    @groundwaterTable.setter
    def groundwaterTable(self, value: int) -> None: ...
    @property
    def heatConductivity(self) -> Sequence[float]: ...
    @heatConductivity.setter
    def heatConductivity(self, value: Sequence[float]) -> None: ...
    @property
    def hydraulicConductivityRedux(self) -> float: ...
    @hydraulicConductivityRedux.setter
    def hydraulicConductivityRedux(self, value: float) -> None: ...
    @property
    def infiltration(self) -> float: ...
    @infiltration.setter
    def infiltration(self, value: float) -> None: ...
    @property
    def interception(self) -> float: ...
    @interception.setter
    def interception(self, value: float) -> None: ...
    @property
    def vcKcFactor(self) -> float: ...
    @vcKcFactor.setter
    def vcKcFactor(self, value: float) -> None: ...
    @property
    def lambda_(self) -> Sequence[float]: ...
    @lambda_.setter
    def lambda_(self, value: Sequence[float]) -> None: ...
    @property
    def lambdaReduced(self) -> float: ...
    @lambdaReduced.setter
    def lambdaReduced(self, value: float) -> None: ...
    @property
    def vsLatitude(self) -> float: ...
    @vsLatitude.setter
    def vsLatitude(self, value: float) -> None: ...
    @property
    def layerThickness(self) -> Sequence[float]: ...
    @layerThickness.setter
    def layerThickness(self, value: Sequence[float]) -> None: ...
    @property
    def pmLayerThickness(self) -> float: ...
    @pmLayerThickness.setter
    def pmLayerThickness(self, value: float) -> None: ...
    @property
    def pmLeachingDepth(self) -> float: ...
    @pmLeachingDepth.setter
    def pmLeachingDepth(self, value: float) -> None: ...
    @property
    def pmLeachingDepthLayer(self) -> int: ...
    @pmLeachingDepthLayer.setter
    def pmLeachingDepthLayer(self, value: int) -> None: ...
    @property
    def vwMaxAirTemperature(self) -> float: ...
    @vwMaxAirTemperature.setter
    def vwMaxAirTemperature(self, value: float) -> None: ...
    @property
    def pmMaxPercolationRate(self) -> float: ...
    @pmMaxPercolationRate.setter
    def pmMaxPercolationRate(self, value: float) -> None: ...
    @property
    def vwMeanAirTemperature(self) -> float: ...
    @vwMeanAirTemperature.setter
    def vwMeanAirTemperature(self, value: float) -> None: ...
    @property
    def vwMinAirTemperature(self) -> float: ...
    @vwMinAirTemperature.setter
    def vwMinAirTemperature(self, value: float) -> None: ...
    @property
    def vcNetPrecipitation(self) -> float: ...
    @vcNetPrecipitation.setter
    def vcNetPrecipitation(self, value: float) -> None: ...
    @property
    def vwNetRadiation(self) -> float: ...
    @vwNetRadiation.setter
    def vwNetRadiation(self, value: float) -> None: ...
    @property
    def permanentWiltingPoint(self) -> Sequence[float]: ...
    @permanentWiltingPoint.setter
    def permanentWiltingPoint(self, value: Sequence[float]) -> None: ...
    @property
    def vcPercentageSoilCoverage(self) -> float: ...
    @vcPercentageSoilCoverage.setter
    def vcPercentageSoilCoverage(self, value: float) -> None: ...
    @property
    def percolationRate(self) -> Sequence[float]: ...
    @percolationRate.setter
    def percolationRate(self, value: Sequence[float]) -> None: ...
    @property
    def vwPrecipitation(self) -> float: ...
    @vwPrecipitation.setter
    def vwPrecipitation(self, value: float) -> None: ...
    @property
    def referenceEvapotranspiration(self) -> float: ...
    @referenceEvapotranspiration.setter
    def referenceEvapotranspiration(self, value: float) -> None: ...
    @property
    def relativeHumidity(self) -> float: ...
    @relativeHumidity.setter
    def relativeHumidity(self, value: float) -> None: ...
    @property
    def residualEvapotranspiration(self) -> Sequence[float]: ...
    @residualEvapotranspiration.setter
    def residualEvapotranspiration(self, value: Sequence[float]) -> None: ...
    @property
    def saturatedHydraulicConductivity(self) -> Sequence[float]: ...
    @saturatedHydraulicConductivity.setter
    def saturatedHydraulicConductivity(self, value: Sequence[float]) -> None: ...
    @property
    def soilMoisture(self) -> Sequence[float]: ...
    @soilMoisture.setter
    def soilMoisture(self, value: Sequence[float]) -> None: ...
    @property
    def soilMoisturecrit(self) -> float: ...
    @soilMoisturecrit.setter
    def soilMoisturecrit(self, value: float) -> None: ...
    @property
    def soilMoistureDeficit(self) -> float: ...
    @soilMoistureDeficit.setter
    def soilMoistureDeficit(self, value: float) -> None: ...
    @property
    def soilPoreVolume(self) -> Sequence[float]: ...
    @soilPoreVolume.setter
    def soilPoreVolume(self, value: Sequence[float]) -> None: ...
    @property
    def vcStomataResistance(self) -> float: ...
    @vcStomataResistance.setter
    def vcStomataResistance(self, value: float) -> None: ...
    @property
    def surfaceRoughness(self) -> float: ...
    @surfaceRoughness.setter
    def surfaceRoughness(self, value: float) -> None: ...
    @property
    def surfaceRunOff(self) -> float: ...
    @surfaceRunOff.setter
    def surfaceRunOff(self, value: float) -> None: ...
    @property
    def sumSurfaceRunOff(self) -> float: ...
    @sumSurfaceRunOff.setter
    def sumSurfaceRunOff(self, value: float) -> None: ...
    @property
    def surfaceWaterStorage(self) -> float: ...
    @surfaceWaterStorage.setter
    def surfaceWaterStorage(self, value: float) -> None: ...
    @property
    def ptTimeStep(self) -> float: ...
    @ptTimeStep.setter
    def ptTimeStep(self, value: float) -> None: ...
    @property
    def totalWaterRemoval(self) -> float: ...
    @totalWaterRemoval.setter
    def totalWaterRemoval(self, value: float) -> None: ...
    @property
    def transpiration(self) -> Sequence[float]: ...
    @transpiration.setter
    def transpiration(self, value: Sequence[float]) -> None: ...
    @property
    def transpirationDeficit(self) -> float: ...
    @transpirationDeficit.setter
    def transpirationDeficit(self, value: float) -> None: ...
    @property
    def waterFlux(self) -> Sequence[float]: ...
    @waterFlux.setter
    def waterFlux(self, value: Sequence[float]) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> SoilMoistureModuleStateBuilder: ...
    @overload
    def init(self: Any, name: Literal["frostComponent"]) -> FrostModuleStateBuilder: ...
    @overload
    def init(self: Any, name: Literal["snowComponent"]) -> SnowModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["moduleParams"]
    ) -> SoilMoistureModuleParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["availableWater"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["capillaryRiseRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["capillaryWater"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["capillaryWater70"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["evaporation"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["evapotranspiration"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["fieldCapacity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["gravitationalWater"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["heatConductivity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["lambda_"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["layerThickness"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["permanentWiltingPoint"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["percolationRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["residualEvapotranspiration"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["saturatedHydraulicConductivity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["soilMoisture"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["soilPoreVolume"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["transpiration"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["waterFlux"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> SoilMoistureModuleStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> SoilMoistureModuleStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class SoilOrganicModuleState:
    @property
    def incorporation(self) -> bool: ...
    @property
    def totalDenitrification(self) -> float: ...
    @property
    def moduleParams(self) -> SoilOrganicModuleParameters: ...
    @property
    def vsNumberOfLayers(self) -> int: ...
    @property
    def vsNumberOfOrganicLayers(self) -> int: ...
    @property
    def addedOrganicMatter(self) -> bool: ...
    @property
    def irrigationAmount(self) -> float: ...
    @property
    def actAmmoniaOxidationRate(self) -> Sequence[float]: ...
    @property
    def actNitrificationRate(self) -> Sequence[float]: ...
    @property
    def actDenitrificationRate(self) -> Sequence[float]: ...
    @property
    def aomFastDeltaSum(self) -> Sequence[float]: ...
    @property
    def aomFastInput(self) -> Sequence[float]: ...
    @property
    def aomFastSum(self) -> Sequence[float]: ...
    @property
    def aomSlowDeltaSum(self) -> Sequence[float]: ...
    @property
    def aomSlowInput(self) -> Sequence[float]: ...
    @property
    def aomSlowSum(self) -> Sequence[float]: ...
    @property
    def cBalance(self) -> Sequence[float]: ...
    @property
    def decomposerRespiration(self) -> float: ...
    @property
    def errorMessage(self) -> str: ...
    @property
    def inertSoilOrganicC(self) -> Sequence[float]: ...
    @property
    def n2oProduced(self) -> float: ...
    @property
    def n2oProducedNit(self) -> float: ...
    @property
    def n2oProducedDenit(self) -> float: ...
    @property
    def netEcosystemExchange(self) -> float: ...
    @property
    def netEcosystemProduction(self) -> float: ...
    @property
    def netNMineralisation(self) -> float: ...
    @property
    def netNMineralisationRate(self) -> Sequence[float]: ...
    @property
    def totalNH3Volatilised(self) -> float: ...
    @property
    def nh3Volatilised(self) -> float: ...
    @property
    def smbCO2EvolutionRate(self) -> Sequence[float]: ...
    @property
    def smbFastDelta(self) -> Sequence[float]: ...
    @property
    def smbSlowDelta(self) -> Sequence[float]: ...
    @property
    def vsSoilMineralNContent(self) -> Sequence[float]: ...
    @property
    def soilOrganicC(self) -> Sequence[float]: ...
    @property
    def somFastDelta(self) -> Sequence[float]: ...
    @property
    def somFastInput(self) -> Sequence[float]: ...
    @property
    def somSlowDelta(self) -> Sequence[float]: ...
    @property
    def sumDenitrification(self) -> float: ...
    @property
    def sumNetNMineralisation(self) -> float: ...
    @property
    def sumN2OProduced(self) -> float: ...
    @property
    def sumNH3Volatilised(self) -> float: ...
    def init(self, name: Literal["moduleParams"]) -> SoilOrganicModuleParameters: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[SoilOrganicModuleStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilOrganicModuleStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        incorporation: bool | None = None,
        totalDenitrification: float | None = None,
        moduleParams: SoilOrganicModuleParametersBuilder | dict[str, Any] | None = None,
        vsNumberOfLayers: int | None = None,
        vsNumberOfOrganicLayers: int | None = None,
        addedOrganicMatter: bool | None = None,
        irrigationAmount: float | None = None,
        actAmmoniaOxidationRate: Sequence[float] | None = None,
        actNitrificationRate: Sequence[float] | None = None,
        actDenitrificationRate: Sequence[float] | None = None,
        aomFastDeltaSum: Sequence[float] | None = None,
        aomFastInput: Sequence[float] | None = None,
        aomFastSum: Sequence[float] | None = None,
        aomSlowDeltaSum: Sequence[float] | None = None,
        aomSlowInput: Sequence[float] | None = None,
        aomSlowSum: Sequence[float] | None = None,
        cBalance: Sequence[float] | None = None,
        decomposerRespiration: float | None = None,
        errorMessage: str | None = None,
        inertSoilOrganicC: Sequence[float] | None = None,
        n2oProduced: float | None = None,
        n2oProducedNit: float | None = None,
        n2oProducedDenit: float | None = None,
        netEcosystemExchange: float | None = None,
        netEcosystemProduction: float | None = None,
        netNMineralisation: float | None = None,
        netNMineralisationRate: Sequence[float] | None = None,
        totalNH3Volatilised: float | None = None,
        nh3Volatilised: float | None = None,
        smbCO2EvolutionRate: Sequence[float] | None = None,
        smbFastDelta: Sequence[float] | None = None,
        smbSlowDelta: Sequence[float] | None = None,
        vsSoilMineralNContent: Sequence[float] | None = None,
        soilOrganicC: Sequence[float] | None = None,
        somFastDelta: Sequence[float] | None = None,
        somFastInput: Sequence[float] | None = None,
        somSlowDelta: Sequence[float] | None = None,
        sumDenitrification: float | None = None,
        sumNetNMineralisation: float | None = None,
        sumN2OProduced: float | None = None,
        sumNH3Volatilised: float | None = None,
    ) -> SoilOrganicModuleStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilOrganicModuleStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilOrganicModuleStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class SoilOrganicModuleStateReader(SoilOrganicModuleState):
    @property
    def moduleParams(self) -> SoilOrganicModuleParametersReader: ...
    def as_builder(self) -> SoilOrganicModuleStateBuilder: ...

class SoilOrganicModuleStateBuilder(SoilOrganicModuleState):
    @property
    def incorporation(self) -> bool: ...
    @incorporation.setter
    def incorporation(self, value: bool) -> None: ...
    @property
    def totalDenitrification(self) -> float: ...
    @totalDenitrification.setter
    def totalDenitrification(self, value: float) -> None: ...
    @property
    def moduleParams(self) -> SoilOrganicModuleParametersBuilder: ...
    @moduleParams.setter
    def moduleParams(
        self,
        value: SoilOrganicModuleParameters
        | SoilOrganicModuleParametersBuilder
        | SoilOrganicModuleParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def vsNumberOfLayers(self) -> int: ...
    @vsNumberOfLayers.setter
    def vsNumberOfLayers(self, value: int) -> None: ...
    @property
    def vsNumberOfOrganicLayers(self) -> int: ...
    @vsNumberOfOrganicLayers.setter
    def vsNumberOfOrganicLayers(self, value: int) -> None: ...
    @property
    def addedOrganicMatter(self) -> bool: ...
    @addedOrganicMatter.setter
    def addedOrganicMatter(self, value: bool) -> None: ...
    @property
    def irrigationAmount(self) -> float: ...
    @irrigationAmount.setter
    def irrigationAmount(self, value: float) -> None: ...
    @property
    def actAmmoniaOxidationRate(self) -> Sequence[float]: ...
    @actAmmoniaOxidationRate.setter
    def actAmmoniaOxidationRate(self, value: Sequence[float]) -> None: ...
    @property
    def actNitrificationRate(self) -> Sequence[float]: ...
    @actNitrificationRate.setter
    def actNitrificationRate(self, value: Sequence[float]) -> None: ...
    @property
    def actDenitrificationRate(self) -> Sequence[float]: ...
    @actDenitrificationRate.setter
    def actDenitrificationRate(self, value: Sequence[float]) -> None: ...
    @property
    def aomFastDeltaSum(self) -> Sequence[float]: ...
    @aomFastDeltaSum.setter
    def aomFastDeltaSum(self, value: Sequence[float]) -> None: ...
    @property
    def aomFastInput(self) -> Sequence[float]: ...
    @aomFastInput.setter
    def aomFastInput(self, value: Sequence[float]) -> None: ...
    @property
    def aomFastSum(self) -> Sequence[float]: ...
    @aomFastSum.setter
    def aomFastSum(self, value: Sequence[float]) -> None: ...
    @property
    def aomSlowDeltaSum(self) -> Sequence[float]: ...
    @aomSlowDeltaSum.setter
    def aomSlowDeltaSum(self, value: Sequence[float]) -> None: ...
    @property
    def aomSlowInput(self) -> Sequence[float]: ...
    @aomSlowInput.setter
    def aomSlowInput(self, value: Sequence[float]) -> None: ...
    @property
    def aomSlowSum(self) -> Sequence[float]: ...
    @aomSlowSum.setter
    def aomSlowSum(self, value: Sequence[float]) -> None: ...
    @property
    def cBalance(self) -> Sequence[float]: ...
    @cBalance.setter
    def cBalance(self, value: Sequence[float]) -> None: ...
    @property
    def decomposerRespiration(self) -> float: ...
    @decomposerRespiration.setter
    def decomposerRespiration(self, value: float) -> None: ...
    @property
    def errorMessage(self) -> str: ...
    @errorMessage.setter
    def errorMessage(self, value: str) -> None: ...
    @property
    def inertSoilOrganicC(self) -> Sequence[float]: ...
    @inertSoilOrganicC.setter
    def inertSoilOrganicC(self, value: Sequence[float]) -> None: ...
    @property
    def n2oProduced(self) -> float: ...
    @n2oProduced.setter
    def n2oProduced(self, value: float) -> None: ...
    @property
    def n2oProducedNit(self) -> float: ...
    @n2oProducedNit.setter
    def n2oProducedNit(self, value: float) -> None: ...
    @property
    def n2oProducedDenit(self) -> float: ...
    @n2oProducedDenit.setter
    def n2oProducedDenit(self, value: float) -> None: ...
    @property
    def netEcosystemExchange(self) -> float: ...
    @netEcosystemExchange.setter
    def netEcosystemExchange(self, value: float) -> None: ...
    @property
    def netEcosystemProduction(self) -> float: ...
    @netEcosystemProduction.setter
    def netEcosystemProduction(self, value: float) -> None: ...
    @property
    def netNMineralisation(self) -> float: ...
    @netNMineralisation.setter
    def netNMineralisation(self, value: float) -> None: ...
    @property
    def netNMineralisationRate(self) -> Sequence[float]: ...
    @netNMineralisationRate.setter
    def netNMineralisationRate(self, value: Sequence[float]) -> None: ...
    @property
    def totalNH3Volatilised(self) -> float: ...
    @totalNH3Volatilised.setter
    def totalNH3Volatilised(self, value: float) -> None: ...
    @property
    def nh3Volatilised(self) -> float: ...
    @nh3Volatilised.setter
    def nh3Volatilised(self, value: float) -> None: ...
    @property
    def smbCO2EvolutionRate(self) -> Sequence[float]: ...
    @smbCO2EvolutionRate.setter
    def smbCO2EvolutionRate(self, value: Sequence[float]) -> None: ...
    @property
    def smbFastDelta(self) -> Sequence[float]: ...
    @smbFastDelta.setter
    def smbFastDelta(self, value: Sequence[float]) -> None: ...
    @property
    def smbSlowDelta(self) -> Sequence[float]: ...
    @smbSlowDelta.setter
    def smbSlowDelta(self, value: Sequence[float]) -> None: ...
    @property
    def vsSoilMineralNContent(self) -> Sequence[float]: ...
    @vsSoilMineralNContent.setter
    def vsSoilMineralNContent(self, value: Sequence[float]) -> None: ...
    @property
    def soilOrganicC(self) -> Sequence[float]: ...
    @soilOrganicC.setter
    def soilOrganicC(self, value: Sequence[float]) -> None: ...
    @property
    def somFastDelta(self) -> Sequence[float]: ...
    @somFastDelta.setter
    def somFastDelta(self, value: Sequence[float]) -> None: ...
    @property
    def somFastInput(self) -> Sequence[float]: ...
    @somFastInput.setter
    def somFastInput(self, value: Sequence[float]) -> None: ...
    @property
    def somSlowDelta(self) -> Sequence[float]: ...
    @somSlowDelta.setter
    def somSlowDelta(self, value: Sequence[float]) -> None: ...
    @property
    def sumDenitrification(self) -> float: ...
    @sumDenitrification.setter
    def sumDenitrification(self, value: float) -> None: ...
    @property
    def sumNetNMineralisation(self) -> float: ...
    @sumNetNMineralisation.setter
    def sumNetNMineralisation(self, value: float) -> None: ...
    @property
    def sumN2OProduced(self) -> float: ...
    @sumN2OProduced.setter
    def sumN2OProduced(self, value: float) -> None: ...
    @property
    def sumNH3Volatilised(self) -> float: ...
    @sumNH3Volatilised.setter
    def sumNH3Volatilised(self, value: float) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> SoilOrganicModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["moduleParams"]
    ) -> SoilOrganicModuleParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["actAmmoniaOxidationRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["actNitrificationRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["actDenitrificationRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["aomFastDeltaSum"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["aomFastInput"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["aomFastSum"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["aomSlowDeltaSum"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["aomSlowInput"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["aomSlowSum"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["cBalance"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["inertSoilOrganicC"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["netNMineralisationRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["smbCO2EvolutionRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["smbFastDelta"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["smbSlowDelta"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["vsSoilMineralNContent"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["soilOrganicC"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["somFastDelta"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["somFastInput"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["somSlowDelta"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> SoilOrganicModuleStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> SoilOrganicModuleStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class SoilTransportModuleState:
    @property
    def pcMinimumAvailableN(self) -> float: ...
    @property
    def moduleParams(self) -> SoilTransportModuleParameters: ...
    @property
    def convection(self) -> Sequence[float]: ...
    @property
    def cropNUptake(self) -> float: ...
    @property
    def diffusionCoeff(self) -> Sequence[float]: ...
    @property
    def dispersion(self) -> Sequence[float]: ...
    @property
    def dispersionCoeff(self) -> Sequence[float]: ...
    @property
    def vsLeachingDepth(self) -> float: ...
    @property
    def leachingAtBoundary(self) -> float: ...
    @property
    def vsNDeposition(self) -> float: ...
    @property
    def vcNUptakeFromLayer(self) -> Sequence[float]: ...
    @property
    def poreWaterVelocity(self) -> Sequence[float]: ...
    @property
    def vsSoilMineralNContent(self) -> Sequence[float]: ...
    @property
    def soilNO3(self) -> Sequence[float]: ...
    @property
    def soilNO3aq(self) -> Sequence[float]: ...
    @property
    def timeStep(self) -> float: ...
    @property
    def totalDispersion(self) -> Sequence[float]: ...
    @property
    def percolationRate(self) -> Sequence[float]: ...
    def init(self, name: Literal["moduleParams"]) -> SoilTransportModuleParameters: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[SoilTransportModuleStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilTransportModuleStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        pcMinimumAvailableN: float | None = None,
        moduleParams: SoilTransportModuleParametersBuilder
        | dict[str, Any]
        | None = None,
        convection: Sequence[float] | None = None,
        cropNUptake: float | None = None,
        diffusionCoeff: Sequence[float] | None = None,
        dispersion: Sequence[float] | None = None,
        dispersionCoeff: Sequence[float] | None = None,
        vsLeachingDepth: float | None = None,
        leachingAtBoundary: float | None = None,
        vsNDeposition: float | None = None,
        vcNUptakeFromLayer: Sequence[float] | None = None,
        poreWaterVelocity: Sequence[float] | None = None,
        vsSoilMineralNContent: Sequence[float] | None = None,
        soilNO3: Sequence[float] | None = None,
        soilNO3aq: Sequence[float] | None = None,
        timeStep: float | None = None,
        totalDispersion: Sequence[float] | None = None,
        percolationRate: Sequence[float] | None = None,
    ) -> SoilTransportModuleStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilTransportModuleStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> SoilTransportModuleStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class SoilTransportModuleStateReader(SoilTransportModuleState):
    @property
    def moduleParams(self) -> SoilTransportModuleParametersReader: ...
    def as_builder(self) -> SoilTransportModuleStateBuilder: ...

class SoilTransportModuleStateBuilder(SoilTransportModuleState):
    @property
    def pcMinimumAvailableN(self) -> float: ...
    @pcMinimumAvailableN.setter
    def pcMinimumAvailableN(self, value: float) -> None: ...
    @property
    def moduleParams(self) -> SoilTransportModuleParametersBuilder: ...
    @moduleParams.setter
    def moduleParams(
        self,
        value: SoilTransportModuleParameters
        | SoilTransportModuleParametersBuilder
        | SoilTransportModuleParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def convection(self) -> Sequence[float]: ...
    @convection.setter
    def convection(self, value: Sequence[float]) -> None: ...
    @property
    def cropNUptake(self) -> float: ...
    @cropNUptake.setter
    def cropNUptake(self, value: float) -> None: ...
    @property
    def diffusionCoeff(self) -> Sequence[float]: ...
    @diffusionCoeff.setter
    def diffusionCoeff(self, value: Sequence[float]) -> None: ...
    @property
    def dispersion(self) -> Sequence[float]: ...
    @dispersion.setter
    def dispersion(self, value: Sequence[float]) -> None: ...
    @property
    def dispersionCoeff(self) -> Sequence[float]: ...
    @dispersionCoeff.setter
    def dispersionCoeff(self, value: Sequence[float]) -> None: ...
    @property
    def vsLeachingDepth(self) -> float: ...
    @vsLeachingDepth.setter
    def vsLeachingDepth(self, value: float) -> None: ...
    @property
    def leachingAtBoundary(self) -> float: ...
    @leachingAtBoundary.setter
    def leachingAtBoundary(self, value: float) -> None: ...
    @property
    def vsNDeposition(self) -> float: ...
    @vsNDeposition.setter
    def vsNDeposition(self, value: float) -> None: ...
    @property
    def vcNUptakeFromLayer(self) -> Sequence[float]: ...
    @vcNUptakeFromLayer.setter
    def vcNUptakeFromLayer(self, value: Sequence[float]) -> None: ...
    @property
    def poreWaterVelocity(self) -> Sequence[float]: ...
    @poreWaterVelocity.setter
    def poreWaterVelocity(self, value: Sequence[float]) -> None: ...
    @property
    def vsSoilMineralNContent(self) -> Sequence[float]: ...
    @vsSoilMineralNContent.setter
    def vsSoilMineralNContent(self, value: Sequence[float]) -> None: ...
    @property
    def soilNO3(self) -> Sequence[float]: ...
    @soilNO3.setter
    def soilNO3(self, value: Sequence[float]) -> None: ...
    @property
    def soilNO3aq(self) -> Sequence[float]: ...
    @soilNO3aq.setter
    def soilNO3aq(self, value: Sequence[float]) -> None: ...
    @property
    def timeStep(self) -> float: ...
    @timeStep.setter
    def timeStep(self, value: float) -> None: ...
    @property
    def totalDispersion(self) -> Sequence[float]: ...
    @totalDispersion.setter
    def totalDispersion(self, value: Sequence[float]) -> None: ...
    @property
    def percolationRate(self) -> Sequence[float]: ...
    @percolationRate.setter
    def percolationRate(self, value: Sequence[float]) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> SoilTransportModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["moduleParams"]
    ) -> SoilTransportModuleParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["convection"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["diffusionCoeff"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["dispersion"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["dispersionCoeff"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["vcNUptakeFromLayer"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["poreWaterVelocity"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["vsSoilMineralNContent"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["soilNO3"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["soilNO3aq"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["totalDispersion"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    @overload
    def init(
        self: Any, name: Literal["percolationRate"], size: int = ...
    ) -> _DynamicListBuilder[float]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> SoilTransportModuleStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> SoilTransportModuleStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class MonicaModelState:
    class ACDToValue:
        @property
        def acd(self) -> int: ...
        @property
        def value(self) -> float: ...
        @staticmethod
        @contextmanager
        def from_bytes(
            data: bytes,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> Iterator[MonicaModelState.ACDToValueReader]: ...
        @staticmethod
        def from_bytes_packed(
            data: bytes,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> MonicaModelState.ACDToValueReader: ...
        @staticmethod
        def new_message(
            num_first_segment_words: int | None = None,
            allocate_seg_callable: Any = None,
            acd: int | None = None,
            value: float | None = None,
        ) -> MonicaModelState.ACDToValueBuilder: ...
        @staticmethod
        def read(
            file: BinaryIO,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> MonicaModelState.ACDToValueReader: ...
        @staticmethod
        def read_packed(
            file: BinaryIO,
            traversal_limit_in_words: int | None = ...,
            nesting_limit: int | None = ...,
        ) -> MonicaModelState.ACDToValueReader: ...
        def to_dict(self) -> dict[str, Any]: ...

    class ACDToValueReader(MonicaModelState.ACDToValue):
        def as_builder(self) -> MonicaModelState.ACDToValueBuilder: ...

    class ACDToValueBuilder(MonicaModelState.ACDToValue):
        @property
        def acd(self) -> int: ...
        @acd.setter
        def acd(self, value: int) -> None: ...
        @property
        def value(self) -> float: ...
        @value.setter
        def value(self, value: float) -> None: ...
        @staticmethod
        def from_dict(
            dictionary: dict[str, Any],
        ) -> MonicaModelState.ACDToValueBuilder: ...
        def copy(self) -> MonicaModelState.ACDToValueBuilder: ...
        def to_bytes(self) -> bytes: ...
        def to_bytes_packed(self) -> bytes: ...
        def to_segments(self) -> list[bytes]: ...
        def as_reader(self) -> MonicaModelState.ACDToValueReader: ...
        @staticmethod
        def write(file: BufferedWriter) -> None: ...
        @staticmethod
        def write_packed(file: BufferedWriter) -> None: ...

    @property
    def sitePs(self) -> SiteParameters: ...
    @property
    def cultivationMethodCount(self) -> int: ...
    @property
    def envPs(self) -> EnvironmentParameters: ...
    @property
    def cropPs(self) -> CropModuleParameters: ...
    @property
    def vsGroundwaterDepth(self) -> float: ...
    @property
    def vwAtmosphericO3Concentration(self) -> float: ...
    @property
    def vwAtmosphericCO2Concentration(self) -> float: ...
    @property
    def simPs(self) -> SimulationParameters: ...
    @property
    def groundwaterInformation(self) -> MeasuredGroundwaterTableInformation: ...
    @property
    def soilColumn(self) -> SoilColumnState: ...
    @property
    def soilTemperature(self) -> SoilTemperatureModuleState: ...
    @property
    def soilMoisture(self) -> SoilMoistureModuleState: ...
    @property
    def soilOrganic(self) -> SoilOrganicModuleState: ...
    @property
    def soilTransport(self) -> SoilTransportModuleState: ...
    @property
    def accuOxygenStress(self) -> float: ...
    @property
    def currentCropModule(self) -> CropModuleState: ...
    @property
    def sumFertiliser(self) -> float: ...
    @property
    def sumOrgFertiliser(self) -> float: ...
    @property
    def dailySumFertiliser(self) -> float: ...
    @property
    def dailySumOrgFertiliser(self) -> float: ...
    @property
    def dailySumOrganicFertilizerDM(self) -> float: ...
    @property
    def sumOrganicFertilizerDM(self) -> float: ...
    @property
    def humusBalanceCarryOver(self) -> float: ...
    @property
    def dailySumIrrigationWater(self) -> float: ...
    @property
    def optCarbonExportedResidues(self) -> float: ...
    @property
    def optCarbonReturnedResidues(self) -> float: ...
    @property
    def currentStepDate(self) -> Date: ...
    @property
    def climateData(self) -> Sequence[Sequence[MonicaModelState.ACDToValue]]: ...
    @property
    def currentEvents(self) -> Sequence[str]: ...
    @property
    def previousDaysEvents(self) -> Sequence[str]: ...
    @property
    def clearCropUponNextDay(self) -> bool: ...
    @property
    def daysWithCrop(self) -> int: ...
    @property
    def accuNStress(self) -> float: ...
    @property
    def accuWaterStress(self) -> float: ...
    @property
    def accuHeatStress(self) -> float: ...
    @overload
    def init(self, name: Literal["sitePs"]) -> SiteParameters: ...
    @overload
    def init(self, name: Literal["envPs"]) -> EnvironmentParameters: ...
    @overload
    def init(self, name: Literal["cropPs"]) -> CropModuleParameters: ...
    @overload
    def init(self, name: Literal["simPs"]) -> SimulationParameters: ...
    @overload
    def init(
        self, name: Literal["groundwaterInformation"]
    ) -> MeasuredGroundwaterTableInformation: ...
    @overload
    def init(self, name: Literal["soilColumn"]) -> SoilColumnState: ...
    @overload
    def init(self, name: Literal["soilTemperature"]) -> SoilTemperatureModuleState: ...
    @overload
    def init(self, name: Literal["soilMoisture"]) -> SoilMoistureModuleState: ...
    @overload
    def init(self, name: Literal["soilOrganic"]) -> SoilOrganicModuleState: ...
    @overload
    def init(self, name: Literal["soilTransport"]) -> SoilTransportModuleState: ...
    @overload
    def init(self, name: Literal["currentCropModule"]) -> CropModuleState: ...
    @overload
    def init(self, name: Literal["currentStepDate"]) -> Date: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[MonicaModelStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> MonicaModelStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        sitePs: SiteParametersBuilder | dict[str, Any] | None = None,
        cultivationMethodCount: int | None = None,
        envPs: EnvironmentParametersBuilder | dict[str, Any] | None = None,
        cropPs: CropModuleParametersBuilder | dict[str, Any] | None = None,
        vsGroundwaterDepth: float | None = None,
        vwAtmosphericO3Concentration: float | None = None,
        vwAtmosphericCO2Concentration: float | None = None,
        simPs: SimulationParametersBuilder | dict[str, Any] | None = None,
        groundwaterInformation: MeasuredGroundwaterTableInformationBuilder
        | dict[str, Any]
        | None = None,
        soilColumn: SoilColumnStateBuilder | dict[str, Any] | None = None,
        soilTemperature: SoilTemperatureModuleStateBuilder
        | dict[str, Any]
        | None = None,
        soilMoisture: SoilMoistureModuleStateBuilder | dict[str, Any] | None = None,
        soilOrganic: SoilOrganicModuleStateBuilder | dict[str, Any] | None = None,
        soilTransport: SoilTransportModuleStateBuilder | dict[str, Any] | None = None,
        accuOxygenStress: float | None = None,
        currentCropModule: CropModuleStateBuilder | dict[str, Any] | None = None,
        sumFertiliser: float | None = None,
        sumOrgFertiliser: float | None = None,
        dailySumFertiliser: float | None = None,
        dailySumOrgFertiliser: float | None = None,
        dailySumOrganicFertilizerDM: float | None = None,
        sumOrganicFertilizerDM: float | None = None,
        humusBalanceCarryOver: float | None = None,
        dailySumIrrigationWater: float | None = None,
        optCarbonExportedResidues: float | None = None,
        optCarbonReturnedResidues: float | None = None,
        currentStepDate: DateBuilder | dict[str, Any] | None = None,
        climateData: Sequence[Sequence[MonicaModelState.ACDToValueBuilder]]
        | None = None,
        currentEvents: Sequence[str] | None = None,
        previousDaysEvents: Sequence[str] | None = None,
        clearCropUponNextDay: bool | None = None,
        daysWithCrop: int | None = None,
        accuNStress: float | None = None,
        accuWaterStress: float | None = None,
        accuHeatStress: float | None = None,
    ) -> MonicaModelStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> MonicaModelStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> MonicaModelStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class MonicaModelStateReader(MonicaModelState):
    @property
    def sitePs(self) -> SiteParametersReader: ...
    @property
    def envPs(self) -> EnvironmentParametersReader: ...
    @property
    def cropPs(self) -> CropModuleParametersReader: ...
    @property
    def simPs(self) -> SimulationParametersReader: ...
    @property
    def groundwaterInformation(self) -> MeasuredGroundwaterTableInformationReader: ...
    @property
    def soilColumn(self) -> SoilColumnStateReader: ...
    @property
    def soilTemperature(self) -> SoilTemperatureModuleStateReader: ...
    @property
    def soilMoisture(self) -> SoilMoistureModuleStateReader: ...
    @property
    def soilOrganic(self) -> SoilOrganicModuleStateReader: ...
    @property
    def soilTransport(self) -> SoilTransportModuleStateReader: ...
    @property
    def currentCropModule(self) -> CropModuleStateReader: ...
    @property
    def currentStepDate(self) -> DateReader: ...
    @property
    def climateData(self) -> Sequence[Sequence[MonicaModelState.ACDToValueReader]]: ...
    def as_builder(self) -> MonicaModelStateBuilder: ...

class MonicaModelStateBuilder(MonicaModelState):
    @property
    def sitePs(self) -> SiteParametersBuilder: ...
    @sitePs.setter
    def sitePs(
        self,
        value: SiteParameters
        | SiteParametersBuilder
        | SiteParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def cultivationMethodCount(self) -> int: ...
    @cultivationMethodCount.setter
    def cultivationMethodCount(self, value: int) -> None: ...
    @property
    def envPs(self) -> EnvironmentParametersBuilder: ...
    @envPs.setter
    def envPs(
        self,
        value: EnvironmentParameters
        | EnvironmentParametersBuilder
        | EnvironmentParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def cropPs(self) -> CropModuleParametersBuilder: ...
    @cropPs.setter
    def cropPs(
        self,
        value: CropModuleParameters
        | CropModuleParametersBuilder
        | CropModuleParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def vsGroundwaterDepth(self) -> float: ...
    @vsGroundwaterDepth.setter
    def vsGroundwaterDepth(self, value: float) -> None: ...
    @property
    def vwAtmosphericO3Concentration(self) -> float: ...
    @vwAtmosphericO3Concentration.setter
    def vwAtmosphericO3Concentration(self, value: float) -> None: ...
    @property
    def vwAtmosphericCO2Concentration(self) -> float: ...
    @vwAtmosphericCO2Concentration.setter
    def vwAtmosphericCO2Concentration(self, value: float) -> None: ...
    @property
    def simPs(self) -> SimulationParametersBuilder: ...
    @simPs.setter
    def simPs(
        self,
        value: SimulationParameters
        | SimulationParametersBuilder
        | SimulationParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def groundwaterInformation(self) -> MeasuredGroundwaterTableInformationBuilder: ...
    @groundwaterInformation.setter
    def groundwaterInformation(
        self,
        value: MeasuredGroundwaterTableInformation
        | MeasuredGroundwaterTableInformationBuilder
        | MeasuredGroundwaterTableInformationReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def soilColumn(self) -> SoilColumnStateBuilder: ...
    @soilColumn.setter
    def soilColumn(
        self,
        value: SoilColumnState
        | SoilColumnStateBuilder
        | SoilColumnStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def soilTemperature(self) -> SoilTemperatureModuleStateBuilder: ...
    @soilTemperature.setter
    def soilTemperature(
        self,
        value: SoilTemperatureModuleState
        | SoilTemperatureModuleStateBuilder
        | SoilTemperatureModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def soilMoisture(self) -> SoilMoistureModuleStateBuilder: ...
    @soilMoisture.setter
    def soilMoisture(
        self,
        value: SoilMoistureModuleState
        | SoilMoistureModuleStateBuilder
        | SoilMoistureModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def soilOrganic(self) -> SoilOrganicModuleStateBuilder: ...
    @soilOrganic.setter
    def soilOrganic(
        self,
        value: SoilOrganicModuleState
        | SoilOrganicModuleStateBuilder
        | SoilOrganicModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def soilTransport(self) -> SoilTransportModuleStateBuilder: ...
    @soilTransport.setter
    def soilTransport(
        self,
        value: SoilTransportModuleState
        | SoilTransportModuleStateBuilder
        | SoilTransportModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def accuOxygenStress(self) -> float: ...
    @accuOxygenStress.setter
    def accuOxygenStress(self, value: float) -> None: ...
    @property
    def currentCropModule(self) -> CropModuleStateBuilder: ...
    @currentCropModule.setter
    def currentCropModule(
        self,
        value: CropModuleState
        | CropModuleStateBuilder
        | CropModuleStateReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def sumFertiliser(self) -> float: ...
    @sumFertiliser.setter
    def sumFertiliser(self, value: float) -> None: ...
    @property
    def sumOrgFertiliser(self) -> float: ...
    @sumOrgFertiliser.setter
    def sumOrgFertiliser(self, value: float) -> None: ...
    @property
    def dailySumFertiliser(self) -> float: ...
    @dailySumFertiliser.setter
    def dailySumFertiliser(self, value: float) -> None: ...
    @property
    def dailySumOrgFertiliser(self) -> float: ...
    @dailySumOrgFertiliser.setter
    def dailySumOrgFertiliser(self, value: float) -> None: ...
    @property
    def dailySumOrganicFertilizerDM(self) -> float: ...
    @dailySumOrganicFertilizerDM.setter
    def dailySumOrganicFertilizerDM(self, value: float) -> None: ...
    @property
    def sumOrganicFertilizerDM(self) -> float: ...
    @sumOrganicFertilizerDM.setter
    def sumOrganicFertilizerDM(self, value: float) -> None: ...
    @property
    def humusBalanceCarryOver(self) -> float: ...
    @humusBalanceCarryOver.setter
    def humusBalanceCarryOver(self, value: float) -> None: ...
    @property
    def dailySumIrrigationWater(self) -> float: ...
    @dailySumIrrigationWater.setter
    def dailySumIrrigationWater(self, value: float) -> None: ...
    @property
    def optCarbonExportedResidues(self) -> float: ...
    @optCarbonExportedResidues.setter
    def optCarbonExportedResidues(self, value: float) -> None: ...
    @property
    def optCarbonReturnedResidues(self) -> float: ...
    @optCarbonReturnedResidues.setter
    def optCarbonReturnedResidues(self, value: float) -> None: ...
    @property
    def currentStepDate(self) -> DateBuilder: ...
    @currentStepDate.setter
    def currentStepDate(
        self, value: Date | DateBuilder | DateReader | dict[str, Any]
    ) -> None: ...
    @property
    def climateData(self) -> Sequence[Sequence[MonicaModelState.ACDToValueBuilder]]: ...
    @climateData.setter
    def climateData(
        self,
        value: Sequence[
            Sequence[
                MonicaModelState.ACDToValue
                | MonicaModelState.ACDToValueBuilder
                | MonicaModelState.ACDToValueReader
            ]
        ]
        | dict[str, Any],
    ) -> None: ...
    @property
    def currentEvents(self) -> Sequence[str]: ...
    @currentEvents.setter
    def currentEvents(self, value: Sequence[str]) -> None: ...
    @property
    def previousDaysEvents(self) -> Sequence[str]: ...
    @previousDaysEvents.setter
    def previousDaysEvents(self, value: Sequence[str]) -> None: ...
    @property
    def clearCropUponNextDay(self) -> bool: ...
    @clearCropUponNextDay.setter
    def clearCropUponNextDay(self, value: bool) -> None: ...
    @property
    def daysWithCrop(self) -> int: ...
    @daysWithCrop.setter
    def daysWithCrop(self, value: int) -> None: ...
    @property
    def accuNStress(self) -> float: ...
    @accuNStress.setter
    def accuNStress(self, value: float) -> None: ...
    @property
    def accuWaterStress(self) -> float: ...
    @accuWaterStress.setter
    def accuWaterStress(self, value: float) -> None: ...
    @property
    def accuHeatStress(self) -> float: ...
    @accuHeatStress.setter
    def accuHeatStress(self, value: float) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> MonicaModelStateBuilder: ...
    @overload
    def init(self: Any, name: Literal["sitePs"]) -> SiteParametersBuilder: ...
    @overload
    def init(self: Any, name: Literal["envPs"]) -> EnvironmentParametersBuilder: ...
    @overload
    def init(self: Any, name: Literal["cropPs"]) -> CropModuleParametersBuilder: ...
    @overload
    def init(self: Any, name: Literal["simPs"]) -> SimulationParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["groundwaterInformation"]
    ) -> MeasuredGroundwaterTableInformationBuilder: ...
    @overload
    def init(self: Any, name: Literal["soilColumn"]) -> SoilColumnStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["soilTemperature"]
    ) -> SoilTemperatureModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["soilMoisture"]
    ) -> SoilMoistureModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["soilOrganic"]
    ) -> SoilOrganicModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["soilTransport"]
    ) -> SoilTransportModuleStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["currentCropModule"]
    ) -> CropModuleStateBuilder: ...
    @overload
    def init(self: Any, name: Literal["currentStepDate"]) -> DateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["climateData"], size: int = ...
    ) -> _DynamicListBuilder[MonicaModelState.ACDToValueBuilder]: ...
    @overload
    def init(
        self: Any, name: Literal["currentEvents"], size: int = ...
    ) -> _DynamicListBuilder[str]: ...
    @overload
    def init(
        self: Any, name: Literal["previousDaysEvents"], size: int = ...
    ) -> _DynamicListBuilder[str]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> MonicaModelStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> MonicaModelStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class RuntimeState:
    @property
    def modelState(self) -> MonicaModelState: ...
    def init(self, name: Literal["modelState"]) -> MonicaModelState: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[RuntimeStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> RuntimeStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        modelState: MonicaModelStateBuilder | dict[str, Any] | None = None,
    ) -> RuntimeStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> RuntimeStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> RuntimeStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class RuntimeStateReader(RuntimeState):
    @property
    def modelState(self) -> MonicaModelStateReader: ...
    def as_builder(self) -> RuntimeStateBuilder: ...

class RuntimeStateBuilder(RuntimeState):
    @property
    def modelState(self) -> MonicaModelStateBuilder: ...
    @modelState.setter
    def modelState(
        self,
        value: MonicaModelState
        | MonicaModelStateBuilder
        | MonicaModelStateReader
        | dict[str, Any],
    ) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> RuntimeStateBuilder: ...
    def init(self, name: Literal["modelState"]) -> MonicaModelStateBuilder: ...
    def copy(self) -> RuntimeStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> RuntimeStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class CropState:
    @property
    def automaticHarvestParams(self) -> AutomaticHarvestParameters: ...
    @property
    def speciesName(self) -> str: ...
    @property
    def cultivarName(self) -> str: ...
    @property
    def seedDate(self) -> Date: ...
    @property
    def harvestDate(self) -> Date: ...
    @property
    def isWinterCrop(self) -> MaybeBool: ...
    @property
    def isPerennialCrop(self) -> MaybeBool: ...
    @property
    def cuttingDates(self) -> Sequence[Date]: ...
    @property
    def cropParams(self) -> CropParameters: ...
    @property
    def perennialCropParams(self) -> CropParameters: ...
    @property
    def residueParams(self) -> CropResidueParameters: ...
    @property
    def crossCropAdaptionFactor(self) -> float: ...
    @property
    def automaticHarvest(self) -> bool: ...
    @overload
    def init(
        self, name: Literal["automaticHarvestParams"]
    ) -> AutomaticHarvestParameters: ...
    @overload
    def init(self, name: Literal["seedDate"]) -> Date: ...
    @overload
    def init(self, name: Literal["harvestDate"]) -> Date: ...
    @overload
    def init(self, name: Literal["isWinterCrop"]) -> MaybeBool: ...
    @overload
    def init(self, name: Literal["isPerennialCrop"]) -> MaybeBool: ...
    @overload
    def init(self, name: Literal["cropParams"]) -> CropParameters: ...
    @overload
    def init(self, name: Literal["perennialCropParams"]) -> CropParameters: ...
    @overload
    def init(self, name: Literal["residueParams"]) -> CropResidueParameters: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[CropStateReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> CropStateReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        automaticHarvestParams: AutomaticHarvestParametersBuilder
        | dict[str, Any]
        | None = None,
        speciesName: str | None = None,
        cultivarName: str | None = None,
        seedDate: DateBuilder | dict[str, Any] | None = None,
        harvestDate: DateBuilder | dict[str, Any] | None = None,
        isWinterCrop: MaybeBoolBuilder | dict[str, Any] | None = None,
        isPerennialCrop: MaybeBoolBuilder | dict[str, Any] | None = None,
        cuttingDates: Sequence[DateBuilder] | Sequence[dict[str, Any]] | None = None,
        cropParams: CropParametersBuilder | dict[str, Any] | None = None,
        perennialCropParams: CropParametersBuilder | dict[str, Any] | None = None,
        residueParams: CropResidueParametersBuilder | dict[str, Any] | None = None,
        crossCropAdaptionFactor: float | None = None,
        automaticHarvest: bool | None = None,
    ) -> CropStateBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> CropStateReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> CropStateReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class CropStateReader(CropState):
    @property
    def automaticHarvestParams(self) -> AutomaticHarvestParametersReader: ...
    @property
    def seedDate(self) -> DateReader: ...
    @property
    def harvestDate(self) -> DateReader: ...
    @property
    def isWinterCrop(self) -> MaybeBoolReader: ...
    @property
    def isPerennialCrop(self) -> MaybeBoolReader: ...
    @property
    def cuttingDates(self) -> Sequence[DateReader]: ...
    @property
    def cropParams(self) -> CropParametersReader: ...
    @property
    def perennialCropParams(self) -> CropParametersReader: ...
    @property
    def residueParams(self) -> CropResidueParametersReader: ...
    def as_builder(self) -> CropStateBuilder: ...

class CropStateBuilder(CropState):
    @property
    def automaticHarvestParams(self) -> AutomaticHarvestParametersBuilder: ...
    @automaticHarvestParams.setter
    def automaticHarvestParams(
        self,
        value: AutomaticHarvestParameters
        | AutomaticHarvestParametersBuilder
        | AutomaticHarvestParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def speciesName(self) -> str: ...
    @speciesName.setter
    def speciesName(self, value: str) -> None: ...
    @property
    def cultivarName(self) -> str: ...
    @cultivarName.setter
    def cultivarName(self, value: str) -> None: ...
    @property
    def seedDate(self) -> DateBuilder: ...
    @seedDate.setter
    def seedDate(
        self, value: Date | DateBuilder | DateReader | dict[str, Any]
    ) -> None: ...
    @property
    def harvestDate(self) -> DateBuilder: ...
    @harvestDate.setter
    def harvestDate(
        self, value: Date | DateBuilder | DateReader | dict[str, Any]
    ) -> None: ...
    @property
    def isWinterCrop(self) -> MaybeBoolBuilder: ...
    @isWinterCrop.setter
    def isWinterCrop(
        self, value: MaybeBool | MaybeBoolBuilder | MaybeBoolReader | dict[str, Any]
    ) -> None: ...
    @property
    def isPerennialCrop(self) -> MaybeBoolBuilder: ...
    @isPerennialCrop.setter
    def isPerennialCrop(
        self, value: MaybeBool | MaybeBoolBuilder | MaybeBoolReader | dict[str, Any]
    ) -> None: ...
    @property
    def cuttingDates(self) -> Sequence[DateBuilder]: ...
    @cuttingDates.setter
    def cuttingDates(
        self,
        value: Sequence[Date | DateBuilder | DateReader] | Sequence[dict[str, Any]],
    ) -> None: ...
    @property
    def cropParams(self) -> CropParametersBuilder: ...
    @cropParams.setter
    def cropParams(
        self,
        value: CropParameters
        | CropParametersBuilder
        | CropParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def perennialCropParams(self) -> CropParametersBuilder: ...
    @perennialCropParams.setter
    def perennialCropParams(
        self,
        value: CropParameters
        | CropParametersBuilder
        | CropParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def residueParams(self) -> CropResidueParametersBuilder: ...
    @residueParams.setter
    def residueParams(
        self,
        value: CropResidueParameters
        | CropResidueParametersBuilder
        | CropResidueParametersReader
        | dict[str, Any],
    ) -> None: ...
    @property
    def crossCropAdaptionFactor(self) -> float: ...
    @crossCropAdaptionFactor.setter
    def crossCropAdaptionFactor(self, value: float) -> None: ...
    @property
    def automaticHarvest(self) -> bool: ...
    @automaticHarvest.setter
    def automaticHarvest(self, value: bool) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> CropStateBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["automaticHarvestParams"]
    ) -> AutomaticHarvestParametersBuilder: ...
    @overload
    def init(self: Any, name: Literal["seedDate"]) -> DateBuilder: ...
    @overload
    def init(self: Any, name: Literal["harvestDate"]) -> DateBuilder: ...
    @overload
    def init(self: Any, name: Literal["isWinterCrop"]) -> MaybeBoolBuilder: ...
    @overload
    def init(self: Any, name: Literal["isPerennialCrop"]) -> MaybeBoolBuilder: ...
    @overload
    def init(self: Any, name: Literal["cropParams"]) -> CropParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["perennialCropParams"]
    ) -> CropParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["residueParams"]
    ) -> CropResidueParametersBuilder: ...
    @overload
    def init(
        self: Any, name: Literal["cuttingDates"], size: int = ...
    ) -> _DynamicListBuilder[DateBuilder]: ...
    def init(self: Any, name: str, size: int = ...) -> Any: ...
    def copy(self) -> CropStateBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> CropStateReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...

class ICData:
    @property
    def noCrop(self) -> None: ...
    @property
    def height(self) -> float: ...
    @property
    def lait(self) -> float: ...
    def which(self) -> Literal["noCrop", "height", "lait"]: ...
    @staticmethod
    @contextmanager
    def from_bytes(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> Iterator[ICDataReader]: ...
    @staticmethod
    def from_bytes_packed(
        data: bytes,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> ICDataReader: ...
    @staticmethod
    def new_message(
        num_first_segment_words: int | None = None,
        allocate_seg_callable: Any = None,
        noCrop: None | None = None,
        height: float | None = None,
        lait: float | None = None,
    ) -> ICDataBuilder: ...
    @staticmethod
    def read(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> ICDataReader: ...
    @staticmethod
    def read_packed(
        file: BinaryIO,
        traversal_limit_in_words: int | None = ...,
        nesting_limit: int | None = ...,
    ) -> ICDataReader: ...
    def to_dict(self) -> dict[str, Any]: ...

class ICDataReader(ICData):
    def as_builder(self) -> ICDataBuilder: ...

class ICDataBuilder(ICData):
    @property
    def noCrop(self) -> None: ...
    @noCrop.setter
    def noCrop(self, value: None) -> None: ...
    @property
    def height(self) -> float: ...
    @height.setter
    def height(self, value: float) -> None: ...
    @property
    def lait(self) -> float: ...
    @lait.setter
    def lait(self, value: float) -> None: ...
    @staticmethod
    def from_dict(dictionary: dict[str, Any]) -> ICDataBuilder: ...
    def copy(self) -> ICDataBuilder: ...
    def to_bytes(self) -> bytes: ...
    def to_bytes_packed(self) -> bytes: ...
    def to_segments(self) -> list[bytes]: ...
    def as_reader(self) -> ICDataReader: ...
    @staticmethod
    def write(file: BufferedWriter) -> None: ...
    @staticmethod
    def write_packed(file: BufferedWriter) -> None: ...
