"""
Engine ScratchPad bindings
"""
from __future__ import annotations
import fourdst._phys.atomic
import fourdst._phys.composition
import gridfire._gridfire.reaction
import typing
__all__: list[str] = ['ADAPTIVE_ENGINE_VIEW_SCRATCHPAD', 'ADFunRegistrationResult', 'ALREADY_REGISTERED', 'AdaptiveEngineViewScratchPad', 'DEFINED_ENGINE_VIEW_SCRATCHPAD', 'DefinedEngineViewScratchPad', 'GRAPH_ENGINE_SCRATCHPAD', 'GraphEngineScratchPad', 'MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD', 'MultiscalePartitioningEngineViewScratchPad', 'SCRATCHPAD_BAD_CAST', 'SCRATCHPAD_NOT_FOUND', 'SCRATCHPAD_NOT_INITIALIZED', 'SCRATCHPAD_OUT_OF_BOUNDS', 'SCRATCHPAD_TYPE_COLLISION', 'SCRATCHPAD_UNKNOWN_ERROR', 'SUCCESS', 'ScratchPadType', 'StateBlob', 'StateBlobError']
class ADFunRegistrationResult:
    """
    Members:
    
      SUCCESS
    
      ALREADY_REGISTERED
    """
    ALREADY_REGISTERED: typing.ClassVar[ADFunRegistrationResult]  # value = <ADFunRegistrationResult.ALREADY_REGISTERED: 1>
    SUCCESS: typing.ClassVar[ADFunRegistrationResult]  # value = <ADFunRegistrationResult.SUCCESS: 0>
    __members__: typing.ClassVar[dict[str, ADFunRegistrationResult]]  # value = {'SUCCESS': <ADFunRegistrationResult.SUCCESS: 0>, 'ALREADY_REGISTERED': <ADFunRegistrationResult.ALREADY_REGISTERED: 1>}
    def __eq__(self, other: typing.Any) -> bool:
        ...
    def __getstate__(self) -> int:
        ...
    def __hash__(self) -> int:
        ...
    def __index__(self) -> int:
        ...
    def __init__(self, value: typing.SupportsInt) -> None:
        ...
    def __int__(self) -> int:
        ...
    def __ne__(self, other: typing.Any) -> bool:
        ...
    def __repr__(self) -> str:
        ...
    def __setstate__(self, state: typing.SupportsInt) -> None:
        ...
    def __str__(self) -> str:
        ...
    @property
    def name(self) -> str:
        ...
    @property
    def value(self) -> int:
        ...
class AdaptiveEngineViewScratchPad:
    ID: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.ADAPTIVE_ENGINE_VIEW_SCRATCHPAD: 2>
    def __init__(self) -> None:
        ...
    def __repr__(self) -> str:
        ...
    def clone(self) -> ...:
        ...
    def initialize(self, arg0: ...) -> None:
        ...
    def is_initialized(self) -> bool:
        ...
    @property
    def active_reactions(self) -> gridfire._gridfire.reaction.ReactionSet:
        ...
    @property
    def active_species(self) -> list[fourdst._phys.atomic.Species]:
        ...
    @property
    def has_initialized(self) -> bool:
        ...
class DefinedEngineViewScratchPad:
    ID: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.DEFINED_ENGINE_VIEW_SCRATCHPAD: 3>
    def __init__(self) -> None:
        ...
    def __repr__(self) -> str:
        ...
    def clone(self) -> ...:
        ...
    def is_initialized(self) -> bool:
        ...
    @property
    def active_reactions(self) -> gridfire._gridfire.reaction.ReactionSet:
        ...
    @property
    def active_species(self) -> set[fourdst._phys.atomic.Species]:
        ...
    @property
    def has_initialized(self) -> bool:
        ...
    @property
    def reaction_index_map(self) -> list[int]:
        ...
    @property
    def species_index_map(self) -> list[int]:
        ...
class GraphEngineScratchPad:
    ID: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.GRAPH_ENGINE_SCRATCHPAD: 0>
    def __init__(self) -> None:
        ...
    def __repr__(self) -> str:
        ...
    def clone(self) -> ...:
        ...
    def initialize(self, engine: ...) -> None:
        ...
    def is_initialized(self) -> bool:
        ...
    @property
    def has_initialized(self) -> bool:
        ...
    @property
    def local_abundance_cache(self) -> list[float]:
        ...
    @property
    def most_recent_rhs_calculation(self) -> ... | None:
        ...
    @property
    def stepDerivativesCache(self) -> dict[int, ...]:
        ...
