"""Public exports for :mod:`spicelab.io` used by docs tooling.

Keep explicit exports to avoid star-imports which trigger linter errors.
"""

from .asc_converter import (
    KNOWN_UNSUPPORTED,
    SYMBOL_MAP,
    ConversionResult,
    ConversionWarning,
    asc_to_circuit,
    get_analyses_from_asc,
    load_circuit_from_asc,
    parse_ac_args,
    parse_analysis_command,
    parse_dc_args,
    parse_eng_number,
    parse_tran_args,
    print_conversion_result,
    run_asc_simulation,
)
from .asc_parser import (
    AnalysisCommand,
    Arc,
    AscParser,
    AscParseResult,
    BusTap,
    Circle,
    Flag,
    Line,
    Measurement,
    Parameter,
    Point,
    Rectangle,
    SymbolComponent,
    TextElement,
    Window,
    Wire,
    parse_asc_file,
    parse_asc_string,
    print_asc_summary,
)
from .raw_reader import (
    Trace,
    TraceSet,
    parse_ngspice_ascii_raw,
    parse_ngspice_ascii_raw_multi,
    parse_ngspice_raw,
)
from .raw_streaming import (
    RAWHeader,
    StreamingRAWReader,
    VariableInfo,
    get_raw_info,
    open_raw_streaming,
    stream_raw_to_hdf5,
)
from .readers import (
    dataset_to_long_polars,
    list_signals,
    load_dataset,
    load_saved_dataset,
    read,
    read_ltspice,
    read_ltspice_raw,
    read_ngspice_log,
    read_ngspice_raw,
    read_ngspice_raw_multi,
    read_waveform,
    read_xyce_csv,
    read_xyce_prn,
    read_xyce_table,
    save_dataset,
    to_pandas,
    to_polars,
)

__all__ = [
    # ASC Parser
    "AscParser",
    "AscParseResult",
    "parse_asc_file",
    "parse_asc_string",
    "print_asc_summary",
    "Point",
    "Wire",
    "Flag",
    "Window",
    "SymbolComponent",
    "TextElement",
    "Line",
    "Rectangle",
    "Circle",
    "Arc",
    "BusTap",
    "Parameter",
    "Measurement",
    "AnalysisCommand",
    # ASC Converter
    "ConversionResult",
    "ConversionWarning",
    "asc_to_circuit",
    "load_circuit_from_asc",
    "print_conversion_result",
    "SYMBOL_MAP",
    "KNOWN_UNSUPPORTED",
    # Analysis parsing
    "parse_eng_number",
    "parse_tran_args",
    "parse_ac_args",
    "parse_dc_args",
    "parse_analysis_command",
    "get_analyses_from_asc",
    # High-level simulation
    "run_asc_simulation",
    # Raw reader
    "Trace",
    "TraceSet",
    "parse_ngspice_raw",
    "parse_ngspice_ascii_raw",
    "parse_ngspice_ascii_raw_multi",
    # Streaming RAW reader
    "StreamingRAWReader",
    "RAWHeader",
    "VariableInfo",
    "open_raw_streaming",
    "stream_raw_to_hdf5",
    "get_raw_info",
    # Readers
    "read_ltspice_raw",
    "read",
    "read_ltspice",
    "read_xyce_table",
    "read_waveform",
    "read_ngspice_raw",
    "read_ngspice_raw_multi",
    "read_ngspice_log",
    "read_xyce_prn",
    "read_xyce_csv",
    "to_polars",
    "to_pandas",
    "load_dataset",
    "list_signals",
    "dataset_to_long_polars",
    "save_dataset",
    "load_saved_dataset",
]
