beaverjs
Version:
An abstraction around WebExtension messaging
22 lines (21 loc) • 1.13 kB
TypeScript
/// <reference types="firefox-webext-browser" />
import { InternalMessageData, StructuredCloneData } from './types';
import { BaseEventHandler } from './BaseEventHandler';
import { Destination } from './destination';
import _QueryQueryInfo = browser.tabs._QueryQueryInfo;
import MessageSender = browser.runtime.MessageSender;
export declare class BackgroundEventHandler<EventMap extends Record<string, StructuredCloneData>> extends BaseEventHandler<EventMap, InternalMessageData, [
Destination | undefined
], MessageSender> {
private query;
constructor(query?: _QueryQueryInfo);
emitContent<K extends keyof EventMap>(key: K, data: EventMap[K]): void;
emitContext<K extends keyof EventMap>(key: K, data: EventMap[K]): void;
protected sendEvent(serialized: InternalMessageData, destination?: Destination): void;
protected serialize<K extends keyof EventMap>(type: K, data: EventMap[K]): InternalMessageData;
protected deserialize<K extends keyof EventMap>(serialized: InternalMessageData): {
type: K;
data: EventMap[K];
};
protected setup(): void;
}