"""Public compatibility module.

Conceptually, this module preserves the historical loading API while routing
calls to the more focused loading submodules.

It exists as a separate unit so existing notebooks can keep their import paths
stable while the implementation remains split into clearer layers.

It connects the legacy loading surface to `loading_base`, `loading_nwb`, and
`loading_processed`.
"""

from __future__ import annotations

from .loading_base import (
    _entry_get_any,
    _entry_scalar_int,
    _infer_entry_n_trials,
    _infer_entry_n_units,
    _normalize_vector_length,
    make_picklable,
    sanitize_time_axis,
    to_2d_xyz_rows,
    to_numpy_compact_series,
)
from .loading_nwb import (
    extract_fiber_location_from_trials,
    get_nwb_trials_dataframe,
    load_nwb_behavior_timeseries_data,
    load_nwb_behavior_timeseries_timestamps,
    matlab_like_trial_columns,
)
from .loading_processed import (
    canonicalize_psth_entries_for_decoding,
    decode_area_list,
    infer_placeholder_id_order,
    load_canonical_movement_subspace_entries,
    load_canonical_psth_entries_and_area_list,
    load_canonical_spontlick_entries,
    load_decoding_cluster_inputs,
    load_psth_entries_and_area_list,
)

__all__ = [
    "_entry_get_any",
    "_entry_scalar_int",
    "_infer_entry_n_trials",
    "_infer_entry_n_units",
    "_normalize_vector_length",
    "canonicalize_psth_entries_for_decoding",
    "decode_area_list",
    "extract_fiber_location_from_trials",
    "get_nwb_trials_dataframe",
    "infer_placeholder_id_order",
    "load_canonical_movement_subspace_entries",
    "load_canonical_psth_entries_and_area_list",
    "load_canonical_spontlick_entries",
    "load_decoding_cluster_inputs",
    "load_nwb_behavior_timeseries_data",
    "load_nwb_behavior_timeseries_timestamps",
    "load_psth_entries_and_area_list",
    "make_picklable",
    "matlab_like_trial_columns",
    "sanitize_time_axis",
    "to_2d_xyz_rows",
    "to_numpy_compact_series",
]