class MultiscalePartitioningEngineViewScratchPad:
    ID: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD: 1>
    def __init__(self) -> None:
        ...
    def __repr__(self) -> str:
        ...
    def clone(self) -> ...:
        ...
    def initialize(self) -> None:
        ...
    def is_initialized(self) -> bool:
        ...
    @property
    def algebraic_species(self) -> list[fourdst._phys.atomic.Species]:
        ...
    @property
    def composition_cache(self) -> dict[int, fourdst._phys.composition.Composition]:
        ...
    @property
    def dynamic_species(self) -> list[fourdst._phys.atomic.Species]:
        ...
    @property
    def has_initialized(self) -> bool:
        ...
    @property
    def qse_groups(self) -> list[...]:
        ...
class ScratchPadType:
    """
    Members:
    
      GRAPH_ENGINE_SCRATCHPAD
    
      MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD
    
      ADAPTIVE_ENGINE_VIEW_SCRATCHPAD
    
      DEFINED_ENGINE_VIEW_SCRATCHPAD
    """
    ADAPTIVE_ENGINE_VIEW_SCRATCHPAD: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.ADAPTIVE_ENGINE_VIEW_SCRATCHPAD: 2>
    DEFINED_ENGINE_VIEW_SCRATCHPAD: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.DEFINED_ENGINE_VIEW_SCRATCHPAD: 3>
    GRAPH_ENGINE_SCRATCHPAD: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.GRAPH_ENGINE_SCRATCHPAD: 0>
    MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD: typing.ClassVar[ScratchPadType]  # value = <ScratchPadType.MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD: 1>
    __members__: typing.ClassVar[dict[str, ScratchPadType]]  # value = {'GRAPH_ENGINE_SCRATCHPAD': <ScratchPadType.GRAPH_ENGINE_SCRATCHPAD: 0>, 'MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD': <ScratchPadType.MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD: 1>, 'ADAPTIVE_ENGINE_VIEW_SCRATCHPAD': <ScratchPadType.ADAPTIVE_ENGINE_VIEW_SCRATCHPAD: 2>, 'DEFINED_ENGINE_VIEW_SCRATCHPAD': <ScratchPadType.DEFINED_ENGINE_VIEW_SCRATCHPAD: 3>}
    def __eq__(self, other: typing.Any) -> bool:
        ...
    def __getstate__(self) -> int:
        ...
    def __hash__(self) -> int:
        ...
    def __index__(self) -> int:
        ...
    def __init__(self, value: typing.SupportsInt) -> None:
        ...
    def __int__(self) -> int:
        ...
    def __ne__(self, other: typing.Any) -> bool:
        ...
    def __repr__(self) -> str:
        ...
    def __setstate__(self, state: typing.SupportsInt) -> None:
        ...
    def __str__(self) -> str:
        ...
    @property
    def name(self) -> str:
        ...
    @property
    def value(self) -> int:
        ...
class StateBlob:
    @staticmethod
    def error_to_string(arg0: StateBlobError) -> str:
        ...
    def __init__(self) -> None:
        ...
    def __repr__(self) -> str:
        ...
    def clone_structure(self) -> StateBlob:
        ...
    def enroll(self, arg0: ScratchPadType) -> None:
        ...
    def get(self, arg0: ScratchPadType) -> ...:
        ...
    def get_registered_scratchpads(self) -> set[ScratchPadType]:
        ...
    def get_status(self, arg0: ScratchPadType) -> ...:
        ...
    def get_status_map(self) -> dict[ScratchPadType, ...]:
        ...
