import type { CreateSchemaOptions, CreateCredentialDefinitionOptions, CreateCredentialOfferOptions, CreateCredentialReturn, CreateCredentialOptions, CreateCredentialDefinitionReturn, CreateRevocationRegistryDefinitionOptions, CreateRevocationRegistryDefinitionReturn, CreateRevocationStatusListOptions, UpdateRevocationStatusListOptions, } from './AnonCredsIssuerServiceOptions' import type { AnonCredsCredentialOffer } from '../models/exchange' import type { AnonCredsRevocationStatusList, AnonCredsSchema } from '../models/registry' import type { AgentContext } from '@aries-framework/core' export const AnonCredsIssuerServiceSymbol = Symbol('AnonCredsIssuerService') export interface AnonCredsIssuerService { createSchema(agentContext: AgentContext, options: CreateSchemaOptions): Promise // This should store the private part of the credential definition as in the indy-sdk // we don't have access to the private part of the credential definition createCredentialDefinition( agentContext: AgentContext, options: CreateCredentialDefinitionOptions, metadata?: Record ): Promise createRevocationRegistryDefinition( agentContext: AgentContext, options: CreateRevocationRegistryDefinitionOptions ): Promise createRevocationStatusList( agentContext: AgentContext, options: CreateRevocationStatusListOptions ): Promise updateRevocationStatusList( agentContext: AgentContext, options: UpdateRevocationStatusListOptions ): Promise createCredentialOffer( agentContext: AgentContext, options: CreateCredentialOfferOptions ): Promise createCredential(agentContext: AgentContext, options: CreateCredentialOptions): Promise }