import type { InboundMessageContext } from '../../agent/models/InboundMessageContext'; import type { OutOfBandRecord } from '../oob/repository'; import type { ConnectionRecord } from './repository'; import type { Routing } from './services/ConnectionService'; import { AgentConfig } from '../../agent/AgentConfig'; import { JwsService } from '../../crypto/JwsService'; import { DidRepository } from '../dids/repository'; import { DidExchangeCompleteMessage } from './messages/DidExchangeCompleteMessage'; import { DidExchangeRequestMessage } from './messages/DidExchangeRequestMessage'; import { DidExchangeResponseMessage } from './messages/DidExchangeResponseMessage'; import { ConnectionService } from './services'; interface DidExchangeRequestParams { label?: string; alias?: string; goal?: string; goalCode?: string; routing: Routing; autoAcceptConnection?: boolean; } export declare class DidExchangeProtocol { private config; private connectionService; private jwsService; private didRepository; private logger; constructor(config: AgentConfig, connectionService: ConnectionService, didRepository: DidRepository, jwsService: JwsService); createRequest(outOfBandRecord: OutOfBandRecord, params: DidExchangeRequestParams): Promise<{ message: DidExchangeRequestMessage; connectionRecord: ConnectionRecord; }>; processRequest(messageContext: InboundMessageContext, outOfBandRecord: OutOfBandRecord): Promise; createResponse(connectionRecord: ConnectionRecord, outOfBandRecord: OutOfBandRecord, routing?: Routing): Promise; processResponse(messageContext: InboundMessageContext, outOfBandRecord: OutOfBandRecord): Promise; createComplete(connectionRecord: ConnectionRecord, outOfBandRecord: OutOfBandRecord): Promise; processComplete(messageContext: InboundMessageContext, outOfBandRecord: OutOfBandRecord): Promise; private updateState; private createPeerDidDoc; private createSignedAttachment; /** * Extracts DID document as is from request or response message attachment and verifies its signature. * * @param message DID request or DID response message * @param invitationKeys array containing keys from connection invitation that could be used for signing of DID document * @returns verified DID document content from message attachment */ private extractDidDocument; private routingToServices; } export {};