import type { CredentialFormat } from './CredentialFormat' import type { CredentialFormatCreateProposalOptions, CredentialFormatCreateProposalReturn, CredentialFormatProcessOptions, CredentialFormatCreateOfferOptions, CredentialFormatCreateOfferReturn, CredentialFormatCreateRequestOptions, CredentialFormatCreateReturn, CredentialFormatAcceptRequestOptions, CredentialFormatAcceptOfferOptions, CredentialFormatAcceptProposalOptions, CredentialFormatAutoRespondCredentialOptions, CredentialFormatAutoRespondOfferOptions, CredentialFormatAutoRespondProposalOptions, CredentialFormatAutoRespondRequestOptions, CredentialFormatProcessCredentialOptions, } from './CredentialFormatServiceOptions' import type { AgentContext } from '../../../agent' export interface CredentialFormatService { formatKey: CF['formatKey'] credentialRecordType: CF['credentialRecordType'] // proposal methods createProposal( agentContext: AgentContext, options: CredentialFormatCreateProposalOptions ): Promise processProposal(agentContext: AgentContext, options: CredentialFormatProcessOptions): Promise acceptProposal( agentContext: AgentContext, options: CredentialFormatAcceptProposalOptions ): Promise // offer methods createOffer( agentContext: AgentContext, options: CredentialFormatCreateOfferOptions ): Promise processOffer(agentContext: AgentContext, options: CredentialFormatProcessOptions): Promise acceptOffer( agentContext: AgentContext, options: CredentialFormatAcceptOfferOptions ): Promise // request methods createRequest( agentContext: AgentContext, options: CredentialFormatCreateRequestOptions ): Promise processRequest(agentContext: AgentContext, options: CredentialFormatProcessOptions): Promise acceptRequest( agentContext: AgentContext, options: CredentialFormatAcceptRequestOptions ): Promise // credential methods processCredential(agentContext: AgentContext, options: CredentialFormatProcessCredentialOptions): Promise // auto accept methods shouldAutoRespondToProposal( agentContext: AgentContext, options: CredentialFormatAutoRespondProposalOptions ): Promise shouldAutoRespondToOffer( agentContext: AgentContext, options: CredentialFormatAutoRespondOfferOptions ): Promise shouldAutoRespondToRequest( agentContext: AgentContext, options: CredentialFormatAutoRespondRequestOptions ): Promise shouldAutoRespondToCredential( agentContext: AgentContext, options: CredentialFormatAutoRespondCredentialOptions ): Promise deleteCredentialById(agentContext: AgentContext, credentialId: string): Promise supportsFormat(formatIdentifier: string): boolean }