import { BaseRecord, TagsBase } from "../../../storage/BaseRecord.js";
import { KnownJwaSignatureAlgorithm } from "../../kms/jwk/jwa.js";
import { SdJwtVcTypeMetadata } from "../typeMetadata.js";
import { SdJwtVc } from "../SdJwtVcService.js";

//#region src/modules/sd-jwt-vc/repository/SdJwtVcRecord.d.ts
type DefaultSdJwtVcRecordTags = {
  vct: string;
  /**
   * The sdAlg is the alg used for creating digests for selective disclosures
   */
  sdAlg: string;
  /**
   * The alg is the alg used to sign the SD-JWT
   */
  alg: KnownJwaSignatureAlgorithm;
};
type SdJwtVcRecordStorageProps = {
  id?: string;
  createdAt?: Date;
  tags?: TagsBase;
  compactSdJwtVc: string;
  typeMetadata?: SdJwtVcTypeMetadata;
};
declare class SdJwtVcRecord extends BaseRecord<DefaultSdJwtVcRecordTags> {
  static readonly type = "SdJwtVcRecord";
  readonly type = "SdJwtVcRecord";
  compactSdJwtVc: string;
  typeMetadata?: SdJwtVcTypeMetadata;
  constructor(props: SdJwtVcRecordStorageProps);
  get sdJwtVc(): SdJwtVc;
  getTags(): {
    vct: string;
    sdAlg: string;
    alg: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512" | "PS256" | "PS384" | "PS512" | "EdDSA" | "ES256K";
  };
  clone(): this;
  /**
   * credential is convenience method added to all credential records
   */
  get credential(): SdJwtVc;
  /**
   * encoded is convenience method added to all credential records
   */
  get encoded(): string;
}
//#endregion
export { DefaultSdJwtVcRecordTags, SdJwtVcRecord, SdJwtVcRecordStorageProps };
//# sourceMappingURL=SdJwtVcRecord.d.ts.map