///
///
import { EventEmitter } from 'events';
import { ContextMenuType } from './api/common';
import { ChromeExtensionImpl } from './impl';
import { ExtensionEvent } from './router';
export declare class ExtensionStore extends EventEmitter {
impl: ChromeExtensionImpl;
/** Tabs observed by the extensions system. */
tabs: Set;
/** Windows observed by the extensions system. */
windows: Set;
lastFocusedWindowId?: number;
/**
* Map of tabs to their parent window.
*
* It's not possible to access the parent of a BrowserView so we must manage
* this ourselves.
*/
tabToWindow: WeakMap;
/** Map of windows to their active tab. */
private windowToActiveTab;
tabDetailsCache: Map>;
windowDetailsCache: Map>;
constructor(impl: ChromeExtensionImpl);
getWindowById(windowId: number): Electron.BrowserWindow;
getLastFocusedWindow(): Electron.BrowserWindow;
getCurrentWindow(): Electron.BrowserWindow;
addWindow(window: Electron.BrowserWindow): void;
createWindow(event: ExtensionEvent, details: chrome.windows.CreateData): Promise;
removeWindow(window: Electron.BrowserWindow): Promise;
getTabById(tabId: number): Electron.WebContents;
addTab(tab: Electron.WebContents, window: Electron.BrowserWindow): void;
removeTab(tab: Electron.WebContents): void;
createTab(details: chrome.tabs.CreateProperties): Promise;
getActiveTabFromWindow(win: Electron.BrowserWindow): Electron.WebContents;
getActiveTabFromWebContents(wc: Electron.WebContents): Electron.WebContents | undefined;
getActiveTabOfCurrentWindow(): Electron.WebContents;
setActiveTab(tab: Electron.WebContents): void;
buildMenuItems(extensionId: string, menuType: ContextMenuType): Electron.MenuItem[];
}