import { JsonObject, SingleOrArray } from "../../../../types.mjs";
import { W3cV2JsonCredential } from "../credential/W3cV2JsonCredential.mjs";
//#region src/modules/vc/models/presentation/W3cV2JsonPresentation.d.ts
export interface W3cV2JsonEnvelopedVerifiableCredentialEntry {
  '@context': string | Array<string | JsonObject>;
  id: string;
  type: string | Array<string>;
  [key: string]: unknown;
}
export interface W3cV2JsonEnvelopedVerifiablePresentationEntry {
  '@context': string | Array<string | JsonObject>;
  id: string;
  type: string | Array<string>;
  [key: string]: unknown;
}
export interface W3cV2JsonDataIntegrityPresentationEntry {
  '@context': string | Array<string | JsonObject>;
  type: string | Array<string>;
  proof: unknown;
  verifiableCredential?: SingleOrArray<W3cV2JsonPresentationCredentialEntry>;
  [key: string]: unknown;
}
export type W3cV2JsonPresentationCredentialEntry = W3cV2JsonCredential | W3cV2JsonDataIntegrityPresentationEntry | W3cV2JsonEnvelopedVerifiableCredentialEntry | W3cV2JsonEnvelopedVerifiablePresentationEntry | string;
export interface W3cV2JsonPresentation {
  '@context': string | Array<string | JsonObject>;
  id?: string;
  type: string | Array<string>;
  holder?: string | {
    id: string;
    [property: string]: unknown;
  };
  verifiableCredential: SingleOrArray<W3cV2JsonPresentationCredentialEntry>;
  [key: string]: unknown;
}
//#endregion
//# sourceMappingURL=W3cV2JsonPresentation.d.mts.map