import { JsonObject } from "../../../types.mjs";
import { ClaimFormat } from "../../vc/models/ClaimFormat.mjs";
import { CredentialMultiInstanceUseMode } from "../../../utils/credentialUseTypes.mjs";
import { SdJwtVcRecord } from "../../sd-jwt-vc/repository/SdJwtVcRecord.mjs";
import "../../sd-jwt-vc/index.mjs";
import { MdocRecord } from "../../mdoc/repository/MdocRecord.mjs";
import "../../mdoc/index.mjs";
import { W3cCredentialRecord } from "../../vc/repository/W3cCredentialRecord.mjs";
import { W3cV2CredentialRecord } from "../../vc/repository/W3cV2CredentialRecord.mjs";
import "../../vc/index.mjs";
import "../../../utils/credentialUse.mjs";
import { DcqlCredentialsForRequest } from "../models/DcqlCredentialsForRequest.mjs";
import "../models/index.mjs";
import { DcqlMdocCredential, DcqlSdJwtVcCredential, DcqlW3cVcCredential } from "dcql";

//#region src/modules/dcql/utils/DcqlPresentationsToCreate.d.ts
interface DcqlSdJwtVcPresentationToCreate {
  claimFormat: ClaimFormat.SdJwtDc;
  credentialRecord: SdJwtVcRecord;
  disclosedPayload: DcqlSdJwtVcCredential.Claims;
  /**
   * Additional payload to include in the Key Binding JWT
   */
  additionalPayload?: JsonObject;
  useMode: CredentialMultiInstanceUseMode;
}
interface DcqlJwtVpPresentationToCreate {
  claimFormat: ClaimFormat.JwtVp;
  credentialRecord: W3cCredentialRecord;
  disclosedPayload: DcqlW3cVcCredential.Claims;
  useMode: CredentialMultiInstanceUseMode;
}
interface DcqlLdpVpPresentationToCreate {
  claimFormat: ClaimFormat.LdpVp;
  credentialRecord: W3cCredentialRecord;
  disclosedPayload: DcqlW3cVcCredential.Claims;
  useMode: CredentialMultiInstanceUseMode;
}
interface DcqlMdocPresentationToCreate {
  claimFormat: ClaimFormat.MsoMdoc;
  credentialRecord: MdocRecord;
  disclosedPayload: DcqlMdocCredential.NameSpaces;
  useMode: CredentialMultiInstanceUseMode;
}
interface DcqlJwtW3cVpPresentationToCreate {
  claimFormat: ClaimFormat.JwtW3cVp;
  credentialRecord: W3cV2CredentialRecord;
  disclosedPayload: DcqlW3cVcCredential.Claims;
}
interface DcqlSdJwtW3cVpPresentationToCreate {
  claimFormat: ClaimFormat.SdJwtW3cVp;
  credentialRecord: W3cV2CredentialRecord;
  disclosedPayload: DcqlW3cVcCredential.Claims;
}
type DcqlPresentationToCreate = DcqlSdJwtVcPresentationToCreate | DcqlJwtVpPresentationToCreate | DcqlLdpVpPresentationToCreate | DcqlMdocPresentationToCreate | DcqlJwtW3cVpPresentationToCreate | DcqlSdJwtW3cVpPresentationToCreate;
type DcqlPresentationsToCreate = Record<string, [DcqlPresentationToCreate, ...DcqlPresentationToCreate[]]>;
declare function dcqlGetPresentationsToCreate(credentialsForInputDescriptor: DcqlCredentialsForRequest): DcqlPresentationsToCreate;
//#endregion
export { DcqlJwtVpPresentationToCreate, DcqlJwtW3cVpPresentationToCreate, DcqlLdpVpPresentationToCreate, DcqlMdocPresentationToCreate, DcqlPresentationsToCreate, DcqlSdJwtVcPresentationToCreate, DcqlSdJwtW3cVpPresentationToCreate, dcqlGetPresentationsToCreate };
//# sourceMappingURL=DcqlPresentationsToCreate.d.mts.map