porter-source
Version:
Messaging Library for Web Extensions
30 lines (29 loc) • 1.25 kB
TypeScript
import { AgentOperations } from './AgentManager';
import { PorterEvent, Listener, Message, MessageConfig, AgentInfo, MessageTarget } from '../porter.model';
import { Logger } from '../porter.utils';
export declare class MessageHandler {
private agentOperations;
private logger;
private eventListeners;
private messageListeners;
private initializationHandler;
constructor(agentOperations: AgentOperations, logger: Logger);
post(message: Message<any>, target?: MessageTarget): Promise<void>;
private broadcastMessage;
private postToTab;
private postToLocation;
private postToContext;
private postToPort;
private postToId;
onMessage(config: MessageConfig): () => void;
on(config: MessageConfig): () => void;
handleIncomingMessage(message: any, info: AgentInfo): void;
private emitEvent;
private emitMessage;
addListener<T extends keyof PorterEvent>(event: T, listener: Listener<T>): () => void;
handleDisconnect(info: AgentInfo): void;
handleConnect(info: AgentInfo): void;
onConnect(listener: Listener<'onConnect'>): () => void;
onMessagesSet(listener: Listener<'onMessagesSet'>): () => void;
onDisconnect(listener: Listener<'onDisconnect'>): () => void;
}