""" Bluetooth scanning package for INTERCEPT. Provides unified Bluetooth scanning with DBus/BlueZ and fallback backends, device aggregation, RSSI statistics, and observable heuristics. """ from .aggregator import DeviceAggregator from .capability_check import check_capabilities, quick_adapter_check from .constants import ( ADDRESS_TYPE_NRPA, # Address types ADDRESS_TYPE_PUBLIC, ADDRESS_TYPE_RANDOM, ADDRESS_TYPE_RANDOM_STATIC, ADDRESS_TYPE_RPA, PROTOCOL_AUTO, # Protocols PROTOCOL_BLE, PROTOCOL_CLASSIC, PROXIMITY_FAR, # Proximity bands (new) PROXIMITY_IMMEDIATE, PROXIMITY_NEAR, PROXIMITY_UNKNOWN, RANGE_CLOSE, RANGE_FAR, RANGE_NEARBY, RANGE_UNKNOWN, # Range bands (legacy) RANGE_VERY_CLOSE, ) from .device_key import extract_key_type, generate_device_key, is_randomized_mac from .distance import DistanceEstimator, ProximityBand, get_distance_estimator from .heuristics import HeuristicsEngine, evaluate_all_devices, evaluate_device_heuristics from .models import BTDeviceAggregate, BTObservation, ScanStatus, SystemCapabilities from .ring_buffer import RingBuffer, get_ring_buffer, reset_ring_buffer from .scanner import BluetoothScanner, get_bluetooth_scanner, reset_bluetooth_scanner from .tracker_signatures import ( DeviceFingerprint, TrackerConfidence, TrackerDetectionResult, TrackerSignatureEngine, TrackerType, detect_tracker, get_tracker_engine, ) __all__ = [ # Main scanner 'BluetoothScanner', 'get_bluetooth_scanner', 'reset_bluetooth_scanner', # Models 'BTObservation', 'BTDeviceAggregate', 'ScanStatus', 'SystemCapabilities', # Aggregator 'DeviceAggregator', # Device key generation 'generate_device_key', 'is_randomized_mac', 'extract_key_type', # Distance estimation 'DistanceEstimator', 'ProximityBand', 'get_distance_estimator', # Ring buffer 'RingBuffer', 'get_ring_buffer', 'reset_ring_buffer', # Heuristics 'HeuristicsEngine', 'evaluate_device_heuristics', 'evaluate_all_devices', # Capability checks 'check_capabilities', 'quick_adapter_check', # Constants - Range bands (legacy) 'RANGE_VERY_CLOSE', 'RANGE_CLOSE', 'RANGE_NEARBY', 'RANGE_FAR', 'RANGE_UNKNOWN', # Constants - Proximity bands (new) 'PROXIMITY_IMMEDIATE', 'PROXIMITY_NEAR', 'PROXIMITY_FAR', 'PROXIMITY_UNKNOWN', # Constants - Protocols 'PROTOCOL_BLE', 'PROTOCOL_CLASSIC', 'PROTOCOL_AUTO', # Constants - Address types 'ADDRESS_TYPE_PUBLIC', 'ADDRESS_TYPE_RANDOM', 'ADDRESS_TYPE_RANDOM_STATIC', 'ADDRESS_TYPE_RPA', 'ADDRESS_TYPE_NRPA', # Tracker detection 'TrackerSignatureEngine', 'TrackerDetectionResult', 'TrackerType', 'TrackerConfidence', 'DeviceFingerprint', 'detect_tracker', 'get_tracker_engine', ]