pub fn create_iface_manager(
    phy_manager: Arc<Mutex<dyn PhyManagerApi + Send>>,
    client_update_sender: ClientListenerMessageSender,
    ap_update_sender: ApListenerMessageSender,
    dev_monitor_proxy: DeviceMonitorProxy,
    saved_networks: Arc<dyn SavedNetworksManagerApi>,
    local_roam_manager: Arc<Mutex<dyn LocalRoamManagerApi>>,
    connection_selection_requester: ConnectionSelectionRequester,
    telemetry_sender: TelemetrySender,
    recovery_receiver: Receiver<RecoverySummary>
) -> (Arc<Mutex<IfaceManager>>, impl Future<Output = Result<Infallible, Error>>)