import { BaseEventHandler } from './BaseEventHandler';
import { InternalMessageData, StructuredCloneData } from './types';
import { Destination } from './destination';
declare type ListenFrom = Array<'context' | 'background'>;
export declare class ContentEventHandler<EventMap extends Record<string, StructuredCloneData>> extends BaseEventHandler<EventMap, InternalMessageData, [
    Destination | undefined
], undefined> {
    private listenFrom;
    constructor(listenFrom?: ListenFrom);
    emitBackground<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;
}
export {};
