import { JsonObject, SingleOrArray } from "../../../../types.js";
import { ClaimFormat } from "../ClaimFormat.js";
import { W3cV2Credential } from "./W3cV2Credential.js";
import { W3cV2JwtVerifiableCredential } from "../../jwt-vc/W3cV2JwtVerifiableCredential.js";
import { W3cV2SdJwtVerifiableCredential } from "../../sd-jwt-vc/W3cV2SdJwtVerifiableCredential.js";
import { ValidationOptions } from "class-validator";

//#region src/modules/vc/models/credential/W3cV2EnvelopedVerifiableCredential.d.ts
interface W3cV2EnvelopedVerifiableCredentialOptions {
  id: string;
  context?: string | Array<string | JsonObject>;
  type?: SingleOrArray<string>;
}
declare class W3cV2EnvelopedVerifiableCredential {
  private _envelopedCredential?;
  constructor(options: W3cV2EnvelopedVerifiableCredentialOptions);
  static fromVerifiableCredential(credential: W3cV2SdJwtVerifiableCredential | W3cV2JwtVerifiableCredential): W3cV2EnvelopedVerifiableCredential;
  context: string | Array<string | JsonObject>;
  id: string;
  type: SingleOrArray<string>;
  /**
   * Gets the enveloped credential.
   */
  get envelopedCredential(): W3cV2JwtVerifiableCredential | W3cV2SdJwtVerifiableCredential;
  /**
   * Resolved credential is the fully resolved {@link W3cV2Credential} instance.
   */
  get resolvedCredential(): W3cV2Credential;
  /**
   * The {@link ClaimFormat} of the enveloped credential.
   */
  get claimFormat(): ClaimFormat.SdJwtW3cVc | ClaimFormat.JwtW3cVc;
}
declare function W3cV2EnvelopedVerifiableCredentialTransformer(): PropertyDecorator;
declare function IsEnvelopedVerifiableCredentialType(validationOptions?: ValidationOptions): PropertyDecorator;
//#endregion
export { IsEnvelopedVerifiableCredentialType, W3cV2EnvelopedVerifiableCredential, W3cV2EnvelopedVerifiableCredentialOptions, W3cV2EnvelopedVerifiableCredentialTransformer };
//# sourceMappingURL=W3cV2EnvelopedVerifiableCredential.d.ts.map