adnbn
Version:
Addon Bone - Cross-browser web extension framework with shared code base
12 lines (9 loc) • 857 B
TypeScript
import { MessageDictionary, MessageProvider, MessageType, MessageData, MessageResponse, MessageTargetHandler, MessageMapHandler, MessageGeneralHandler, MessageBody } from '../../types/message.js';
declare abstract class AbstractMessage<T extends MessageDictionary, TOptions> implements MessageProvider<T, TOptions> {
abstract send<K extends MessageType<T>>(type: K, data: MessageData<T, K>, options?: TOptions): Promise<MessageResponse<T, K>>;
abstract watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;
abstract watch(map: MessageMapHandler<T>): () => void;
abstract watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;
protected buildMessage<K extends MessageType<T>>(type: K, data: MessageData<T, K>): MessageBody<T, K>;
}
export { AbstractMessage as default };