# This file was generated by the "yardl" tool. DO NOT EDIT.

# pyright: reportUnusedImport=false
from typing import Tuple as _Tuple
import re as _re
import numpy as _np

_MIN_NUMPY_VERSION = (1, 22, 0)

def _parse_version(version: str) -> _Tuple[int, ...]:
    try:
        return tuple(map(int, version.split(".")))
    except ValueError:
        # ignore any prerelease suffix
        version = _re.sub(r"[^0-9.]", "", version)
        return tuple(map(int, version.split(".")))

if _parse_version(_np.__version__) < _MIN_NUMPY_VERSION:
    raise ImportError(f"Your installed numpy version is {_np.__version__}, but version >= {'.'.join(str(i) for i in _MIN_NUMPY_VERSION)} is required.")

from .yardl_types import *
from .types import (
    AliveTimeFractions,
    AnnulusShape,
    Atom,
    BedMovementTimeBlock,
    BinEdges,
    BoxShape,
    BoxSolidVolume,
    BulkMaterial,
    CoincidenceEvent,
    CoincidencePolicy,
    Coordinate,
    DeadTimeTimeBlock,
    DetectionBin,
    DetectionBinEfficiencies,
    DetectionEfficiencies,
    DetectorModule,
    Direction,
    DirectionMatrix,
    EventTimeBlock,
    ExamInformation,
    ExpandedDetectionBin,
    ExternalSignal,
    ExternalSignalTimeBlock,
    ExternalSignalTypeEnum,
    GantryMovementTimeBlock,
    GenericSolidVolume,
    GeometricShape,
    Header,
    Institution,
    ListOfCoincidenceEvents,
    ListOfQuadrupleEvents,
    ListOfSingleEvents,
    ListOfTripleEvents,
    ModuleCoincidenceAliveTimeFractions,
    ModulePairEfficiencies,
    ModulePairEfficienciesVector,
    ModulePairSGIDLUT,
    QuadrupleEvent,
    QuadrupleEventPolicy,
    ReplicatedBoxSolidVolume,
    ReplicatedDetectorModule,
    ReplicatedGenericSolidVolume,
    ReplicatedObject,
    RigidTransformation,
    SGID,
    ScannerGeometry,
    ScannerInformation,
    SingleEvent,
    SingleEventPolicy,
    SinglesAliveTimeFractions,
    SinglesHistogram,
    SinglesHistogramLevelType,
    SinglesHistogramTimeBlock,
    SolidVolume,
    Subject,
    TimeBlock,
    TimeFrameInformation,
    TimeInterval,
    TripleEvent,
    TripleEventPolicy,
    TypeOfModule,
    TypeOfModulePair,
    get_dtype,
)
from .protocols import (
    PETSIRDReaderBase,
    PETSIRDWriterBase,
)
from .binary import (
    BinaryPETSIRDReader,
    BinaryPETSIRDWriter,
)
from .ndjson import (
    NDJsonPETSIRDReader,
    NDJsonPETSIRDWriter,
)
