import type { CredentialFormatPayload } from './formats'; import type { AutoAcceptCredential } from './models'; import type { CredentialProtocol } from './protocol/CredentialProtocol'; import type { CredentialFormatsFromProtocols, DeleteCredentialOptions, GetCredentialFormatDataReturn } from './protocol/CredentialProtocolOptions'; export type { GetCredentialFormatDataReturn, DeleteCredentialOptions }; export type FindCredentialProposalMessageReturn = ReturnType; export type FindCredentialOfferMessageReturn = ReturnType; export type FindCredentialRequestMessageReturn = ReturnType; export type FindCredentialMessageReturn = ReturnType; /** * Get the supported protocol versions based on the provided credential protocols. */ export type CredentialProtocolVersionType = CPs[number]['version']; interface BaseOptions { autoAcceptCredential?: AutoAcceptCredential; comment?: string; } /** * Interface for CredentialsApi.proposeCredential. Will send a proposal. */ export interface ProposeCredentialOptions extends BaseOptions { connectionId: string; protocolVersion: CredentialProtocolVersionType; credentialFormats: CredentialFormatPayload, 'createProposal'>; } /** * Interface for CredentialsApi.acceptProposal. Will send an offer * * credentialFormats is optional because this is an accept method */ export interface AcceptCredentialProposalOptions extends BaseOptions { credentialRecordId: string; credentialFormats?: CredentialFormatPayload, 'acceptProposal'>; } /** * Interface for CredentialsApi.negotiateProposal. Will send an offer */ export interface NegotiateCredentialProposalOptions extends BaseOptions { credentialRecordId: string; credentialFormats: CredentialFormatPayload, 'createOffer'>; } /** * Interface for CredentialsApi.createOffer. Will create an out of band offer */ export interface CreateCredentialOfferOptions extends BaseOptions { protocolVersion: CredentialProtocolVersionType; credentialFormats: CredentialFormatPayload, 'createOffer'>; } /** * Interface for CredentialsApi.offerCredential. Extends CreateCredentialOfferOptions, will send an offer */ export interface OfferCredentialOptions extends BaseOptions, CreateCredentialOfferOptions { connectionId: string; } /** * Interface for CredentialsApi.acceptOffer. Will send a request * * credentialFormats is optional because this is an accept method */ export interface AcceptCredentialOfferOptions extends BaseOptions { credentialRecordId: string; credentialFormats?: CredentialFormatPayload, 'acceptOffer'>; } /** * Interface for CredentialsApi.negotiateOffer. Will send a proposal. */ export interface NegotiateCredentialOfferOptions extends BaseOptions { credentialRecordId: string; credentialFormats: CredentialFormatPayload, 'createProposal'>; } /** * Interface for CredentialsApi.acceptRequest. Will send a credential * * credentialFormats is optional because this is an accept method */ export interface AcceptCredentialRequestOptions extends BaseOptions { credentialRecordId: string; credentialFormats?: CredentialFormatPayload, 'acceptRequest'>; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } /** * Interface for CredentialsApi.acceptCredential. Will send an ack message */ export interface AcceptCredentialOptions { credentialRecordId: string; } /** * Interface for CredentialsApi.sendProblemReport. Will send a problem-report message */ export interface SendCredentialProblemReportOptions { credentialRecordId: string; description: string; }