import { Runtime } from 'webextension-polyfill';
import { BrowserLocation, Message, MessageConfig } from '../porter.model';
import { Logger } from '../porter.utils';
export declare class AgentMessageHandler {
    private readonly logger;
    private readonly MAX_QUEUE_SIZE;
    private readonly MESSAGE_TIMEOUT;
    private messageQueue;
    private handlers;
    constructor(logger: Logger);
    handleMessage(port: Runtime.Port, message: any): void;
    onMessage(config: MessageConfig): void;
    on(config: MessageConfig): void;
    private processQueuedMessages;
    private processMessage;
    post(port: Runtime.Port, message: Message<any>, target?: BrowserLocation): void;
}
