import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution'
import { IOID4VCIIssuer } from '@sphereon/ssi-sdk.oid4vci-issuer'
import { IOID4VCIStore } from '@sphereon/ssi-sdk.oid4vci-issuer-store'
import { IAgentContext, ICredentialIssuer, ICredentialVerifier, IDIDManager, IKeyManager, IResolver } from '@veramo/core'
import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service'
import { IVcdmCredentialPlugin } from '@sphereon/ssi-sdk.credential-vcdm'
import { ICredentialStore } from '@sphereon/ssi-sdk.credential-store'

export type IRequiredContext = IAgentContext<IPlugins>

export type IPlugins = IDIDManager &
  IKeyManager &
  IResolver &
  IIdentifierResolution &
  IOID4VCIStore &
  IOID4VCIIssuer &
  ICredentialVerifier &
  ICredentialIssuer &
  IJwtService &
  IVcdmCredentialPlugin &
  ICredentialStore
