"""Type stubs for the AETHER bindings (ADR-185 P1). Present only when the wheel is built with the ``[aether]`` extra. The top-level ``wifi_densepose`` package does not re-export these names, so ``mypy --strict`` sees them only via ``from wifi_densepose.aether import ...``. """ from __future__ import annotations class AetherConfig: def __init__( self, d_model: int = ..., d_proj: int = ..., temperature: float = ..., normalize: bool = ..., ) -> None: ... @property def d_model(self) -> int: ... @property def d_proj(self) -> int: ... @property def temperature(self) -> float: ... @property def normalize(self) -> bool: ... def __repr__(self) -> str: ... class CsiAugmenter: def __init__(self) -> None: ... def augment_pair( self, window: list[list[float]], seed: int ) -> tuple[list[list[float]], list[list[float]]]: ... def __repr__(self) -> str: ... class EmbeddingExtractor: def __init__( self, n_subcarriers: int, config: AetherConfig, n_keypoints: int = ..., n_heads: int = ..., n_gnn_layers: int = ..., ) -> None: ... def embed(self, csi_features: list[list[float]]) -> list[float]: ... @property def embedding_dim(self) -> int: ... def __repr__(self) -> str: ... def info_nce_loss( embeddings_a: list[list[float]], embeddings_b: list[list[float]], temperature: float = ..., ) -> float: ... def cosine_similarity(a: list[float], b: list[float]) -> float: ...