#ifndef CHROME_BROWSER_EXTENSIONS_API_TABS_WINDOWS_EVENT_ROUTER_H_
#define CHROME_BROWSER_EXTENSIONS_API_TABS_WINDOWS_EVENT_ROUTER_H_
#include <map>
#include <memory>
#include <string>
#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.h"
#include "base/values.h"
#include "build/build_config.h"
#include "chrome/browser/extensions/window_controller_list.h"
#include "chrome/browser/extensions/window_controller_list_observer.h"
#include "extensions/browser/app_window/app_window_registry.h"
#include "extensions/browser/extension_event_histogram_value.h"
#if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC)
#include "ui/views/focus/widget_focus_manager.h"
#endif
#if BUILDFLAG(IS_MAC)
#include "chrome/browser/mac/key_window_notifier.h"
#endif
class Profile;
namespace extensions {
class AppWindow;
class AppWindowController;
class WindowsEventRouter : public AppWindowRegistry::Observer,
#if BUILDFLAG(IS_MAC)
public KeyWindowNotifier::Observer,
#elif defined(TOOLKIT_VIEWS)
public views::WidgetFocusChangeListener,
#endif
public WindowControllerListObserver { … };
}
#endif