///
import { EventEmitter } from 'events';
import { IncomingMessage, OutgoingResponse } from '../message/types';
export interface ChannelSubscriberData {
message: IncomingMessage;
responseContext: ChannelResponseContext;
}
export declare type ChannelResponseContext = Record & {
senderId: string;
sent?: boolean;
};
declare class Channel extends EventEmitter {
static MESSAGE_EVENT: string;
static RESPONSE_EVENT: string;
private pendingResponseMap;
private pendingResponseTimeoutMap;
protected sendResponseNow(responses: OutgoingResponse[], responseContext: ChannelResponseContext): void;
private sendAndClearPendingResponse;
sendResponse(response: OutgoingResponse, responseContext: ChannelResponseContext): void;
}
export default Channel;