class StateBlobError:
    """
    Members:
    
      SCRATCHPAD_OUT_OF_BOUNDS
    
      SCRATCHPAD_NOT_FOUND
    
      SCRATCHPAD_BAD_CAST
    
      SCRATCHPAD_NOT_INITIALIZED
    
      SCRATCHPAD_TYPE_COLLISION
    
      SCRATCHPAD_UNKNOWN_ERROR
    """
    SCRATCHPAD_BAD_CAST: typing.ClassVar[StateBlobError]  # value = <StateBlobError.SCRATCHPAD_BAD_CAST: 1>
    SCRATCHPAD_NOT_FOUND: typing.ClassVar[StateBlobError]  # value = <StateBlobError.SCRATCHPAD_NOT_FOUND: 0>
    SCRATCHPAD_NOT_INITIALIZED: typing.ClassVar[StateBlobError]  # value = <StateBlobError.SCRATCHPAD_NOT_INITIALIZED: 2>
    SCRATCHPAD_OUT_OF_BOUNDS: typing.ClassVar[StateBlobError]  # value = <StateBlobError.SCRATCHPAD_OUT_OF_BOUNDS: 4>
    SCRATCHPAD_TYPE_COLLISION: typing.ClassVar[StateBlobError]  # value = <StateBlobError.SCRATCHPAD_TYPE_COLLISION: 3>
    SCRATCHPAD_UNKNOWN_ERROR: typing.ClassVar[StateBlobError]  # value = <StateBlobError.SCRATCHPAD_UNKNOWN_ERROR: 5>
    __members__: typing.ClassVar[dict[str, StateBlobError]]  # value = {'SCRATCHPAD_OUT_OF_BOUNDS': <StateBlobError.SCRATCHPAD_OUT_OF_BOUNDS: 4>, 'SCRATCHPAD_NOT_FOUND': <StateBlobError.SCRATCHPAD_NOT_FOUND: 0>, 'SCRATCHPAD_BAD_CAST': <StateBlobError.SCRATCHPAD_BAD_CAST: 1>, 'SCRATCHPAD_NOT_INITIALIZED': <StateBlobError.SCRATCHPAD_NOT_INITIALIZED: 2>, 'SCRATCHPAD_TYPE_COLLISION': <StateBlobError.SCRATCHPAD_TYPE_COLLISION: 3>, 'SCRATCHPAD_UNKNOWN_ERROR': <StateBlobError.SCRATCHPAD_UNKNOWN_ERROR: 5>}
    def __eq__(self, other: typing.Any) -> bool:
        ...
    def __getstate__(self) -> int:
        ...
    def __hash__(self) -> int:
        ...
    def __index__(self) -> int:
        ...
    def __init__(self, value: typing.SupportsInt) -> None:
        ...
    def __int__(self) -> int:
        ...
    def __ne__(self, other: typing.Any) -> bool:
        ...
    def __repr__(self) -> str:
        ...
    def __setstate__(self, state: typing.SupportsInt) -> None:
        ...
    def __str__(self) -> str:
        ...
    @property
    def name(self) -> str:
        ...
    @property
    def value(self) -> int:
        ...
ADAPTIVE_ENGINE_VIEW_SCRATCHPAD: ScratchPadType  # value = <ScratchPadType.ADAPTIVE_ENGINE_VIEW_SCRATCHPAD: 2>
ALREADY_REGISTERED: ADFunRegistrationResult  # value = <ADFunRegistrationResult.ALREADY_REGISTERED: 1>
DEFINED_ENGINE_VIEW_SCRATCHPAD: ScratchPadType  # value = <ScratchPadType.DEFINED_ENGINE_VIEW_SCRATCHPAD: 3>
GRAPH_ENGINE_SCRATCHPAD: ScratchPadType  # value = <ScratchPadType.GRAPH_ENGINE_SCRATCHPAD: 0>
MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD: ScratchPadType  # value = <ScratchPadType.MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD: 1>
SCRATCHPAD_BAD_CAST: StateBlobError  # value = <StateBlobError.SCRATCHPAD_BAD_CAST: 1>
SCRATCHPAD_NOT_FOUND: StateBlobError  # value = <StateBlobError.SCRATCHPAD_NOT_FOUND: 0>
SCRATCHPAD_NOT_INITIALIZED: StateBlobError  # value = <StateBlobError.SCRATCHPAD_NOT_INITIALIZED: 2>
SCRATCHPAD_OUT_OF_BOUNDS: StateBlobError  # value = <StateBlobError.SCRATCHPAD_OUT_OF_BOUNDS: 4>
SCRATCHPAD_TYPE_COLLISION: StateBlobError  # value = <StateBlobError.SCRATCHPAD_TYPE_COLLISION: 3>
SCRATCHPAD_UNKNOWN_ERROR: StateBlobError  # value = <StateBlobError.SCRATCHPAD_UNKNOWN_ERROR: 5>
SUCCESS: ADFunRegistrationResult  # value = <ADFunRegistrationResult.SUCCESS: 0>
