import { KnownJwaSignatureAlgorithm } from "../kms/jwk/jwa.js";
import { ClaimFormat } from "../vc/models/ClaimFormat.js";
import { MdocNameSpaces, MdocSignOptions, MdocVerifyOptions } from "./MdocOptions.js";
import { PublicJwk } from "../kms/jwk/PublicJwk.js";
import { AgentContext } from "../../agent/context/AgentContext.js";
import * as _animo_id_mdoc0 from "@animo-id/mdoc";
import { DeviceSignedDocument, IssuerSignedDocument } from "@animo-id/mdoc";

//#region src/modules/mdoc/Mdoc.d.ts

/**
 * This class represents a IssuerSigned Mdoc Document,
 * which are the actual credentials being issued to holders.
 */
declare class Mdoc {
  issuerSignedDocument: IssuerSignedDocument | DeviceSignedDocument;
  base64Url: string;
  private constructor();
  /**
   * claim format is convenience method added to all credential instances
   */
  get claimFormat(): ClaimFormat.MsoMdoc;
  /**
   * Encoded is convenience method added to all credential instances
   */
  get encoded(): string;
  /**
   * Get the device key to which the mdoc is bound
   */
  get deviceKey(): PublicJwk | null;
  static fromBase64Url(mdocBase64Url: string, expectedDocType?: string): Mdoc;
  static fromIssuerSignedDocument(issuerSignedBase64Url: string, expectedDocType?: string): Mdoc;
  static fromDeviceSignedDocument(issuerSignedBase64Url: string, deviceSignedBase64Url: string, expectedDocType?: string): Mdoc;
  get docType(): string;
  get alg(): KnownJwaSignatureAlgorithm;
  get validityInfo(): _animo_id_mdoc0.ValidityInfo;
  get deviceSignedNamespaces(): MdocNameSpaces | null;
  get issuerSignedCertificateChain(): [Uint8Array<ArrayBufferLike>, ...Uint8Array<ArrayBufferLike>[]];
  get signingCertificate(): Uint8Array<ArrayBufferLike>;
  get issuerSignedNamespaces(): MdocNameSpaces;
  static sign(agentContext: AgentContext, options: MdocSignOptions): Promise<Mdoc>;
  verify(agentContext: AgentContext, options?: MdocVerifyOptions): Promise<{
    isValid: true;
  } | {
    isValid: false;
    error: string;
  }>;
}
//#endregion
export { Mdoc };
//# sourceMappingURL=Mdoc.d.ts.map