import type { CreateCredentialRequestOptions, CreateCredentialRequestReturn, CreateProofOptions, GetCredentialOptions, StoreCredentialOptions, GetCredentialsForProofRequestOptions, GetCredentialsForProofRequestReturn, CreateLinkSecretReturn, CreateLinkSecretOptions, GetCredentialsOptions, } from './AnonCredsHolderServiceOptions' import type { AnonCredsCredentialInfo } from '../models' import type { AnonCredsProof } from '../models/exchange' import type { AgentContext } from '@aries-framework/core' export const AnonCredsHolderServiceSymbol = Symbol('AnonCredsHolderService') export interface AnonCredsHolderService { createLinkSecret(agentContext: AgentContext, options: CreateLinkSecretOptions): Promise createProof(agentContext: AgentContext, options: CreateProofOptions): Promise storeCredential( agentContext: AgentContext, options: StoreCredentialOptions, metadata?: Record ): Promise // TODO: this doesn't actually return the credential, as the indy-sdk doesn't support that // We could come up with a hack (as we've received the credential at one point), but for // now I think it's not that much of an issue getCredential(agentContext: AgentContext, options: GetCredentialOptions): Promise getCredentials(agentContext: AgentContext, options: GetCredentialsOptions): Promise createCredentialRequest( agentContext: AgentContext, options: CreateCredentialRequestOptions ): Promise deleteCredential(agentContext: AgentContext, credentialId: string): Promise getCredentialsForProofRequest( agentContext: AgentContext, options: GetCredentialsForProofRequestOptions ): Promise }