///
///
import { Tab } from '../interfaces/tabs';
import { EventEmitter } from 'events';
export declare const getParentWindowOfTab: (tab: Tab) => any;
interface ITabsEvents {
onCreateDetails: (tab: Tab, details: chrome.tabs.Tab) => void;
onCreate: (details: chrome.tabs.CreateProperties) => Promise;
}
export declare interface TabsAPI {
on(event: 'updated', listener: (tabId: number, changeInfo: chrome.tabs.TabChangeInfo, details: chrome.tabs.Tab) => void): this;
on(event: 'activated', listener: (tabId: number, windowId: number, ...additionalArgs: any[]) => void): this;
on(event: 'will-remove', listener: (tabId: number) => void): this;
on(event: string, listener: Function): this;
}
export declare class TabsAPI extends EventEmitter implements ITabsEvents {
private tabs;
private detailsCache;
constructor();
onCreateDetails: (tab: Tab, details: chrome.tabs.Tab) => void;
onCreate: (details: chrome.tabs.CreateProperties) => Promise;
update(tabId: number, updateProperties: chrome.tabs.UpdateProperties): Promise;
activate(tabId: number, ...additionalArgs: any[]): void;
get(tabId: number): chrome.tabs.Tab;
remove(tabIds: number | number[]): void;
getAllInWindow(windowId: number): chrome.tabs.Tab[];
getSelected(windowId: number): chrome.tabs.Tab[];
query(info?: chrome.tabs.QueryInfo): chrome.tabs.Tab[];
create(details: chrome.tabs.CreateProperties): Promise;
observe(tab: Tab): void;
reload(tabId: number, reloadProperties?: chrome.tabs.ReloadProperties): void;
getTabById(id: number): Tab;
getDetails: (tab: Tab) => chrome.tabs.Tab;
private getCurrent;
private insertCSS;
private createDetails;
private onUpdated;
private onRemoved;
private onCreated;
}
export {};