from typing import Iterator

import numpy as np
import numpy.typing as npt

from . import file, ingest, raytracing
from .protocols import CSIProducer, MergedCSI


class NoopCSIProducer:
    """A no-op CSI producer that does nothing"""

    is_live = False

    def __call__(self) -> Iterator[MergedCSI]:
        return iter([])

    def stop(self) -> None:
        pass


CSIMatrix = npt.NDArray[np.complex64]

__all__ = ["file", "ingest", "raytracing", "NoopCSIProducer", "CSIProducer"]
