import { BaseRecord, Tags, TagsBase } from "../../../storage/BaseRecord.js";
import { W3cV2VerifiableCredential } from "../models/credential/W3cV2VerifiableCredential.js";

//#region src/modules/vc/repository/W3cV2CredentialRecord.d.ts
interface W3cV2CredentialRecordOptions {
  id?: string;
  createdAt?: Date;
  credential: W3cV2VerifiableCredential;
}
type DefaultW3cV2CredentialTags = {
  issuerId: string;
  subjectIds: Array<string>;
  schemaIds: Array<string>;
  contexts: Array<string>;
  givenId?: string;
  claimFormat: W3cV2VerifiableCredential['claimFormat'];
  types: Array<string>;
  algs?: Array<string>;
};
declare class W3cV2CredentialRecord extends BaseRecord<DefaultW3cV2CredentialTags> {
  static readonly type = "W3cV2CredentialRecord";
  readonly type = "W3cV2CredentialRecord";
  credential: W3cV2VerifiableCredential;
  constructor(props: W3cV2CredentialRecordOptions);
  getTags(): Tags<DefaultW3cV2CredentialTags, TagsBase>;
  /**
   * This overwrites the default `clone` method for records, as the W3cV3CredentialRecord
   * has issues with the default clone method due to the way the JWT and SD-JWT
   * records are implemented. This is a temporary way to make sure the clone still works, but ideally
   * we find an alternative.
   */
  clone(): this;
  /**
   * encoded is convenience method added to all credential records
   */
  get encoded(): string;
}
//#endregion
export { DefaultW3cV2CredentialTags, W3cV2CredentialRecord, W3cV2CredentialRecordOptions };
//# sourceMappingURL=W3cV2CredentialRecord.d.ts.map