from .match import ADDRESS as ADDRESS, BluetoothCallbackMatcher as BluetoothCallbackMatcher, BluetoothCallbackMatcherIndex as BluetoothCallbackMatcherIndex, BluetoothCallbackMatcherWithCallback as BluetoothCallbackMatcherWithCallback, CALLBACK as CALLBACK, CONNECTABLE as CONNECTABLE, IntegrationMatcher as IntegrationMatcher, ble_device_matches as ble_device_matches
from .models import BluetoothCallback as BluetoothCallback, BluetoothChange as BluetoothChange, BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
from .storage import BluetoothStorage as BluetoothStorage
from .util import async_load_history_from_system as async_load_history_from_system
from _typeshed import Incomplete
from bleak_retry_connector import BleakSlotManager as BleakSlotManager
from bluetooth_adapters import BluetoothAdapters as BluetoothAdapters
from collections.abc import Callable as Callable
from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothManager
from homeassistant import config_entries as config_entries
from homeassistant.const import EVENT_LOGGING_CHANGED as EVENT_LOGGING_CHANGED
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant
from homeassistant.helpers import discovery_flow as discovery_flow

_LOGGER: Incomplete

class HomeAssistantBluetoothManager(BluetoothManager):
    __slots__: Incomplete
    hass: Incomplete
    storage: Incomplete
    _integration_matcher: Incomplete
    _callback_index: Incomplete
    _cancel_logging_listener: Incomplete
    def __init__(self, hass: HomeAssistant, integration_matcher: IntegrationMatcher, bluetooth_adapters: BluetoothAdapters, storage: BluetoothStorage, slot_manager: BleakSlotManager) -> None: ...
    _debug: Incomplete
    def _async_logging_changed(self, event: Event | None = None) -> None: ...
    def _async_trigger_matching_discovery(self, service_info: BluetoothServiceInfoBleak) -> None: ...
    def async_rediscover_address(self, address: str) -> None: ...
    def _discover_service_info(self, service_info: BluetoothServiceInfoBleak) -> None: ...
    def _address_disappeared(self, address: str) -> None: ...
    async def async_setup(self) -> None: ...
    def async_register_callback(self, callback: BluetoothCallback, matcher: BluetoothCallbackMatcher | None) -> Callable[[], None]: ...
    def async_stop(self) -> None: ...
    def _async_save_scanner_histories(self) -> None: ...
    def _async_save_scanner_history(self, scanner: BaseHaScanner) -> None: ...
    def _async_unregister_scanner(self, scanner: BaseHaScanner, unregister: CALLBACK_TYPE) -> None: ...
    def async_register_scanner(self, scanner: BaseHaScanner, connection_slots: int | None = None) -> CALLBACK_TYPE: ...
