import { ClaimFormat } from "../../vc/models/ClaimFormat.js";
import { W3cJsonLdVerifiableCredential } from "../../vc/data-integrity/models/W3cJsonLdVerifiableCredential.js";
import { W3cJwtVerifiableCredential } from "../../vc/jwt-vc/W3cJwtVerifiableCredential.js";
import { W3cJwtVerifiablePresentation } from "../../vc/jwt-vc/W3cJwtVerifiablePresentation.js";
import { Mdoc } from "../../mdoc/Mdoc.js";
import { SdJwtVcHeader, SdJwtVcPayload } from "../../sd-jwt-vc/SdJwtVcOptions.js";
import { SdJwtVc } from "../../sd-jwt-vc/SdJwtVcService.js";
import { W3cJsonLdVerifiablePresentation } from "../../vc/data-integrity/models/W3cJsonLdVerifiablePresentation.js";
import { MdocDeviceResponse } from "../../mdoc/MdocDeviceResponse.js";
import { DifPresentationExchangeDefinition, DifPresentationExchangeSubmission, VerifiablePresentation } from "../models/index.js";
import { SingleOrArray } from "../../../types.js";
import * as _sphereon_pex_models20 from "@sphereon/pex-models";

//#region src/modules/dif-presentation-exchange/utils/presentationSelection.d.ts
type DifPexPresentationWithDescriptor = ReturnType<typeof extractPresentationsWithDescriptorsFromSubmission>[number];
declare function extractPresentationsWithDescriptorsFromSubmission(presentations: SingleOrArray<VerifiablePresentation>, submission: DifPresentationExchangeSubmission, definition: DifPresentationExchangeDefinition): ({
  readonly claimFormat: ClaimFormat.MsoMdoc;
  readonly descriptor: _sphereon_pex_models20.Descriptor;
  readonly presentation: MdocDeviceResponse;
  readonly credential: Mdoc;
  readonly inputDescriptor: _sphereon_pex_models20.InputDescriptorV1 | _sphereon_pex_models20.InputDescriptorV2;
} | {
  readonly claimFormat: ClaimFormat.JwtVp | ClaimFormat.LdpVp;
  readonly descriptor: _sphereon_pex_models20.Descriptor;
  readonly presentation: W3cJwtVerifiablePresentation | W3cJsonLdVerifiablePresentation;
  readonly credential: W3cJwtVerifiableCredential | W3cJsonLdVerifiableCredential;
  readonly inputDescriptor: _sphereon_pex_models20.InputDescriptorV1 | _sphereon_pex_models20.InputDescriptorV2;
} | {
  readonly claimFormat: ClaimFormat.SdJwtDc;
  readonly descriptor: _sphereon_pex_models20.Descriptor;
  readonly presentation: SdJwtVc<SdJwtVcHeader, SdJwtVcPayload>;
  readonly credential: SdJwtVc<SdJwtVcHeader, SdJwtVcPayload>;
  readonly inputDescriptor: _sphereon_pex_models20.InputDescriptorV1 | _sphereon_pex_models20.InputDescriptorV2;
})[];
//#endregion
export { DifPexPresentationWithDescriptor, extractPresentationsWithDescriptorsFromSubmission };
//# sourceMappingURL=presentationSelection.d.ts.map