import type { AgentMessage } from '../../agent/AgentMessage'; import type { ConnectionRecord } from '../connections/repository/ConnectionRecord'; import type { CredentialFormat, CredentialFormatPayload } from './formats'; import type { CredentialPreviewAttributeOptions } from './models'; import type { AutoAcceptCredential } from './models/CredentialAutoAcceptType'; import type { CredentialExchangeRecord } from './repository/CredentialExchangeRecord'; /** * Get the format data payload for a specific message from a list of CredentialFormat interfaces and a message * * For an indy offer, this resolves to the cred abstract format as defined here: * https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0592-indy-attachments#cred-abstract-format * * @example * ``` * * type OfferFormatData = FormatDataMessagePayload<[IndyCredentialFormat, JsonLdCredentialFormat], 'offer'> * * // equal to * type OfferFormatData = { * indy: { * // ... payload for indy offer attachment as defined in RFC 0592 ... * }, * jsonld: { * // ... payload for jsonld offer attachment as defined in RFC 0593 ... * } * } * ``` */ export declare type FormatDataMessagePayload = { [CredentialFormat in CFs[number] as CredentialFormat['formatKey']]?: CredentialFormat['formatData'][M]; }; /** * Get format data return value. Each key holds a mapping of credential format key to format data. * * @example * ``` * { * proposal: { * indy: { * cred_def_id: string * } * } * } * ``` */ export declare type GetFormatDataReturn = { proposalAttributes?: CredentialPreviewAttributeOptions[]; proposal?: FormatDataMessagePayload; offer?: FormatDataMessagePayload; offerAttributes?: CredentialPreviewAttributeOptions[]; request?: FormatDataMessagePayload; credential?: FormatDataMessagePayload; }; export interface CreateProposalOptions { connection: ConnectionRecord; credentialFormats: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface AcceptProposalOptions { credentialRecord: CredentialExchangeRecord; credentialFormats?: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface NegotiateProposalOptions { credentialRecord: CredentialExchangeRecord; credentialFormats: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface CreateOfferOptions { connection?: ConnectionRecord; credentialFormats: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface AcceptOfferOptions { credentialRecord: CredentialExchangeRecord; credentialFormats?: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface NegotiateOfferOptions { credentialRecord: CredentialExchangeRecord; credentialFormats: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface CreateRequestOptions { connection: ConnectionRecord; credentialFormats: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface AcceptRequestOptions { credentialRecord: CredentialExchangeRecord; credentialFormats?: CredentialFormatPayload; autoAcceptCredential?: AutoAcceptCredential; comment?: string; } export interface AcceptCredentialOptions { credentialRecord: CredentialExchangeRecord; } export interface CreateProblemReportOptions { message: string; } export interface CredentialProtocolMsgReturnType { message: MessageType; credentialRecord: CredentialExchangeRecord; } export interface DeleteCredentialOptions { deleteAssociatedCredentials: boolean; deleteAssociatedDidCommMessages: boolean; }