@sphereon/ssi-sdk.presentation-exchange
Version:
55 lines • 2.88 kB
TypeScript
import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
import { IAgentContext, ICredentialPlugin, IDataStoreORM, IDIDManager, IIdentifier, IPluginMethodMap, IResolver, PresentationPayload } from '@veramo/core';
import { IPresentation, Optional, SdJwtDecodedVerifiableCredential, W3CVerifiableCredential, W3CVerifiablePresentation } from '@sphereon/ssi-types';
import { IPresentationDefinition, PEVersion, SelectResults } from '@sphereon/pex';
import { Format, InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models';
import { CredentialRole, FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store';
import { ISDJwtPlugin } from '@sphereon/ssi-sdk.sd-jwt';
export interface IPresentationExchange extends IPluginMethodMap {
pexValidateDefinition(args: IDefinitionValidateArgs): Promise<boolean>;
pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>;
pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>;
pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>;
}
export interface IDefinitionValidateArgs {
definition: IPresentationDefinition;
}
export interface IDefinitionCredentialFilterArgs {
presentationDefinition: IPresentationDefinition;
credentialFilterOpts: {
credentialRole: CredentialRole;
verifiableCredentials?: W3CVerifiableCredential[];
filter?: FindDigitalCredentialArgs;
};
holderDIDs?: (string | IIdentifier)[];
limitDisclosureSignatureSuites?: string[];
restrictToFormats?: Format;
restrictToDIDMethods?: string[];
}
export interface PEXOpts {
defaultStore?: string;
defaultNamespace?: string;
}
export interface IPEXOptions {
definition?: IPresentationDefinition;
definitionId: string;
}
export interface IPEXFilterResultWithInputDescriptor extends IPEXFilterResult {
inputDescriptor: InputDescriptorV1 | InputDescriptorV2;
}
export interface IPEXFilterResult {
id: string;
selectResults: SelectResults;
filteredCredentials: W3CVerifiableCredential[];
}
export interface VersionDiscoveryResult {
version?: PEVersion;
error?: string;
}
export type IPEXPresentationSignCallback = (args: IPEXPresentationSignCallBackParams) => Promise<W3CVerifiablePresentation>;
export interface IPEXPresentationSignCallBackParams {
presentation: IPresentation | Optional<PresentationPayload, 'holder'> | SdJwtDecodedVerifiableCredential;
presentationDefinition: IPresentationDefinition;
}
export type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & IIdentifierResolution & ICredentialPlugin & ISDJwtPlugin>;
//# sourceMappingURL=IPresentationExchange.d.ts.map