import { SingleOrArray } from "../../../../types.js";
import { ClaimFormat } from "../../models/ClaimFormat.js";
import { W3cCredential, W3cCredentialOptions } from "../../models/credential/W3cCredential.js";
import { W3cJsonCredential } from "../../models/credential/W3cJsonCredential.js";
import { DataIntegrityProof, DataIntegrityProofOptions } from "./DataIntegrityProof.js";
import { LinkedDataProof, LinkedDataProofOptions } from "./LinkedDataProof.js";

//#region src/modules/vc/data-integrity/models/W3cJsonLdVerifiableCredential.d.ts

interface W3cJsonLdVerifiableCredentialOptions extends W3cCredentialOptions {
  proof: SingleOrArray<LinkedDataProofOptions | DataIntegrityProofOptions>;
}
declare class W3cJsonLdVerifiableCredential extends W3cCredential {
  constructor(options: W3cJsonLdVerifiableCredentialOptions);
  proof: SingleOrArray<LinkedDataProof | DataIntegrityProof>;
  get proofTypes(): Array<string>;
  get dataIntegrityCryptosuites(): Array<string>;
  toJson(): Record<string, any>;
  static fromJson(json: Record<string, unknown>): W3cJsonLdVerifiableCredential;
  /**
   * The {@link ClaimFormat} of the credential. For JSON-LD credentials this is always `ldp_vc`.
   */
  get claimFormat(): ClaimFormat.LdpVc;
  /**
   * Get the encoded variant of the W3C Verifiable Credential. For JSON-LD credentials this is
   * a JSON object.
   */
  get encoded(): Record<string, any>;
  get jsonCredential(): W3cJsonCredential;
}
//#endregion
export { W3cJsonLdVerifiableCredential, W3cJsonLdVerifiableCredentialOptions };
//# sourceMappingURL=W3cJsonLdVerifiableCredential.d.ts.map