"""Models used by synchronized multi-device LibreVNA acquisition."""

from __future__ import annotations

from dataclasses import dataclass

import numpy as np


@dataclass(frozen=True, slots=True)
class SweepConfiguration:
    """User-facing configuration for one VNA sweep."""

    start_hz: int
    stop_hz: int
    points: int
    if_bandwidth: int
    power_dbm: float
    dwell_us: int = 0


@dataclass(slots=True)
class SweepMeasurementResult:
    """Measured synchronized sweep for one active master output port."""

    frequencies_hz: np.ndarray
    s_parameters: dict[str, np.ndarray]
