import { ClaimFormat } from "../ClaimFormat.js";
import { W3cV2Presentation } from "./W3cV2Presentation.js";
import { W3cV2JwtVerifiablePresentation } from "../../jwt-vc/W3cV2JwtVerifiablePresentation.js";
import { W3cV2SdJwtVerifiablePresentation } from "../../sd-jwt-vc/W3cV2SdJwtVerifiablePresentation.js";
import { JsonObject, SingleOrArray } from "../../../../types.js";
import { ValidationOptions } from "class-validator";

//#region src/modules/vc/models/presentation/W3cV2EnvelopedVerifiablePresentation.d.ts
interface W3cV2EnvelopedVerifiablePresentationOptions {
  id: string;
  context?: string | Array<string | JsonObject>;
  type?: SingleOrArray<string>;
}
declare class W3cV2EnvelopedVerifiablePresentation {
  private _envelopedPresentation?;
  constructor(options: W3cV2EnvelopedVerifiablePresentationOptions);
  static fromVerifiablePresentation(presentation: W3cV2SdJwtVerifiablePresentation | W3cV2JwtVerifiablePresentation): W3cV2EnvelopedVerifiablePresentation;
  context: string | Array<string | JsonObject>;
  id: string;
  type: SingleOrArray<string>;
  /**
   * Gets the enveloped presentation.
   */
  get envelopedPresentation(): W3cV2JwtVerifiablePresentation | W3cV2SdJwtVerifiablePresentation;
  /**
   * Resolved presentation is the fully resolved {@link W3cV2Presentation} instance.
   */
  get resolvedPresentation(): W3cV2Presentation;
  /**
   * The {@link ClaimFormat} of the enveloped presentation.
   */
  get claimFormat(): ClaimFormat.SdJwtW3cVp | ClaimFormat.JwtW3cVp;
}
declare function IsEnvelopedVerifiablePresentationType(validationOptions?: ValidationOptions): PropertyDecorator;
//#endregion
export { IsEnvelopedVerifiablePresentationType, W3cV2EnvelopedVerifiablePresentation, W3cV2EnvelopedVerifiablePresentationOptions };
//# sourceMappingURL=W3cV2EnvelopedVerifiablePresentation.d.ts.map