import type { AgentMessage } from '../../../agent/AgentMessage'; import type { InboundMessageContext } from '../../../agent/models/InboundMessageContext'; import type { ConnectionRecord } from '../../connections'; import type { Routing } from '../../connections/services/ConnectionService'; import type { KeylistUpdateResponseMessage, MediationDenyMessage, MediationGrantMessage, MessageDeliveryMessage } from '../messages'; import type { StatusMessage } from '../messages/StatusMessage'; import type { GetRoutingOptions } from './RoutingService'; import { AgentConfig } from '../../../agent/AgentConfig'; import { EventEmitter } from '../../../agent/EventEmitter'; import { MessageSender } from '../../../agent/MessageSender'; import { ConnectionService } from '../../connections/services/ConnectionService'; import { StatusRequestMessage, DeliveryRequestMessage, MessagesReceivedMessage, MediationRequestMessage } from '../messages'; import { KeylistUpdateMessage } from '../messages/KeylistUpdateMessage'; import { MediationRecord } from '../repository/MediationRecord'; import { MediationRepository } from '../repository/MediationRepository'; export declare class MediationRecipientService { private mediationRepository; private eventEmitter; private connectionService; private messageSender; private config; constructor(connectionService: ConnectionService, messageSender: MessageSender, config: AgentConfig, mediatorRepository: MediationRepository, eventEmitter: EventEmitter); createStatusRequest(mediationRecord: MediationRecord, config?: { recipientKey?: string; }): Promise; createRequest(connection: ConnectionRecord): Promise>; processMediationGrant(messageContext: InboundMessageContext): Promise; processKeylistUpdateResults(messageContext: InboundMessageContext): Promise; keylistUpdateAndAwait(mediationRecord: MediationRecord, verKey: string, timeoutMs?: number): Promise; createKeylistUpdateMessage(verkey: string): KeylistUpdateMessage; addMediationRouting(routing: Routing, { mediatorId, useDefaultMediator }?: GetRoutingOptions): Promise; processMediationDeny(messageContext: InboundMessageContext): Promise; processStatus(messageContext: InboundMessageContext): Promise; processDelivery(messageContext: InboundMessageContext): Promise; /** * Update the record to a new state and emit an state changed event. Also updates the record * in storage. * * @param MediationRecord The proof record to update the state for * @param newState The state to update to * */ private updateState; private emitStateChangedEvent; getById(id: string): Promise; findByConnectionId(connectionId: string): Promise; getMediators(): Promise; findDefaultMediator(): Promise; discoverMediation(mediatorId?: string): Promise; setDefaultMediator(mediator: MediationRecord): Promise; clearDefaultMediator(): Promise; } export interface MediationProtocolMsgReturnType { message: MessageType; mediationRecord: MediationRecord; }