import type { AgentMessage } from './AgentMessage'; import type { Handler } from './Handler'; import type { InboundMessageContext } from './models/InboundMessageContext'; import { AgentConfig } from '../agent/AgentConfig'; import { EventEmitter } from './EventEmitter'; import { MessageSender } from './MessageSender'; declare class Dispatcher { private handlers; private messageSender; private eventEmitter; private logger; constructor(messageSender: MessageSender, eventEmitter: EventEmitter, agentConfig: AgentConfig); registerHandler(handler: Handler): void; dispatch(messageContext: InboundMessageContext): Promise; private getHandlerForType; getMessageClassForType(messageType: string): typeof AgentMessage | undefined; /** * Returns array of message types that dispatcher is able to handle. * Message type format is MTURI specified at https://github.com/hyperledger/aries-rfcs/blob/main/concepts/0003-protocols/README.md#mturi. */ get supportedMessageTypes(): import("../utils/messageType").ParsedMessageType[]; /** * Returns array of protocol IDs that dispatcher is able to handle. * Protocol ID format is PIURI specified at https://github.com/hyperledger/aries-rfcs/blob/main/concepts/0003-protocols/README.md#piuri. */ get supportedProtocols(): string[]; filterSupportedProtocolsByMessageFamilies(messageFamilies: string[]): string[]; } export { Dispatcher };