"""SOFIA v1 — StripNet + DCNv4 hierarchical CNN backbone for CVGL.

Lightweight 4-stage backbone (~5–30M params depending on variant). Outputs
features at 4 scales (last stage is 8x8 for 256x256 input).

Variants (in `stripnet_model_dcn.VARIANT_MAP`):
- `tiny_tiny`: dims [16, 32, 80, 128]
- `tiny`     : dims [32, 64, 128, 256]
- `small`    : dims [64, 128, 320, 512]   (default)
- `small_v2` : dims [64, 128, 256, 384]

Use `SOFIAv1FusionEncoder` from `src.models.sofia_v1_fusion_encoder` for
end-to-end CVGL training with DGTRS-CLIP captions and altitude.
"""

from .config import SOFIAv1Config
from .heads import SatHeadV1, UAVHeadV1
from .model import SOFIAv1
from .stripnet_model_dcn import (
    StripNetDCN,
    VARIANT_MAP,
    build_stripnet_dcn,
    get_stripnet_dcn_small,
    get_stripnet_dcn_small_v2,
    get_stripnet_dcn_tiny,
    get_stripnet_dcn_tiny_tiny,
)

__all__ = [
    "SOFIAv1",
    "SOFIAv1Config",
    "SatHeadV1",
    "UAVHeadV1",
    "StripNetDCN",
    "build_stripnet_dcn",
    "get_stripnet_dcn_small",
    "get_stripnet_dcn_small_v2",
    "get_stripnet_dcn_tiny",
    "get_stripnet_dcn_tiny_tiny",
    "VARIANT_MAP",
]
